playbook : 사용자가 원하는 내용을 정리해둔 파일
- 사전적 의미 : 작전, 계획
playbook의 특성 : 멱등성(연산을 여러 번 실행해도 똑같은 결과를 가져옴)
<example>
[root@AnsibleServer ~]# echo -e "[lauren]\n192.168.35.13" >> /etc/ansible/hosts
echo -e : "" 안의 특수 문자를 이해하기 위함(\n 같은 것)
[root@AnsibleServer ~]# vi /etc/ansible/hosts
[nginx]
192.168.35.11
192.168.35.12
192.168.35.13
[lauren]
192.168.35.13
가장 아래에 추가됨을 알 수 있음
위를 한 번 더 실행하면..?
[nginx]
192.168.35.11
192.168.35.12
192.168.35.13
[lauren]
192.168.35.13
[lauren]
192.168.35.13
밑에 똑같이 한 줄 더 생김
YAML 파일을 만들어보자
[root@AnsibleServer ~]# vi lauren.yml
- name: Ansible_vim
hosts: localhost
tasks:
- name : Add ansible hosts
blockinfile:
path: /etc/ansible/hosts
block: |
[lauren]
192.168.35.13
아래에 추가 설명할 예정!!
YAML 파일을 실행해보자!!
root@AnsibleServer ~]# ansible-playbook lauren.yml
PLAY [Ansible_vim] *************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Add ansible hosts] *******************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@AnsibleServer ~]# vi /etc/ansible/hosts
## db-[99:101]-node.example.com
[nginx]
192.168.35.11
192.168.35.12
192.168.35.13
# BEGIN ANSIBLE MANAGED BLOCK
[lauren]
192.168.35.13
# END ANSIBLE MANAGED BLOCK
가장 아래부분에 추가 된 것을 확인 할 수 있음!!!
만약, 한 번 더 실행한다면??? 또 밑에 추가될까???
정답은 NO!!!
[root@AnsibleServer ~]# ansible-playbook lauren.yml
PLAY [Ansible_vim] *************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Add ansible hosts] *******************************************************
ok: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
바뀐게 없다고 나옴!!!
[root@AnsibleServer ~]# vi /etc/ansible/hosts
여기 들어가서 확인해봐도 바뀐게 없음!! 이게 바로 멱등성이다. 아무리 여러 번 실행해도 결과가 항상 똑같은 것!!
YAML이란?
mark up 언어 처럼 모듈 등을 쉽게 작성해서 사용할 수 있음
예제
name : 파일의 이름
hosts : 실행될 곳
tasks : 작업하는 내용
name : task의 이름
bloackinfile : 모듈의 이름
block을 시작하는 시작 포인트 " | ", 끝은 정하지 않음
'네트워크 > 네트워크 자동화' 카테고리의 다른 글
[000] ansible playbook editor - ansible vim 설치하기 (0) | 2021.02.03 |
---|---|
[6] 3대의 노드에 웹서버를 설치하고 기동해보자!(centos, ansible) (0) | 2021.02.03 |
[00]YAML(Playbook) 입력시 주의점!! 탭이 인식 안된다고? (0) | 2021.02.03 |
[4] Ansible 활용하기 기초편 (0) | 2021.02.01 |
[3]Ansible의 구성파일 (0) | 2021.02.01 |