TODO list:
- Promotion job
- Docker proxy
- Job to generate other jobs
- Multibranch pipeline
- Bring the project structure and code to beauty using Ansible best practices
Improvement list:
- ApacheBench(JMeter) - load test functional behavior and measure performance
- Terraform - AWS infrastructure as code
- Molecule - write tests, must have skill and tool
- Kubernetes - deploy using it, not Docker
- Prometheus - monitoring and alerting, must have skill and tool
Requires Terraform v0.12+, Ansible v2.11+ to run.
Clonning repository
git clone https://github.com/timurbabs/grid-project.git
cd grid-project
Generate AWS key in your AWS account. Download your Access and Secret keys to grid-project/creds.csv
Change owner of AWS property in grid-project/vars.tf
variable "owner" {
type = string
default = "YOUR_NAME_HERE"
}
terraform init
terraform plan
terraform apply
Default Ansible Vault password: "25447"
ansible-playbook playbook.yml --ask-vault-pass
At first: add certificate ~/Documents/NexusSSL.pem to truststore. Use Nexus public DNS name from inventory.yml and port 8443 to access Nexus.
At first: add certificate ~/Documents/JenkinsSSL.pem to truststore. Use Jenins public DNS name from inventory.yml and port 8443 to access Jenkins.
Use DevProd public ip address from inventory.yml and port 8080 to access PetClinic.