Ansible의 특징중 멱등성이 있는데 같은 설정을 여러번 적용하더라도 한번만 적용됩니다.
아까 적용했던 ansible playbook을 다시 실행하고 확인해보아도 추가가 되지않은 상황을 보실 수 있습니다.
/etc/ansible 하위에 hosts 파일을 만들어 다음과 같이 써주면 devops라는 그룹으로 두개의 인스턴스를 정의할 수 있습니다.
정의해준 인스턴스가 정상적으로 구동이 됐는지 ping 명령어로 확인해줄 수 있습니다.
all 명령어는 hosts에 등록된 모든 인스턴스에 명령어를 전달합니다.
172.17.0.3 인스턴스를 죽여서 테스트 해봅니다.
PING PONG이 되지 않은것을 확인할 수 있습니다.
ansible의 모듈(-m)중 shell이란 명령어를 사용하면 해당 인스턴스에 명령어를 전달할 수 있습니다.
-a는 파라미터를 전달하는 옵션입니다.
Ansible 서버에 전달할 파일을 만들어 줍니다.
copy라는 모듈을 사용해 파일을 전달할 수 있고
파라미터 중 src는 전달할 파일이고 dest 전달 받을 경로입니다.
정상적으로 파일이 복사되어 전달된것을 확인할 수 있습니다.
ansible의 module 중 yum을 사용하여 대상 인스턴스에 httpd 프로그램을 설치해보겠습니다.
대상 두 인스턴스에 httpd가 설치가 안된것을 확인합니다.
yum module을 사용하여 설치를 진행해줍니다.
대상 두 인스턴스에 정상적으로 모두 설치가 된것을 확인할 수 있습니다.
reference :
이도원 - Jenkins를 이용한 CI/CD Pipeline 구축