DevOps - para Practicar Documentacion
DevOps - para Practicar Documentacion
• docker -Containerization
Flow Diagram : -
What Do we Cover?
• Setup Jenkins
• Setup & Configure Maven , Git.
• Setup Tomcat Server.
• Integrating GitHub,Maven ,Tomcat Server with Jenkins
• Create a CI and CD Job.
• Test the Deployment.
What is CI and CD
• Continuous Integration.
• Continuous Delivery.
• Continuous Deployment.
How Does CI and CD Works on AWS?
Installation of Jenkins
First Step:
Connecting MobaXterm
Fig. MobaXterm
Second Step:
Installation of Java
Jenkins Start
.
Integrate Maven with Jenkins
PATH=$PATH:$HOME/bin:$JAVA_HOME:$M2_HOME:$M2
export PATH
[root@Jenkins_Server ~]# echo $Path
• Install Java
• Configure Tomcat
Install Java
# vi ./webapps/manager/META-INF/context.xml
ln -s /opt/apache-tomcat/bin/startup.sh /usr/local/bin/tomcatup
ln -s /opt/apache-tomcat-<version>/bin/shutdown.sh
/usr/local/bin/tomcatdown
no changes added to commit (use "git add" and/or "git commit -a")
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: index.jsp
• Install Docker
• Creating Container
78e9303c67b9f67ca161776a1321da5cb8bad4b85e64c9753a84bf91359ace21
Run:
__|___|
https://aws.amazon.com/amazon-linux-2/
[dockeradmin@dockerhost ~]$
┌───────────────────────────────────────────────────────────────
───────┐
│ • MobaXterm Personal Edition v22.0 • │
│ (SSH client, X server and network tools) │
│ │
│ • Direct SSH : ✔ │
│ • SSH compression : ✔ │
│ • SSH-browser : ✔ │
└───────────────────────────────────────────────────────────────
───────┘
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
4 package(s) needed for security, out of 4 available
Run "sudo yum update" to apply all updates.
[dockeradmin@dockerhost ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dockeradmin/.ssh/id_rsa):
/home/dockeradmin/.ssh/id_rsa already exists.
Overwrite (y/n)? y
+----[SHA256]-----+
[dockeradmin@dockerhost ~]$ cd /home/dockeradmin
[dockeradmin@dockerhost ~]$ ll
total 0
[dockeradmin@dockerhost .ssh]$
Jenkins Job to build and copy the artifacts on to docker host
Fig. Success
[dockeradmin@dockerhost ~]$ ll
total 0
[dockeradmin@dockerhost ~]$ ll
total 0
drwxrwxr-x 3 dockeradmin dockeradmin 25 May 11 12:05 home
[dockeradmin@dockerhost ~]$ ll
total 4
drwxrwxr-x 3 dockeradmin dockeradmin 25 May 11 12:05 home
-rw-rw-r-- 1 dockeradmin dockeradmin 2912 May 11 12:07 webapp.war
[dockeradmin@dockerhost ~]$ rm -rf /home
rm: cannot remove ‘/home/ec2-user’: Permission denied
rm: cannot remove ‘/home/dockeradmin’: Permission denied
[dockeradmin@dockerhost ~]$ rm -rf home/
[dockeradmin@dockerhost ~]$ ll
total 0
[dockeradmin@dockerhost ~]$ ls
[dockeradmin@dockerhost ~]$ ll
total 0
[dockeradmin@dockerhost ~]$ cd ..
[dockeradmin@dockerhost home]$ ll
total 0
drwx------ 2 dockeradmin dockeradmin 6 May 11 12:08 dockeradmin
drwx------ 4 ec2-user ec2-user 125 May 2 21:42 ec2-user
[dockeradmin@dockerhost home]$ cd dockeradmin
[dockeradmin@dockerhost ~]$ ll
total 0
[dockeradmin@dockerhost ~]$ ll
total 4
-rw-r--r-- 1 dockeradmin dockeradmin 2912 May 11 12:09 webapp.war
[root@dockerhost docker]# ll
total 8
-rw-r--r-- 1 dockeradmin dockeradmin 527 May 2 21:59 Dockerfile
-rw-r--r-- 1 dockeradmin dockeradmin 2912 May 11 14:31 webapp.war
[root@dockerhost docker]#
[root@dockerhost docker]# date
Wed May 11 14:34:06 UTC 2022
FROM tomcat:latest
RUN cp -R /usr/local/tomcat webpp.dist/* /usr/local/tomcatwebapps
COPY ./*.war /usr/local/tomcatwebapps
[root@dockerhost docker]# ll
total 12
-rw-r--r-- 1 dockeradmin dockeradmin 527 May 2 21:59 Dockerfile
-rw-r--r-- 1 dockeradmin dockeradmin 86 May 3 07:34 DockerFile
-rw-r--r-- 1 dockeradmin dockeradmin 2912 May 11 14:31 webapp.war
[root@dockerhost docker]# date
Wed May 11 14:38:20 UTC 2022
[root@dockerhost docker]# vi DockerFile
[root@dockerhost docker]# vi DockerFile
[root@dockerhost docker]# docker build -t tomcat:v1 .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the
docker daemon running?
[root@dockerhost docker]# cat DockerFile
FROM tomcat:latest
RUN cp -R /usr/local/tomcat webpp.dist/* /usr/local/tomcatwebapps
COPY ./*.war /usr/local/tomcatwebapps
[root@dockerhost docker]# service docker status
Redirecting to /bin/systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor
preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
[root@dockerhost docker]# service docker start
Redirecting to /bin/systemctl start docker.service
[root@dockerhost docker]# docker build -t tomcat:v1 .
Sending build context to Docker daemon 7.168kB
Step 1/13 : FROM centos
---> 5d0da3dc9764
Step 2/13 : RUN mkdir /opt/tomcat/
---> Using cache
---> 29c2831a4695
Step 3/13 : WORKDIR /opt/tomcat
---> Using cache
---> ecea7cd5c77e
Step 4/13 : RUN curl -O https://dlcdn.apache.org/tomcat/tomcat-
9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz
---> Using cache
---> 5123cdc2263f
Step 5/13 : RUN tar -xvzf apache-tomcat-9.0.62.tar.gz
---> Using cache
---> 4776da674d01
Step 6/13 : RUN mv apache-tomcat-9.0.62/* /opt/tomcat
---> Using cache
---> fce4b9b7e164
Step 7/13 : RUN cd /etc/yum.repos.d/
---> Using cache
---> f7a2265a5410
Step 8/13 : RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
---> Using cache
---> 2e2e2d5d8a29
Step 9/13 : RUN sed -i
's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g'
/etc/yum.repos.d/CentOS-*
---> Using cache
---> abdcb8de2b2b
Step 10/13 : RUN yum -y install java
---> Using cache
---> 10ce50067582
Step 11/13 : CMD /bin/bash
---> Using cache
---> 4561a92d2242
Step 12/13 : EXPOSE 8080
---> Using cache
---> 95f4005d94f7
Step 13/13 : CMD ["/opt/tomcat/bin/catalina.sh", "run"]
---> Using cache
---> 9c295cdb7c8c
Successfully built 9c295cdb7c8c
Successfully tagged tomcat:v1
Checks Images:
Running Container :
[root@dockerhost docker]#
Fig. Tomcat Started
cd /opt/docker;
docker build -t regapp:v1 .;
docker run -d --name regapp:v1 -p 8087:8080 regapp:v1
Fig. Configuration on Jenkins Server
• Setup hostname
• Install Ansible
Install Ansible
Fig. Installing Ansible
Note: For Installing Ansible required python which inbuilt comes amazon ec2
service.
• On Docker Host
• Create ansadmin
• Add ansadmin to sudoers file
• Enable Password Based Login
• On Ansible Node
Fig. CopyArtifact_onto_Ansible
FROM tomcat:latest
RUN cp -R /usr/local/tomcat webpp.dist/* /usr/local/tomcatwebapps
COPY ./*.war /usr/local/tomcatwebapps
Docker Images
[ansadmin@Ansible_Server docker]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
regapp v1 15574dfecf93 About a minute ago 510MB
tomcat latest 6a1271dfce51 36 hours ago 680MB
centos latest 5d0da3dc9764 7 months ago 231MB
Output Console:
Fig.Tomcat Started
Ansible Playbook to create image and container
PLAY [ansible]
****************************************************************
****************************************************************
***********************
PLAY RECAP
****************************************************************
****************************************************************
***************************
172.31.26.13 : ok=1 changed=0 unreachable=0 failed=0
skipped=3 rescued=0 ignored=0
[ansadmin@Ansible_Server docker]$
ansible-playbook /opt/docker/regapp.yml
Fig. Editing index.jsp file
[ansadmin@Ansible_Server docker]$ ll
total 12
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21 regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 13 18:59 webapp.war
[ansadmin@Ansible_Server docker]$ date
Fri May 13 19:00:02 UTC 2022
[ansadmin@Ansible_Server docker]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
regapp latest 15574dfecf93 7 hours ago 510MB
regapp v1 15574dfecf93 7 hours ago 510MB
saifshah/regapp latest 15574dfecf93 7 hours ago 510MB
tomcat latest 6a1271dfce51 43 hours ago 680MB
centos latest 5d0da3dc9764 8 months ago 231MB
[ansadmin@Ansible_Server docker]$
Fig. Kubernetes
Windows in Kubernetes
Pre-requisites:
• an EC2 Instance
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o
"awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Fig. Successful AWS cli updated
1. Setup kubectl
The connection to the server localhost:8080 was refused - did you specify
the right host or port?
2. Setup eksctl
0.97.0
3. Create an IAM Role and attache it to EC2 instance
Note: create IAM user with programmatic access if your bootstrap
system is outside of AWS
IAM user should have access to
IAM
EC2
CloudFormation
Note: Check eksctl documentaiton for Minimum IAM policies
Example :
eksctl create cluster --name saifshah-cluster \
--region us-east-1 \
--node-type t2.small \
Output:
Fig. Cluster Created
Creating a pod:
---------------------------------------------------------------------------------------------------------
Run Kubernetes Basic Commands:
apiVersion v1
kind: pod
metadata:
name: data-pod
labels:
users: my-user
spec:
containers:
- name: demo-nginx
image: ngnix
ports:
- name: demo-nginx
containerPort: 80
type: LoadBalancer
Output: pod.yml
[root@EKS_Bootstrap_Server tmp]# cat pod.yml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: demo-app
spec:
containers:
- name: nginx-container
image: nginx
ports:
- name: nginx
containerPort: 80
[root@EKS_Bootstrap_Server tmp]# kubectl apply -f pod.yml //applying
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
pod/nginx-pod created
[root@EKS_Bootstrap_Server tmp]# kubectl get all
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
NAME READY STATUS RESTARTS AGE
pod/nginx-pod 1/1 Running 0 25s
Output : service.yml
spec:
ports:
- name: ngnix-port
port: 80
targetPort: 80
type: LoadBalancer
template:
metadata:
labels:
app: regapp
spec:
containers:
- name: regapp
image: saifshah/regapp
imagePullPolicy: Always
ports:
- containerPort: 8080
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
ports:
- port: 8080
targetPort: 8080
type: LoadBalancer
[root@EKS_Bootstrap_Server ~]#
[root@EKS_Bootstrap_Server ~]# ls
aws awscliv2.zip regapp-deploy.yml regapp-service.yml
[root@EKS_Bootstrap_Server ~]# kubectl apply -f regapp-deploy.yml
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
error: error when retrieving current configuration of:
Resource: "apps/v1, Resource=deployments", GroupVersionKind: "apps/v1,
Kind=Deployment"
Name: "saifshah/regapp", Namespace: "default"
from server for: "regapp-deploy.yml": invalid resource name
"saifshah/regapp": [may not contain '/']
[root@EKS_Bootstrap_Server ~]# vi regapp-deploy.yml
[root@EKS_Bootstrap_Server ~]# clear
[root@EKS_Bootstrap_Server ~]# ls
aws awscliv2.zip regapp-deploy.yml regapp-service.yml
[root@EKS_Bootstrap_Server ~]# kubectl apply -f regapp-deploy.yml
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
deployment.apps/saifshah-regapp created
[root@EKS_Bootstrap_Server ~]# vi regapp-service.yml
[root@EKS_Bootstrap_Server ~]# kubectl apply -f regapp-service.yml
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
service/saifshah-service created
[root@EKS_Bootstrap_Server ~]# kubectl get all
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
NAME READY STATUS RESTARTS AGE
pod/saifshah-regapp-67dc7d6554-5gdbh 1/1 Running 0 3m53s
pod/saifshah-regapp-67dc7d6554-n8vfm 1/1 Running 0 3m53s
pod/saifshah-regapp-67dc7d6554-q4bnf 1/1 Running 0 3m53s
On Bootstrap Server:
• Create ansadmin
[root@EKS_Bootstrap_Server ~]# useradd ansadmin
[root@EKS_Bootstrap_Server ~]# visudo
• Add ansadmin to sudoers file
On Ansible Node:
[root@Ansible_Server ~]# sudo su - ansadmin
Last login: Sat May 14 08:19:14 UTC 2022 from 152.57.213.2 on pts/1
[ansadmin@Ansible_Server ~]$ cd /opt/docker
[ansadmin@Ansible_Server docker]$ ll
total 16
-rw-rw-r-- 1 ansadmin ansadmin 381 May 14 07:49 deploy_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21 regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 14 08:28 webapp.war
[ansadmin@Ansible_Server docker]$ mv regapp.yml
create_image_regapp.yml
[ansadmin@Ansible_Server docker]$ ll
total 16
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21
create_image_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 381 May 14 07:49 deploy_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 14 08:28 webapp.war
[ansadmin@Ansible_Server docker]$ cat deploy_regapp.yml
---
- hosts : dockerhost
tasks:
- name : stop existing container
command : docker stop regapp-server
[kubernetes]
172.31.85.40
[ansible]
172.31.26.13
[ansadmin@Ansible_Server docker]$
PLAY [kubernetes]
****************************************************************
****************************************************************
********************
skipping: no hosts matched
PLAY RECAP
****************************************************************
****************************************************************
***************************
PLAY RECAP
****************************************************************
****************************************************************
***************************
172.31.85.40 : ok=1 changed=0 unreachable=0 failed=1
skipped=0 rescued=0 ignored=0
[ansadmin@Ansible_Server docker]$ vi kube_deploy.yml
[ansadmin@Ansible_Server docker]$ ansible-playbook -i /opt/docker/hosts
kube_deploy.yml
PLAY [kubernetes]
****************************************************************
****************************************************************
********************
PLAY RECAP
****************************************************************
****************************************************************
***************************
172.31.85.40 : ok=0 changed=0 unreachable=1 failed=0
skipped=0 rescued=0 ignored=0
PLAY [kubernetes]
****************************************************************
****************************************************************
********************
PLAY RECAP
****************************************************************
****************************************************************
***************************
172.31.85.40 : ok=0 changed=0 unreachable=1 failed=0
skipped=0 rescued=0 ignored=0
PLAY [kubernetes]
****************************************************************
****************************************************************
********************
PLAY RECAP
****************************************************************
****************************************************************
***************************
172.31.85.40 : ok=0 changed=0 unreachable=1 failed=0
skipped=0 rescued=0 ignored=0
[ansadmin@Ansible_Server docker]$
PLAY [kubernetes]
****************************************************************
****************************************************************
******************
PLAY RECAP
****************************************************************
****************************************************************
*************************
172.31.85.40 : ok=0 changed=0 unreachable=1 failed=0
skipped=0 rescued=0 ignored=0
[ansadmin@Ansible_Server docker]$ ssh-copy-id 172.31.85.40
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/home/ansadmin/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter
out any that are already installed
tasks:
- name: deploy regapp on kubernetes
command: kubectl apply -f regapp-deploy.yml
[ansadmin@Ansible_Server docker]$ cat kube_service.yml
---
- hosts: kubernetes
# become: true
user : root
tasks:
- name: deploy regapp on kubernetes
command: kubectl apply -f regapp-service.yml
[ansadmin@Ansible_Server docker]$ ansible-playbook -i /opt/docker/hosts
kube_service.yml
PLAY [kubernetes]
****************************************************************
****************************************************************
******************
PLAY RECAP
****************************************************************
****************************************************************
*************************
172.31.85.40 : ok=2 changed=1 unreachable=0 failed=0
skipped=0 rescued=0 ignored=0
[ansadmin@Ansible_Server docker]$
Fig. Ansible Deploy and Service playbook
Fig. Deploy_on_Kubernetes
[ansadmin@Ansible_Server docker]$ ll
total 28
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21
create_image_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 381 May 14 07:49
docker_deployment_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 62 May 17 18:42 hosts
-rw-rw-r-- 1 ansadmin ansadmin 154 May 17 19:13 kube_deploy.yml
-rw-rw-r-- 1 ansadmin ansadmin 154 May 17 19:31 kube_service.yml
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 14 08:28 webapp.war
[ansadmin@Ansible_Server docker]$ ansible-playbook -i /opt/docker/hosts
kube_service.yml^C
[ansadmin@Ansible_Server docker]$
[root@EKS_Bootstrap_Server ~]#
[root@EKS_Bootstrap_Server ~]# clear
[root@EKS_Bootstrap_Server ~]# kubectl get all
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 45h
[root@EKS_Bootstrap_Server ~]# kubectl get all
Kubeconfig user entry is using deprecated API version
client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to
update.
NAME READY STATUS RESTARTS AGE
pod/saifshah-regapp-67dc7d6554-m4ck9 1/1 Running 0 27s
pod/saifshah-regapp-67dc7d6554-rr58w 1/1 Running 0 27s
pod/saifshah-regapp-67dc7d6554-x24cx 1/1 Running 0 27s
[ansadmin@Ansible_Server docker]$ ll
total 28
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21 create_image_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 381 May 14 07:49
docker_deployment_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 62 May 17 18:42 hosts
-rw-rw-r-- 1 ansadmin ansadmin 245 May 18 09:48 kube_deploy.yml
-rw-rw-r-- 1 ansadmin ansadmin 154 May 17 19:31 kube_service.yml
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 14 08:28 webapp.war
[ansadmin@Ansible_Server docker]$ cat create_image_regapp.yml
---
- hosts: ansible
tasks:
[ansadmin@Ansible_Server docker]$ ^C
[ansadmin@Ansible_Server docker]$ docker login
Authenticating with existing credentials...
Login did not succeed, error: Cannot connect to the Docker daemon at
unix:///var/run/docker.sock. Is the docker daemon running?
Login with your Docker ID to push and pull images from Docker Hub. If you
don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (saifshah): saifshah
Password:
WARNING! Your password will be stored unencrypted in
/home/ansadmin/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-
store
Login Succeeded
[ansadmin@Ansible_Server docker]$ docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the
docker daemon running?
[ansadmin@Ansible_Server docker]$ service docker start
Redirecting to /bin/systemctl start docker.service
Failed to start docker.service: The name org.freedesktop.PolicyKit1 was not
provided by any .service files
See system logs and 'systemctl status docker.service' for details.
[ansadmin@Ansible_Server docker]$ docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the
docker daemon running?
[ansadmin@Ansible_Server docker]$ sudo service docker start
Redirecting to /bin/systemctl start docker.service
[ansadmin@Ansible_Server docker]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
saifshah/regapp latest 15574dfecf93 4 days ago 510MB
regapp latest 15574dfecf93 4 days ago 510MB
regapp v1 15574dfecf93 4 days ago 510MB
tomcat latest 6a1271dfce51 6 days ago 680MB
centos latest 5d0da3dc9764 8 months ago 231MB
[ansadmin@Ansible_Server docker]$
[ansadmin@Ansible_Server docker]$ ll
total 28
-rw-rw-r-- 1 ansadmin ansadmin 357 May 13 18:21
create_image_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 381 May 14 07:49
docker_deployment_regapp.yml
-rw-rw-r-- 1 ansadmin ansadmin 528 May 13 12:12 Dockerfile
-rw-rw-r-- 1 ansadmin ansadmin 62 May 17 18:42 hosts
-rw-rw-r-- 1 ansadmin ansadmin 245 May 18 09:48 kube_deploy.yml
-rw-rw-r-- 1 ansadmin ansadmin 154 May 17 19:31 kube_service.yml
-rw-rw-r-- 1 ansadmin ansadmin 2913 May 18 11:17 webapp.war
[ansadmin@Ansible_Server docker]$ vi kube_deploy.yml
[ansadmin@Ansible_Server docker]$ cat kube_deploy.yml
---
- hosts: kubernetes
#become: true
user: root
tasks:
- name: deploy regapp on kubernetes
command: kubectl apply -f regapp-deploy.yml
- name: update deployment with new pods if image updated in docker hub
command: kubectl rollout restart deployment.apps/saifshah-regapp
[ansadmin@Ansible_Server docker]$
Output :
Fig. Bootstrap Server Running
Deleting Cluster: