-
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:
docker-machine create --driver amazonec2 --amazonec2-access-key YOUR_ACCESS_KEY --amazonec2-secret-key YOUR_SECRET_KEY --amazonec2-vpc-id vpc-YOUR_ID --amazonec2-instance-type t2.large --amazonec2-region REGION IN THIS FORMAT: 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), and TCP on 2376, UDP on 25826, and UDP on 12201 (from 127.0.0.1/32)
-
Set your local environment variables to point docker-machine to your new instance
Create a docker machine and set up you local environment variables to point docker-machine to your new instance
Create a Docker Swarm that has a publicly accessible Engine with the label "tier=public" to bind Nginx and Logstash to that node
- Run: export TARGET_HOST=<IP_OF_PUBLIC_HOST>
- Run: export CUSTOM_NETWORK_NAME=<CUSTOM_NETWORK_NAME>
- Create a custom network: docker network create $CUSTOM_NETWORK_NAME
- Run: docker-compose -f compose/elk.yml up -d
- Run: export LOGSTASH_HOST=<IP_OF_LOGSTASH_HOST>
- Run: source env.config.sh
- Choose a volume driver - either "local" or "nfs" are provided, and if the latter is chosen then an NFS server is expected along with the NFS_HOST environment variable
- Pull the images first (this is because we can't set dependencies in Compose yet so we want everything to start at the same time): docker-compose pull
- Run (logging driver file optional): docker-compose -f docker-compose.yml -f etc/volumes/<VOLUME_DRIVER>/default.yml -f etc/logging/syslog/default.yml up -d
- TARGET_HOST the dns/ip of proxy
- LOGSTASH_HOST the dns/ip of logstash
- CUSTOM_NETWORK_NAME: The name of the pre-created custom network to use
- [OPTIONAL] NFS_HOST: The DNS/IP of your NFS server
Create ssl certificate for jenkins to allow connectivity with docker engine.
- RUN : source env.config.sh
- RUN : ./generate_client_certs.sh ${DOCKER_CLIENT_CERT_PATH}
Note : For windows run the generate_client_certs.sh script from a terminal (Git Bash) as administrator.
- Access the target host url
http://<TARGET_HOST>
with the userjohn.smith
and passwordPassword01
- This page presents the links to all the tools.
- Click: Jenkins link.
- Run: Load_Platform job
- Once the Load_Platform job and other downstream jobs are finished your platform is ready to be used.
- This job generates a example workspace folder, example project folder and jenkins jobs/pipelines for java reference application.
- Create environment to deploy the reference application
- Navigate to
http://<TARGET_HOST>/jenkins/job/ExampleWorkspace/job/ExampleProject/job/Create_Environment
- Build with Parameters keeping the default value.
- Run Example pipeline
- Navigate to
http://<TARGET_HOST>/jenkins/job/ExampleWorkspace/job/ExampleProject/view/Java_Reference_Application/
- Click on run.
- Browse the environment
- Click on the url for your environment from deploy job.
- You should be able to see the spring petclinic application.
- Now, you can clone the repository from gerrit and make a code change to see the example pipeline triggered automatically.
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:
- Navidate to Settings > Indices using Kibana dashboard
- Set index name or pattern as "logstash-*"
- For the below drop-down select @timestamp for the Time-field name
- Click on create button
Documentaion can be found under the docker-library/docs
GitHub repo. Be sure to familiarize yourself with the repository's README.md
file before attempting a pull request.
If you have any problems with or questions about this image, please contact us through 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.
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.