ansible 주요 역할 정리

2018. 7. 31. 16:32CM/ansible

반응형

inventory file은 

리모트 서버에 대한 meta 데이터를 기술하는 파일.

기본 파일은 /etc/ansible/hosts이나 따로 inventory file을 사용할 수 있는 옵션(-i)을 줄수 있음.

alpha파일이라고 가정하고 그 안의 내용은 아래와 같다.

 acet1 ansible_host=acet-dev.cc

[acet]
acet1 


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
  yum:
    name: git
become: true 

2) Ansible 모듈 이용 task

- copy: src=/srv/myfiles/foo.conf 블라블라 

3) item을 이용한 복수 작업

 - template:
    src: "{{ item }}.j2"
    dest: "{{script_dir}}/{{item}}"
    mode: 0775
  with_items:
    - "delete_xxx_log.sh"
tags: ["cron-deletelog"] 


4) include - 변수 값을 지정해서 include yaml 파일로 넘길수도 있음.

 - include: fluentd.yml user=www group=www
tags: ["fluentd"] 

5) when(conditional)

 vsc_branch: false

 - include: acet-branch.yml
  when: acet_branch
tags: ["branch"]

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 등 사용자가 정의하여 만들수 있다.


참고문서 : 슬라이드쉐어





반응형