플레이북 변수 사용하기
- Ansible 에서도 변수 설정이 가능하다.
- 기존의 ansible.cfg, inventory를 가지고 있어야한다.
mkdir test_variable
cd test_variable
vim test_vars.yml
---
- name: variable examples
hosts: localhost
gather_facts: no
vars:
- vars01: abc
tasks:
- debug:
msg: vars01
# 로컬 호스트에서 진행을 할 것이고 vars01 라는 변수에 abc라는 문자열을 넣을 것이다.
# debug 모듈을 통해 vars01을 출력
# 위의 명령어대로 변수에 괄호를 넣지 않을 경우 vars01이 그대로 출력됨을 볼 수 있다.
- 단독으로 쓰일 때 괄호를 써보자
---
- name: variable examples
hosts: localhost
gather_facts: no
vars:
- vars01: abc
tasks:
- debug:
msg: "{{ vars01 }}"
# 원하는 결과값인 vars01변수의 값 abc가 출력됨을 볼 수 있다.
문자열과 함께 변수를 출력하기
- 문자열과 함께 변수를 출력해보겠다.
---
- name: variable examples
hosts: localhost
gather_facts: no
vars:
- vars01: abc
tasks:
- debug:
msg: This is variable "{{ vars01 }}"
# 앞 뒤로 큰따옴표까지 출력이 되었다.
- 문자와 함께 출력할 땐 아래와 같이 수정한다.
---
- name: variable examples
hosts: localhost
gather_facts: no # 팩트값 수집 x
vars:
- vars01: abc
tasks:
- debug:
msg: This is variable {{ vars01 }}
변수를 문자열의 맨 앞에 포함해서 출력하기
- 변수를 문자열의 맨 앞에 포함해서 출력해보겠다.
---
- name: variable examples
hosts: localhost
gather_facts: no # 팩트값 수집 x
vars:
- vars01: abc
tasks:
- debug:
msg: {{ vars01 }} is variable
# 기나긴 오류가 뜬다. 문자열의 맨 앞에 변수가 입력될 경우 큰따옴표가 필요하다.
- 하지만 아래와 같은 형식으로도 다시 오류가 뜬다.
---
- name: variable examples
hosts: localhost
gather_facts: no # 팩트값 수집 x
vars:
- vars01: abc
tasks:
- debug:
msg: "{{ vars01 }}" is variable
# 그렇다. 문자열의 앞에 위치할 경우 따옴표를 ["변수" 문자열 ]이 아닌["변수 문자열"]로 해주어야 한다.
- 변수와 문자열을 따옴표로 묶어준다.
---
- name: variable examples
hosts: localhost
gather_facts: no # 팩트값 수집 x
vars:
- vars01: abc
tasks:
- debug:
msg: "{{ vars01 }} is variable "
# 원하는 결과값이 출력됨을 알 수 있다.
배열 출력하기
- 배열 형식일 경우 사용법은 {{ 배열명.[0] }}
---
- name: variable examples
hosts: localhost
gather_facts: no # 팩트값 수집 x
vars:
- vars01: abc
- vars02:
- 123
- 456
- 789
tasks:
- debug:
msg: "{{ vars01 }} is variable
- debug:
msg: "{{ vars02[0] }} is variable"
- debug:
msg: "{{ vars02[1] }} is variable "
# vars01변수에는 abc의 값을 넣었고
# vars02배열에는 각각 123, 456, 789 값을 넣었다.
변수 파일 지정하기
- 변수가 많아지면 많아질수록 플레이북이 복잡해진다.
- 이러한 경우를 위해 vars_file 을 지정한다.
vim test_vars.yml
---
- name: variable examples
hosts: localhost
gather_facts: no
vars_files:
- variable_file.yml
vars:
- vars01: abc
tasks:
- debug:
msg: This is normal variable {{vars01}}
- debug:
msg: "{{ vars02[0] }} is first index variable"
- debug:
msg: "{{ vars02[1] }} is last index variable"
vim variable_file.yml
- vars01: abc
- vars02:
- 123
- 456
- 789
* 변수 파일의 우선순위는 vars_file > 플레이북 내 vars > inventory 순서이다.
'DevOps > Ansible' 카테고리의 다른 글
[Ansible] Facts란 (0) | 2021.09.10 |
---|---|
[Ansible] Ansible 실습 - AD-HOC, Playbook예제 풀어보기 (0) | 2021.09.10 |
[Ansible] Ansible 실습 - Playbook (0) | 2021.09.09 |
[Ansible] Ansible 실습 - AD-HOC와 모듈 사용법 (0) | 2021.09.07 |
[Ansible] Ansible 실습 - 구성파일 설정 (0) | 2021.09.07 |