운영 Ansible - dict2items 활용
페이지 정보
본문
동일한 작업을 여러 번 반복하는 경우 Ansible Loop 를 활용하여 작업을 수행할 수 있습니다.
1. 개요
키-값 형태로 저장되는 객체인 사전(dictionary) 객체를 개별적으로 사용할 수 있는 형태인 아이템(item)으로 변환시켜주는 키워드입니다.
주로 반복문과 함께 사용되어 사전 객체 내의 각 키-값 쌍(key-value pair)을 처리하는데 활용됩니다.
만약 변수가 아래와 같이 있다고 가정합니다.
1
|
dict_variable : {'key1': 'value1', 'key2': 'value2'}
|
cs |
사용은 아래와 같이 진행하면 됩니다.
1
|
dict_variable | dict2items
|
cs |
dict2items 키워드를 사용하면 아래와 같이 변수의 값이 출력됩니다.
1
|
[{'key': 'key1', 'value': 'value1'}, {'key': 'key2', 'value': 'value2'}]
|
cs |
2. 사용 예시
1. dict 형태의 변수 저장
1
2
3
4
5
6
7
8
9
10
11
12
13
|
cat users.yml
---
users:
alice:
uid: 1990
groups: ['sudo', 'admin']
bob:
uid: 1991
groups: ['admin']
charlie:
uid: 1992
groups: []
---
|
cs |
2. 변수를 사용하는 플레이북을 생성하여 결과 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
- name: Show user accounts
hosts: localhost
become: yes
vars_files:
- users.yml
tasks:
- name: expand the users
ansible.builtin.debug:
msg: "{{ users | dict2items }}"
- name: view users in line
ansible.builtin.debug:
msg: "{{ item.key }} - {{ item.value }}"
loop: "{{ users | dict2items }}"
- name: Create users with their respective groups
ansible.builtin.user:
name: "{{ item.key }}"
uid: "{{ item.value.uid }}"
group: "{{ item.value.groups | join(',') }}" # Group 정보를 쉼표로 구분된 문자열로 결합
loop: "{{ users | dict2items }}"
|
cs |
3. 출력 결과 확인
관련링크
- 이전글Ansible - YAML 구문 이해 23.10.25
- 다음글Ansible - Vault 가능한 항목 21.12.30
댓글목록
등록된 댓글이 없습니다.