Skip to content

Commit 2112e4a

Browse files
authored
Update DevOps-Project-with-Jenkins-Maven-and-Kubernetes.txt
1 parent 1372e6a commit 2112e4a

1 file changed

Lines changed: 144 additions & 0 deletions

File tree

DevOps-Project-with-Jenkins-Maven-and-Kubernetes.txt

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,147 @@ $ echo $PATH
4444
$ mvn -v
4545
Java Path -- /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.amzn2.0.1.x86_64
4646
MAVEN_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

Comments
 (0)