The DevOps Platform is a tools environment for continuously testing, releasing and maintaining applications. Reference code, delivery pipelines, automated testing and environments can be loaded in via the concept of Cartridges.
The platform runs on a docker container cluster so it can be stood up for evaluation purposes on just one server using local storage, or stood up in a multi-data centre cluster with distributed network storage. It will also run anywhere that docker runs.
Here is the front page:
Once you have a stack up and running, you can log in with the username and password created upon start-up.
If you provisioned your stack using the start-up CLI, an example workspace containing an example project and an example cartridge will all have been pre-loaded in Jenkins:
Once you have explored this the next step is to create your own Workspace and Project and then load another cartridge using a 'Load Cartridge' job in the 'Cartridge Management' folder (that automatically gets created in any Project). The cartridge development cartridge also helps create your own cartridges.
These instructions will spin up an instance in a single server in AWS (for evaluation purposes). Please check the prerequisites.
NB. the instructions will also work in anywhere supported by Docker Machine, just follow the relevant Docker Machine instructions for your target platform and then start at step 3 below and (you can set the AWS_VPC_ID to NA).
Create a VPC using the VPC wizard in the AWS console by selecting the first option with 1 public subnet.
On the "Step 2: VPC with a Single Public Subnet" page give your VPC a meaningful name and specify the availability zone as 'a', e.g. select eu-west-1a from the pulldown.
Once the VPC is created note the VPC ID (e.g. vpc-1ed3sfgw)
Clone this repository and then in a terminal window (this has been tested in GitBash):
Run:
./quickstart.sh
$ ./quickstart.sh
Usage: ./quickstart.sh -t aws
-m <MACHINE_NAME>
-c <AWS_VPC_ID>
-r <AWS_DEFAULT_REGION>
-z <VPC_AVAIL_ZONE>(optional)
-a <AWS_ACCESS_KEY>(optional)
-s <AWS_SECRET_ACCESS_EY>(optional)
-u <INITIAL_ADMIN_USER>
-p <INITIAL_ADMIN_PASSWORD>(optional) ...
For example (if you don't have ~/.aws set up):
./quickstart.sh -t aws -m adop1 -a AAA -s BBB -c vpc-123abc -r eu-west-1 -u user.name -p userPassword
N.B. If you see an error saying that docker-machine cannot find an associated subnet in a zone, go back to the VPC Dashboard on AWS and check the availablity zone for the subnet you've created. Then rerun the startup script and use the -z option to specify the zone for your subnet, e.g. for a zone of eu-west-1c the above command becomes:
./quickstart.sh -t aws -m adop1 -a AAA -s BBB -c vpc-123abc -r eu-west-1 -u user.name -p userPassword -z c
If all goes well you will see the following output and you can view the DevOps Platform in your browser
##########################################################
SUCCESS, your new ADOP instance is ready!
Run this command in your shell:
source ./conf/env.provider.sh
source credentials.generate.sh
source env.config.sh
You can check if any variables are missing with: ./adop compose config | grep 'WARNING'
Navigate to http://<PROXY IP> in your browser to use your new DevOps Platform!
Login using the following credentials:
Username: YOUR_USERNAME
Password: YOUR_PASSWORD
Log in using the username and password you specified in the quickstart script:
<INITIAL_ADMIN_USER> / <INITIAL_ADMIN_PASSWORD>
Update the docker-machine security group in the AWS console to permit inbound http traffic on ports 80 and 443 (from the machine(s) from which you want to have access only), also UDP on 25826 and 12201 from 127.0.0.1/32.
The platform is designed to run on any container platform.
Create a VPC using the VPC wizard in the AWS console by selecting the first option with 1 public subnet
Create a Docker Engine in AWS (replace the placeholders and their <> markers):
docker-machine create --driver amazonec2 --amazonec2-access-key <YOUR_ACCESS_KEY> --amazonec2-secret-key <YOUR_SECRET_KEY> --amazonec2-vpc-id <YOUR_VPC_ID> --amazonec2-instance-type m4.xlarge --amazonec2-region <YOUR_AWS_REGION, e.g. eu-west-1> <YOUR_MACHINE_NAME>
Update the docker-machine security group to permit inbound http traffic on port 80 (from the machine(s) from which you want to have access only), also UDP on 25826 and 12201 from 127.0.0.1/32
Set your local environment variables to point docker-machine to your new instance:
eval $(docker-machine env <YOUR_MACHINE_NAME>)
Create a local Docker Engine (replace the placeholders and their <> markers):
docker-machine create --driver virtualbox --virtualbox-memory 2048 <YOUR_MACHINE_NAME>
Set your local environment variables to point docker-machine to your new instance:
eval $(docker-machine env <YOUR_MACHINE_NAME>)
Create a Docker Swarm that has a publicly accessible Engine with the label "tier=public" to bind Nginx and Logstash to that node
Create ssl certificate for jenkins to allow connectivity with docker engine.
Note : For Windows run this command from a terminal (Git Bash) as administrator.
http://<TARGET_HOST>
with the your username and password
http://<TARGET_HOST>/jenkins/job/ExampleWorkspace/job/ExampleProject/job/Create_Environment
http://<TARGET_HOST>/jenkins/job/ExampleWorkspace/job/ExampleProject/view/Java_Reference_Application/
Kibana 4 does not provide a configuration property that allow to define the default index pattern so the following manual procedure should be adopted in order to define an index pattern:
Documentation can be found on our GitHub Pages site.
If you have any problems with or questions about this project, please contact us through Gitter or a GitHub issue.
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can. You can find more information in our documentation.
Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
We use this working Roadmap to evolve and summarise plans for future features and the merge of existing PRs.