Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
Cloud/Integration

ansible 배포

by tankwoong 2023. 10. 16.
반응형

윈도우 환경에서 ubuntu 가상 os를 설치하고, 그 내부에 docker, jenkins, ansible, tomcat 서버를 구축한다. 

 

docker repository 생성

docker login

docker pull myoungseok/ansible

- 이미지 가져오기 

docker tag myoungseok/ansible cloudwoong/ansible <- my repository

docker push cloudwoong/ansible

 

docker run --privileged --name ansible-server -d -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host cloudwoong/ansible /usr/sbin/init

docker exec -it ansible-server bash

 

cat /etc/*release

[root@da462b619f64 ~]# yum install -y ncurses

 

root@ubuntu:~# docker run --privileged --name ansible-server -d -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host cloudwoong/ansible /usr/sbin/init

docker run --privileged --name docker-server2 -d -p 30022:22 -p 8082:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host cloudwoong/ansible /usr/sbin/init

 

docker run --privileged -d -p 8080:8080 -p 50000:50000 --restart=on-failure -v jenkins_home:/var/jenkins_home --name jenkins-server jenkins/jenkins
docker exec -it -u 0 jenkins-server bash 

-jenkins은 그냥 들어가면 사용자 모드이기 때문에 -u를 붙여 관리자권한으로 설정해준다.
docker run -d --name tomcat -p 8083:8080 tomcat:9.0
docker exec -it tomcat /bin/bash

 jenkins과 tomcat에서 ssh 설정해주기 

apt update

apt install openssh-server openssh-client

nano /etc/ssh/sshd_config

 

Port 22

ListenAddress 0.0.0.0

PermitRootLogin yes

PasswordAuthentication yes

 

passwd root

12345

 

service ssh restart/enable/status

 

ansible에서 설정하기 

[root@da462b619f64 ~]# ssh-copy-id root@172.17.0.2

password = 12345

[root@da462b619f64 ~]# ssh-copy-id root@172.17.0.3

password = P@ssw0rd

[root@da462b619f64 ~]# ssh-copy-id root@172.17.0.4

password = 12345

[root@da462b619f64 ~]# ssh-copy-id root@172.17.0.5

password = P@ssw0rd

 

생성된 ssh-key 확인

 

 

ok failed changed unreachable 중에 하나의 대답이 나온다.

처음에 Failed라고 나왔는데 jenkins 칸에 python3를 설치해주니깐 제대로 실행되었다.

which python3로 확인한 후 없으면 깔고 확인하면 모두 SUCCESS으로 나온다.

위의 명령어로 각각의 메모리를 확인할 수 있다.

 

 

각 호스트의 가동 시간 정보가 표시

ansible에서 설정 

[root@da462b619f64 ~]# pwd
/root
[root@da462b619f64 ~]# touch copytest.txt
[root@da462b619f64 ~]# cat > copytest.txt
copy test
[root@da462b619f64 ~]# cat copytest.txt 
copy test

jenkins, docker-server2, tomcat에서 설정 

root@e1795ab93545:~# pwd
/root
root@e1795ab93545:~# mkdir test

[root@da462b619f64 ~]# ansible all -m copy -a "src=./copytest.txt dest=~/test"

tomcat에서 다음의 명령어를 확인할 수 있다.

ansible은 centos이기 때문에 yum 명령어로 상태를 볼 수 있게 설정할 수 있다.

 

반응형