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 |