본문 바로가기
기초 튼튼탄탄탄/DevOps

ansible-playbook 디렉토리 구조

by 잇서니 2019. 12. 5.
반응형

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 등과 같은 설정파일)을 담아둔다. 
---
# 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

 

반응형

댓글