@@ -44,3 +44,147 @@ $ echo $PATH
4444$ mvn -v
4545Java Path -- /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.amzn2.0.1.x86_64
4646MAVEN_HOME:/opt/maven //You need to add this at Jenkins Job under Maven Installations
47+ ===============================Ansible Server setup and Ansible Installation==================================
48+ $ sudo nano /etc/hostname
49+ $ useradd ansadmin
50+ $ passwd ansadmin
51+ $ visudo
52+ ansadmin ALL=(ALL) NOPASSWD: ALL //add this in sudo file.
53+ $ cd /etc/ssh
54+ $ nano sshd_config
55+ $ service sshd reload
56+ $ ssh-keygen
57+ public key is at /home/ansadmin/.ssh/id_rsa.pub
58+ $ sudo su , amazon-linux-extras install ansible2
59+ $ ansible --version
60+ ===============================Integrate Ansible with Jenkins==================================
61+ $ cd /opt
62+ $ sudo mkdir docker
63+ $ sudo chown ansadmin:ansadmin docker
64+ Source files:webapp/target/*.war Remove prefix:webapp/target Remote directory://opt//docker
65+ ===============================Install and Configure Docker on Ansible Server==================================
66+ $ sudo yum install docker
67+ $ sudo usermod -aG docker ansadmin
68+ $ id ansadmin
69+ $ sudo service docker start
70+ $ sudo systemctl start docker
71+ $ nano Dockerfile
72+ FROM tomcat:latest
73+ RUN cp -R /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps
74+ COPY ./*.war /usr/local/tomcat/webapps
75+ ===============================Create Ansible Playbook to Create Docker Image and Copy Image to DockerHub==================================
76+ $ ifconfig
77+ $ sudo nano /etc/ansible/hosts
78+ [ansible]
79+ local-host-ip
80+ $ ssh-copy-id local-host-ip
81+ $ nano regapp.yml
82+ ---
83+ - hosts: ansible
84+
85+ tasks:
86+ - name: create docker image
87+ command: docker build -t regapp:latest .
88+ args:
89+ chdir: /opt/docker
90+
91+ - name: create tag to push image onto dockerhub
92+ command: docker tag regapp:latest ashfaque9x/regapp:latest
93+
94+ - name: push docker image
95+ command: docker push ashfaque9x/regapp:latest
96+
97+ $ ansible-playbook regapp.yml --check
98+ $ ansible-playbook regapp.yml
99+ Exec Command:ansible-playbook /opt/docker/regapp.yml
100+ ===============================Setup Bootstrap Server for eksctl==================================
101+ # Install AWS Cli on the above EC2
102+ Refer==https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
103+ $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
104+ $ unzip awscliv2.zip
105+ $ sudo ./aws/install
106+ OR
107+ $ sudo yum remove -y aws-cli
108+ $ pip3 install --user awscli
109+ $ sudo ln -s $HOME/.local/bin/aws /usr/bin/aws
110+ $ aws --version
111+
112+ # Installing kubectl
113+ Refer===https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html
114+ $ curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2023-04-19/bin/linux/amd64/kubectl
115+ $ chmod +x ./kubectl
116+ $ mv kubectl /bin OR $ mv kubectl /usr/local/bin
117+ $ kubectl version --output=yaml
118+
119+ #Installing or eksctl
120+ Refer==https://github.com/eksctl-io/eksctl/blob/main/README.md#installation
121+ $ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
122+ $ cd /tmp
123+ $ sudo mv /tmp/eksctl /bin OR $ sudo mv /tmp/eksctl /usr/local/bin
124+ $ eksctl version
125+
126+ # Setup Kubernetes using eksctl
127+ Refer===https://github.com/aws-samples/eks-workshop/issues/734
128+ eksctl create cluster --name virtualtechbox-cluster \
129+ --region ap-south-1 \
130+ --node-type t2.small \
131+ $ kubectl get nodes
132+
133+ # Create deployment Manifest File
134+ Refer===https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
135+ $ nano regapp-deployment.yml
136+ apiVersion: apps/v1
137+ kind: Deployment
138+ metadata:
139+ name: virtualtechbox-regapp
140+ labels:
141+ app: regapp
142+
143+ spec:
144+ replicas: 2
145+ selector:
146+ matchLabels:
147+ app: regapp
148+
149+ template:
150+ metadata:
151+ labels:
152+ app: regapp
153+ spec:
154+ containers:
155+ - name: regapp
156+ image: ashfaque9x/regapp
157+ imagePullPolicy: Always
158+ ports:
159+ - containerPort: 8080
160+ strategy:
161+ type: RollingUpdate
162+ rollingUpdate:
163+ maxSurge: 1
164+ maxUnavailable: 1
165+
166+ # Create Service Manifest File
167+ Refer===https://kubernetes.io/docs/tutorials/services/connect-applications-service/
168+ $ nano regapp-service.yml
169+ apiVersion: v1
170+ kind: Service
171+ metadata:
172+ name: virtualtechbox-service
173+ labels:
174+ app: regapp
175+ spec:
176+ selector:
177+ app: regapp
178+
179+ ports:
180+ - port: 8080
181+ targetPort: 8080
182+
183+ type: LoadBalancer
184+
185+
186+
187+
188+
189+
190+
0 commit comments