반응형
Ansible-playbook 이란
YAML 파일을 기반으로 정의된 다수의 task를 수행하는 툴이다. 대부분의 task는 ansible 모듈을 호출하는 형태이다.
ansible-playbook 디렉토리 구조
- hosts
ansible의 inventory 파일이다. 작업을 수행할 호스트 목록을 정의한다. 그룹으로 정의할 수도 있다.
[hdfs-namenode]
nn01.test.com
nn02.test.com
[mysql]
db01.test.com
db02.test.com
- roles
- hadoop : role 이름
- tasks : 해당 role에서 수행할 task 목록들이다. 해당 role을 수행시키는 메인파일은 main.yml이다.
- meta : 이 디렉토리에 있는 main.yml 파일은 tasks들의 메타정보(task 의존성 등)를 정의한다.
- files : 서버에 복사해야 할 파일이나 스크립트 파일들을 담아둔다.
- templates : 템플릿으로 사용할 파일들(ex. core-site.xml 등과 같은 설정파일)을 담아둔다.
- hadoop : role 이름
---
# main.yml 예시
- include: file.yml
- name: Starting NameNode
service: name=hadoop-hdfs-namenode state=started
when: ansible_fqdn in groups['hdfs-namenode']
- group_vars : 특정 role에서 사용할 변수를 정의한다.
- hadoop.yml
- mysql.yml
---
fs_default_port: 8020
# 그룹 형식으로 변수를 정의할 수 있다.
mysql_core_db:
host: "{{ groups['mysql'][0] }}"
port: 3306
root_user: root
root_password: root
- library : custom 라이브러리를 넣어두는 디렉토리이다.
참고자료
ansible-playbooks 디렉구조(공식문서) : https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
http://theeye.pe.kr/archives/2597
https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html
roles 설명 : http://oniondev.egloos.com/9978477
반응형
'기초 튼튼탄탄탄 > DevOps' 카테고리의 다른 글
[ansible] fetch 모듈을 사용하여 파일 가져오기 (4) | 2020.04.17 |
---|---|
docker로 hadoop 클러스터 (우분투 기반) 구축하기 (4) | 2020.04.10 |
[docker] 다른 host에서 도커 컨테이너로 접속하는 방법 (6) | 2020.01.12 |
VMware ESXi - VM 복제하는 방법 (4) | 2019.12.10 |
vim 사용법 | 실무에 바로 쓰는 vim 유용한 팁들 (2) | 2019.11.26 |
댓글