1. 형식


   - name : 테스트

     yum: name={{  item }}  state=present

     with_items:

           - httpd

           - php

           * 다른형태 { src : v1, dest: v2 }     => 접근 item.src


2. 반복 기능


   1) with_items (리스트)   :  item 으로 사용

vars:

mail_services:

- postfix

- sendmail

tasks:

- yum:

name: "{{ item }}"

state: latest

with_items: "{{ mail_services }}"


   2) with_dict  (딕셔너리)  :  item.key, item.value형식으로 사용

   3) with_fileglob (리스트) : 파일경로 패턴(/tmp/*.txt)를 주면 해당 내용르 리스트로 저장

   4) with_nested (리스트) : 복수에 리스트를 조합하여 리스트 생성 

      mysql_user:

name: "{{ item[0] }}"

priv: "{{ item[1] }}.*:ALL"

append_privs: yes

password: test

with_nested:

- [ 'n1', 'n2' ]

- [ 'd1', 'd2', 'd3' ]


   5) with_random_choice (리스트) : 랜덤하게 선택하여 item저장

   6) with_first_found (리스트) : 리스트 파일 경로중 최초에 발견한 파일 item 저장

   7) with_sequence : 늘어나는 숫자로 항목순서 생성 (start, end)



3. 조건 판정

   - name :

     yum : name=httpd state=latest

     when : ansible_os_family == "Redhat"   조건 확인


     when : result | failed

     when : result | changed


   조건연산자

   ==                            :  "{{ max_memory }} == 512"

   <                              :  "{{ min_memory }} < 128"

   >                              :  "{{ min_memory }} > 256"

   <=

   >=

   !=                             : 같지 않음

   is defined                    :  "{{ min_memory }} is defined"  변수있음

   is not defined              : "{{ min_memory }} is not defined"  

   "{{ available_memory }}"  : 변수가 있으면 true

   "not {{ available_memory }}" 

   "{{ user }} in users['admins']" : 배열에 값이 있는지?

   


4. 필터


   vars:

Abc :

- a

- b

- c

   tasks :

      - debug: msg={{  Abc | first  }}   ==> a  (첫번째 출력)

      - debug: msg={{  Abc | first | lower }}   ==> a (첫번째, 소문자)

      - debug: msg={{  Abc | join(',') }}   ==> a,b,c 출력




'Devops' 카테고리의 다른 글

ansible 조건 예제  (0) 2018.02.12
docker  (0) 2017.07.11
ansible task 주요 설정키  (0) 2017.06.30
Ansible play 주요 설정키  (0) 2017.06.30
yaml 구문  (0) 2017.06.30

+ Recent posts