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 |