inventory file은
리모트 서버에 대한 meta 데이터를 기술하는 파일.
기본 파일은 /etc/ansible/hosts이나 따로 inventory file을 사용할 수 있는 옵션(-i)을 줄수 있음.
alpha파일이라고 가정하고 그 안의 내용은 아래와 같다.
acet1 ansible_host=acet-dev.cc [acet] |
playbook은
ansible의 환경 설정, 배포를 가능케 함.
yaml 문법을 채용하여 정책을 기술
conditional(when), variables, loops(with_items), include, 결과 저장(register) 지원.
하나의 playbook은 하나 이상의 play를 두며 play의 목적은 여러 호스트들에 잘 정의된 role과 task를 매핑하는 역할을 맡음.
task 는
ansible module을 호출하는 단위(필수)
task 종류
1) 간단 task : name / action
- name: install git |
2) Ansible 모듈 이용 task
- copy: src=/srv/myfiles/foo.conf 블라블라
3) item을 이용한 복수 작업
- template: |
4) include - 변수 값을 지정해서 include yaml 파일로 넘길수도 있음.
- include: fluentd.yml user=www group=www |
5) when(conditional)
vsc_branch: false - include: acet-branch.yml ansible-playbook -i alpha -l acet deploy.yml -v -e "BUILD_TAG=${ACET_BUILD_TAG}" -e "acet_branch=true" |
6) event 발생(task -> handler) 예제는 pass~
role 은
structure 기본 단위로서 설치, 사용이 가능
acet dir 등 사용자가 정의하여 만들수 있다.
참고문서 : 슬라이드쉐어