반응형
1. 변수 정의와 사용 방법
playbook에서 변수 정의는 vars필드로 합니다.
- name: Variables
hosts: localhost
vars:
hello: world
그리고 정의한 변수는 “{{ 변수이름 }}”으로 사용합니다. 꼭 쌍따옴표가 있어야 합니다.
- name: Variables key value
hosts: localhost
vars:
hello: world
tasks:
- name: Echo vars
ansible.builtin.debug:
msg: "{{ hello }}"
playbook을 실행하면 변수 값이 잘 출력됩니다.
ansible-playbook playbook.yaml
2. 변수 유형
2.1 key-value
key-value는 변수이름과 변수 값을 정의하는 유형입니다. 변수 사용방법은 변수이름만 참조하면 됩니다.
- name: Variables key value
hosts: localhost
vars:
a: a1
b: b1
tasks:
- name: Echo
ansible.builtin.debug:
msg: "{{ a }}"
- name: Echo
ansible.builtin.debug:
msg: "{{ b }}"
2.2 dictonary
dictonary는 key(변수이름)를 중첩해서 사용하는 유형입니다. 변수 사용방법은 key를 “.”으로 나열하여 변수를 참조합니다.
- name: Variables key value
hosts: localhost
vars:
dummy:
a: a1
b: b1
tasks:
- name: Echo a
ansible.builtin.debug:
msg: "{{ dummy.a }}"
- name: Echo b
ansible.builtin.debug:
msg: "{{ dummy.b }}"
2.3 list
list는 변수 값이 여러 개일때 사용하는 유형입니다. 변수 값은 대시(-)를 사용하여 여러 개 정의합니다. 변수 사용방법은 변수이름[인덱스]로 참조합니다.
- name: Variables list
hosts: localhost
vars:
alphabets:
- a
- b
- c
tasks:
- name: Echo index 0
ansible.builtin.debug:
msg: "{{ alphabets[0] }}"
- name: Echo index 1
ansible.builtin.debug:
msg: "{{ alphabets[1] }}"
- name: Echo index 2
ansible.builtin.debug:
msg: "{{ alphabets[2] }}"
3. 실행 시 변수 오버라이딩
playbook 변수는 실행할 때 변수값을 오버라이딩 할 수 있습니다. --extra-vars 또는 -e 로 변수값을 오버라이딩합니다. 만약 변수가 없다면 변수를 생성합니다.
아래 예제는 hello라는 변수가 있습니다.
- name: Variables key value
hosts: localhost
vars:
hello: world
tasks:
- name: Echo vars
ansible.builtin.debug:
msg: "{{ hello }}"
playbook을 실행할 때 -e인자를 사용하여 hello변수를 tttt로 변경할 수 있습니다.
ansible-playbook playbook.yaml -e “hello=tttt”
반응형
'연재 시리즈' 카테고리의 다른 글
Ansible playbook task 결과를 변수로 저장 (0) | 2024.01.20 |
---|---|
Ansible playbook 파일을 사용하여 변수 정의 (0) | 2024.01.20 |
Ansible playbook 실패 제어 (0) | 2024.01.19 |
Ansible vault (0) | 2024.01.14 |
Ansible playbook (0) | 2024.01.14 |