{"id":15176551,"url":"https://github.com/c-kiplimo/deployjavaproject-ci-cd","last_synced_at":"2026-03-06T16:03:36.740Z","repository":{"id":254817124,"uuid":"847629980","full_name":"c-kiplimo/DeployJavaProject-CI-CD","owner":"c-kiplimo","description":"This project details an end-to-end DevOps pipeline setup on AWS, including Terraform, Jenkins, Maven, Ansible, and Docker. It automates infrastructure provisioning, CI/CD processes, and application deployment on an EKS cluster, ensuring a seamless and scalable deployment workflow from code commit to production.","archived":false,"fork":false,"pushed_at":"2024-08-26T08:41:19.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-10-26T13:34:34.828Z","etag":null,"topics":["ansible","aws","devops","java","jenkins","kubernetes","terraform"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c-kiplimo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-26T08:33:52.000Z","updated_at":"2024-08-26T08:45:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e0dbc5e-133f-4131-91fd-efd359f544b5","html_url":"https://github.com/c-kiplimo/DeployJavaProject-CI-CD","commit_stats":null,"previous_names":["c-kiplimo/deployjavaproject-ci-cd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/c-kiplimo/DeployJavaProject-CI-CD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-kiplimo%2FDeployJavaProject-CI-CD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-kiplimo%2FDeployJavaProject-CI-CD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-kiplimo%2FDeployJavaProject-CI-CD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-kiplimo%2FDeployJavaProject-CI-CD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c-kiplimo","download_url":"https://codeload.github.com/c-kiplimo/DeployJavaProject-CI-CD/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c-kiplimo%2FDeployJavaProject-CI-CD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30184885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","aws","devops","java","jenkins","kubernetes","terraform"],"created_at":"2024-09-27T13:21:21.368Z","updated_at":"2026-03-06T16:03:36.734Z","avatar_url":"https://github.com/c-kiplimo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Step by step End-to-End Deployment process\n\n## 1. Start a Terraform Server on AWS\n\n## 2. Install Terraform as root user\n```bash\nsudo yum update –y\nsudo yum install -y yum-utils\nsudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo\nsudo yum -y install terraform\n```\n\n## 3. Start a Jenkins Server on AWS\n\n## 4. Install Jenkins as root user\n```bash\nhttps://www.jenkins.io/doc/book/installing/linux/\nhttps://www.jenkins.io/doc/tutorials/tutorial-for-installing-jenkins-on-AWS/\n$ sudo yum update –y\nsudo wget -O /etc/yum.repos.d/jenkins.repo \\\n    https://pkg.jenkins.io/redhat-stable/jenkins.repo\nsudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key\nsudo yum upgrade\namazon-linux-extras install epel\nsudo amazon-linux-extras install java-openjdk11 -y\nyum install java-11-amazon-corretto -y\nsudo yum install jenkins -y\nsudo systemctl enable jenkins\nsudo systemctl start jenkins\njava -version\njavac -version\nsystemctl status jenkins\n```\n\n## 5. Install and Configure Maven\n\nRefer: https://maven.apache.org/install.html\nCopy the download link from https://maven.apache.org/download.cgi\n\n```bash\nsudo su  \u0026 cd ~\ncd /opt\nwget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz\ntar -xzvf apache-maven-3.9.3-bin.tar.gz\nmv apache-maven-3.9.3 maven\nll\ncd maven\ncd bin/\n./mvn -v  \ncd ~\nll -a      #It will show the hidden files also\nvim .bash_profile\nfind / -name java-11*\n#enter below lines below the 2nd fi\nM2_HOME=/opt/maven\nM2=/opt/maven/bin\nJAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.amzn2.0.1.x86_64\nPATH=$PATH:$HOME/bin:$JAVA_HOME:$M2_HOME:$M2\necho $PATH\nsource .bash_profile\necho $PATH\nmvn -v\n```\n\n## 6. Configure Jenkins User Interface\n```bash\nJava_Home: /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.amzn2.0.1.x86_64\n```\n```bash\nMAVEN_HOME:/opt/maven     //You need to add this at Jenkins Job under Maven Installations\n```\n```bash\nyum install git -y\n```\n\n## 7. Create a Test Job\n\n## 8. Start Ansible Server on AWS\n\n## 9. Install and COnfigure Ansible\n```bash\nsudo nano /etc/hostname\n#Reboot\ninit 6\nsudo -i\nuseradd ansadmin\npasswd ansadmin\nvisudo\ncd /etc/ssh\nnano sshd_config\n#PasswordAuthentication yes\nservice sshd reload\nSudo su - ansadmin\nssh-keygen\n#Install Ansible\nsudo su\namazon-linux-extras install ansible2\nansible --version\n```\n\n## 10. Intregrate Ansible with Jenkins\n\n## 11. Install Docker in Ansible Server\n```bash\ncd /opt\nsudo mkdir docker\nsudo chown ansadmin:ansadmin docker\ncd /opt/docker\nsudo yum install docker\nsudo usermod -aG docker ansadmin\nid ansadmin\nsudo service docker start\nsudo systemctl start docker\n#Reboot\ninit 6\nStart docker\nsudo su – ansadmin\ncd /opt/docker/\n```\n\n## 12. Create Project Dockerfile in Ansible Server\n```bash\nvi Dockerfile\n```\n\n## 13. Create Ansible Playbook for Docker Tasks\nSee Manifests in Repo\n```bash\nsudo vi /etc/ansible/hosts\nssh-copy-id IPAddress\nansible-playbook app-ci.yml -–check\nansible-playbook app-ci.yml\n\n```\n\n## 14. Create the CI Job\n\n## 15. Start the EKS Server on AWS\n\n## 16. Provision EKS cluster with eksctl\n* Install Kubectl\nRefer: https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html\n```bash\ncurl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2023-04-19/bin/linux/amd64/kubectl\nchmod +x ./kubectl \nmv kubectl /bin\n```\n\n* Install eksctl\nRefer: https://github.com/eksctl-io/eksctl/blob/main/README.md#installation\n```bash\ncurl --silent --location \"https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz\" | tar xz -C /tmp\ncd /tmp\nsudo mv /tmp/eksctl /bin\neksctl version\n```\n\n* Create and Attach roles to the EKS Server\n```bash\nAmazonEC2FullAccess\nAWSCloudFormationFullAccess\nIAMFullAccess\nAdministratorAccess\n```\n\n* Provision EKS Cluster\n```bash\neksctl create cluster --name myprojectapp-cluster \\\n--region us-east-2 \\\n--node-type t2.small\n```\n\n* Install AWS CLI\nRefer: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html\n```bash\ncurl \"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip\" -o \"awscliv2.zip\"\nunzip awscliv2.zip\nsudo ./aws/install\n```\n\n* Connect to your cluster\n```bash\naws eks update-kubeconfig --region us-east-2 --name myprojectapp-cluster\nkubectl get nodes\n```\n\n## 17. Integrate EKS Server with Ansible\n```bash\nvi /etc/ssh/sshd_config\npasswd root\nservice sshd reload\n```\n\n* On the Ansible Server\n```bash\nvi /etc/ansible/hosts\nssh-copy-id root@EKS-Server-IP\n```\n\n* On the Ansible Server, create a playbook for the deployment\n```bash\nvi kube_deploy.yml\nansible-playbook kube_deploy.yml --check\nansible-playbook kube_deploy.yml\n```\n\n* On the EKS Server, create manifest files for the deployment\n```bash\nvi myapp-deployment.yml\nvi myapp-service.yml\n```\n\n## 18. Create a CD Job on Jenkins\n\n## 19. Intergrate the CI and the CD Jobs on Jenkins\n\n## 20. Deploy/Test the Application\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-kiplimo%2Fdeployjavaproject-ci-cd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc-kiplimo%2Fdeployjavaproject-ci-cd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-kiplimo%2Fdeployjavaproject-ci-cd/lists"}