playbook 이란

각본이라고 나오는데 작업계획서 ??같은거다.

예를들어 서버에 apache를 설치할 때

1.아파치를 다운로드 받고

2.압축풀고

3.소스설치하고 등등

작업들을 나열한 파일(이름.yml)을 플레이북이라 하고 playbook에 입력돼있는 모듈, 작업들을 순차적으로 진행한다.

yaml로 짜여져있어서 첫줄에는 --- 을 적어야한다.

 

그리고 -name: 작업이름을 적어준다. 여기서 : 이거 뒤에 스페이스로 한칸 뛰어야한다. 야믈 문법은 계속 공부하면서 읶혀야할듯

##name은 필수가 아니다. 다만 무조건 적는 습관을 들이자. playbook 실행시 어느 구간이 작업되고 있는지 확인할 수 있고 다른사람이 볼때도 쉽게 알아야 하니까.

 

 

아래는 /root/test.txt 라는 파일을 /root/test.txt_ori로 옮기고(만약 /root/test.txt가 없을경우는 무시)

/root/ansible/template/test.j2를 /root/test.txt로 업로드하는 플레이북이다.

 

--- ## 첫줄은 무조건 --- 적어줘야한다. yml 명시
- hosts: all ## 작업 대상은 /etc/ansible/hosts에 적혀있는 모든 서버들, : 땡땡 뒤에는 므조건 스페이스로 한칸 띄어줘야 한다. 
  remote_user: root  ##맨앞에는 스페이스로 두칸 띄어주고
  tasks: ##마찬가지로 여기도 맨앞에는 스페이스로 두칸 띄어주고
  - name: centos 5 version mv test.txt test.txt_ori   
    shell: bash -c 'mv /root/test.txt /root/test.txt_ori'   ###이번에는 4칸. 들여쓰기 해줘야됨. / root/test.txt 라는 파일을 /root/test.txt_ori로 옮긴다.
    when: ansible_distribution == "CentOS" and ansible_distribution_major_version == '6' ###서버 os가 centos 6버전일때만
    ignore_errors: True ###/root/test.txt 가 서버에 없으면 에러발생하고 그다음작업 진행을 안한다. ignore_errors:True 해야지 /root/test.txt 가 없어도 무시하고 다음작업을 진행한다.
  - name: centos 5 version new test.txt upload | Template test.txt
    template: src="/root/ansible/template/test.j2" dest="/root/test.txt" force=yes owner=root group=root mode="0644" ##test.txt 새로 업로드

'job > ansible' 카테고리의 다른 글

ansible - 디렉토리 구조  (0) 2019.05.02
ansible- error  (0) 2019.04.26
ansible-2 hosts(그룹), 멱등성  (0) 2019.04.22
ansible-1  (0) 2019.04.10
ansible 공부  (0) 2018.10.10

+ Recent posts