This page focuses on the Administration section of Moves. To see a description of the startup properties required look at Moves Property File settings.
The entities that need to be administered for moves are listed below.
In general you should set entities up in the order that they appear above. The entities are described in detail below.
To get your new app to appear in the drop-down list on the "Build a Release" page, it needs to be added to a pom file in the "maven/releases" project in the sais-sis-common repo. The URL is:
svn+ssh://svn.mit.edu/sais-sis-common/maven/releases/trunk/pom.xml
You will need to know:
You will add a "releaseComponent" section under the "releaseComponents" section, that will look like this:
<releaseComponent implementation="edu.mit.maven.plugins.release.common.ReleaseComponent"> <groupId>edu.mit.ist.es.supervasgn</groupId> <artifactId>assignsupervisor</artifactId> <scm> <developerConnection>scm:svn:svn+ssh://svn.mit.edu/sais-sis-academic/academic-supervasgn-web/trunk</developerConnection> </scm> </releaseComponent> |
Check this change in, and the app should now appear in the drop-down list in Moves.
Repositories are maven repositories, accessible to moves over http/https. An example is the the SAIS Group repository at https://maven.mit.edu/nexus/content/groups/saisGroupRepo. Maven has a well defined format, which specifies where to find an application within a repository. Each Application has an 'ArtifactId', a 'GroupId' and a 'Version'. So, for example, moves itself has artifactId=sais-moves-web, groupId=edu.mit.ist.es, versionId=2.0.0. Maven will translate this, by default into a final location of https://maven.mit.edu/nexus/content/groups/saisGroupRepo/edu/mit/ist/es/sais-moves-web/2.0.0/sais-moves-web-2.0.0.war" The properties you need to configure for a repository are:
The base url can contain the following replacement properties.
Property Name | Description |
---|---|
${groupId} | replaced with the groupId of the application being deployed |
${artifactId} | replaced with the artifactId of the application being deployed |
${version} | replaced with the version of the application being deployed |
${app.[paramName]} | replaced with the parameter value with key 'paramName' of the application being deployed |
The values for all parameters except 'version' are specified in the Administration -> Stacks -> Application section of moves. The version is selected during the deploy/build workflows by the user who has requested a deploy/build workflow.
In order to access the MIT repository, you must also have correctly configured SSL access and a Maven username and password that is authorized to view the repository you have configured. See the properties webservices.trustStore, webservices.trustStorePassword, mit.maven.repository.username and mit.maven.repository.password as described in the page Moves Property File settings for details.
Environments are really just a lookup that identifies the function of containers within a stack. The standard environments are 'Production' and 'Test'. These should be automatically set up when Moves is deployed for the first time, so they will not need to be changed. However, we allow creation of new future environments (for example 'Continuous Integration' or 'Staging'). Note that the property file may need to be edited (and the moves application restarted). See the section 'Oracle Application Server usernames and passwords' in Moves Property File settings.
A Stack is simply a grouping of Applications and Containers by Environment. Stacks allow Moves to answer the question 'What is the container for Application 'X' in Environment 'Y'. Once you create a Stack, you can add containers to it for each environment. When we subsequently configure an application, we will tell it what Stack is associated with that application. (So, for example, the application 'OGS Application' might reference 'OGS Stack'. 'OGS Stack' references containers for 'Production', 'QA', and 'Development'). By looking at these relationships, Moves knows which container to deploy to when asked to deploy to a particular environment.
It is better to first configure and test containers before configuring apps. Further it is advisable to have developers release at least one version of an application to the Maven MIT repository. Doing so allows the admin to set up containers and applications for a stack.
A container is the service that an application is deployed to. When you configure a new Container, you will be asked to select from one of the container types. The two container types that are currently available are
For the Oc4j container, the deployerUrl must be configured. This is the url you would normally type if you are manually deploying an application using the oracle admin_client.jar utility. Typically you will use a deployerUrl of the form deployer:oc4j:opmn://server-name:port-number/application-name for OAS clusters. You will use a deployerUrl of the form deployer:oc4j:localhostserver-name for OAS standalone instances. The deployment process essentially just runs the admin_client program. Below is the configuration page for containers.
Moves will need to know
The following checklist should help you successfully configure a container.
Applications represent web apps (.war or .ear applications) that can be deployed to a container. Before configuring an application, obtain the following information from the development team
You should also request that the development team release at least one version to the MIT Maven repository
You should also plan to have the following information
Application configuration is used to
The following screen shot shows the parameters used for the Template Web Application.
The application parameters are used to
Let's look at the parameters used to find an application in the MIT maven repository first. When we set up the baseUrl in the Repository configuration section, it was defined as something like /nexus/content/groups/saisGroupRepo/${app.groupId}/${app.artifactId}/${version}/${app.artifactId}-${version}${app.applicationSuffix}. Moves will dynamically replace anything that matches ${app.param name} with the value of the parameter that it finds in the application's configuration.
Thus, in our example above, version 1.2.3 of the application would be found in the repository url /nexus/content/groups/saisGroupRepo/edu/mit/ist/es/template/1.2.3/template-123.war
The parameters contextRoot, deploymentName and parent apply to OC4J deployments only. They do not affect how a release is found in maven.
h7. Debugging Application Parameters that relate to Maven.
anchor:ApplicationTestPage}
Application parameters are complex, because we wish to maintain compatibility across different Maven repository layouts and different containers. Help is at hand, however.
Once you have configured an application, click on the Maven Repository Ping Tool ( ). See figure below.
If you have followed the instructions above, there should be at least one release in the MIT repository. In Administration -> Stacks click on the 'ping app' icon ( ) for your app. The resulting page will look like the following:
If your app and repository are configured correctly, versions that exist in Maven should appear on the resulting page. You should be able to click on the download icon ( ) for any page and save the application binaries to your hard drive. (Tip: open jar, war or ear files using winzip or any other program that will allow you to verify that the downloaded application is valid. Just 'cos a file gets saved is NOT A SUFFICIENT TEST
If you cannot download an application using this test, you will NOT be able to deploy that application using Moves!!!
If you have set up maven correctly, AND if a build exists in Maven for the application you configured, then each version in Maven will show up like in the attached file. Click on the Download Icon ( ) for a version, and the component should be downloaded from the Maven repository. Make sure you open the downloaded file in a program that can read zip files (e.g. winzip). The resulting download should show a folder hierarchy with '.class' files, '.jsp' files etc If this doesn't work, then you should use the following debugging approach
Once you have verified that a build exists in the MIT Maven repository for this application, then you MUST be able to download a version using the Download Icon ( ). If you can't download a version and open it in winzip (or other archive program), Moves will certainly not be able to deploy the application.
The Build Configuration allows you to configure certain aspects of Moves without restarting the server.
This page allows you to define
In the subversion config page, we just need to tell moves
The OC4J Home folder tells us where to find admin_client.jar.
TODO: removing artifacts is not implemented through the UI yet.
A utility exists within the Moves Application for deleting old Log and File entries. Simply select a date and click submit. Artifacts/Logs older than this date will be removed.