Ansible(앤서블) 구성
인벤터리(Inventory)
Ansible hosts라고도 함
원격 서버들의 목록
/etc/ansible/hosts 파일에 원격 서버들 목록이 저장되어 있음
플레이북(play-book)
원격 서버에 전달할 명령들을 모아둔 명령집
구축 정보에 대한 정의를 미리 실시
구축을 실행하는 경우에 이 playbook 파일을 지정하는 것만으로 자동으로 일련의 처리가 진행되는 구조
예제
우선, 사전작업을 해주자.
$ sudo yum -y install git
$ git clone https://github.com/devops-book/ansible-playbook-sample.git
이제 playbook을 실행해보자.
$ cd ansible-playbook-sample
$ ansible-playbook -i development site.yml
해당 샘플에서는 nginx 설치와 index.html을 갱신
-i: Inventory
그러나 여기서는 별도 파일을 지정
상태 확인
$ curl localhost
잘 동작하는 것을 확인
위의 site.yml 파일을 다시 보자.
'hosts: webservers'는 별도 정의된 Inventory File에서 지정한 그룹을 참조
development 파일을 확인해보자.
localhost는 webservers 그룹과 development-webservers 그룹에 속해 있다
webservers에 localhost라는 정보를 저장하고 있으며, webservers는 development-webservers 정보를 상속받고 있다
'become'은 대상 호스트에 root 사용자로 작업을 수행하도록 지정
'connection'은 대상 호스트가 ssh 대신 local 연결을 하는 것을 의미
'roles'는 common과 nginx 처리 수행을 지정
이 두 가지가 구체적으로 무엇을 수행하는 것인지는 roles directory 아래 각각 tasks안에 기록
dry-run 모드
실제로 인프라를 배포하기 전에 ansible을 check 모드로 실행하는 것
실행
$ ansible-playbook -i development site.yml --check --diff
--check: dry-run 모드 지정
--diff: 변경 차리를 표시하도록 지정
index.html 파일 수정 후 재실행
$ vi /home/vagrant/ansible-playbook-sample/roles/nginx/templates/index.html.j2
hello, {{env}} ansible!!!
hello, {{env}} ansible~ #수정
$ ansible-playbook -i development site.yml --check --diff
$ ansible-playbook -i development site.yml --diff
결과 확인
$ curl localhost
<출처>
IT 운용 체제 변화를 위한 데브옵스(DevOps)
'Study > Ansible' 카테고리의 다른 글
[Ansible]Serverspec (0) | 2023.02.07 |
---|---|
[Ansible]Ansible(앤서블) 시작하기 (0) | 2023.02.07 |