Ansible - dict2items 활용 > Ansible 자료실

본문 바로가기
사이트 내 전체검색

Ansible 자료실

운영 Ansible - dict2items 활용

페이지 정보

profile_image
작성자 snow
댓글 0건 조회 1,903회 작성일 23-05-30 13:43

본문

동일한 작업을 여러 번 반복하는 경우 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. 출력 결과 확인


화면 캡처 2023-05-30 135033.jpg

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : (주)리눅스데이타시스템 / 대표 : 정정모
서울본사 : 서울특별시 강남구 봉은사로 114길 40 홍선빌딩 2층 / tel : 02-6207-1160
대전지사 : 대전광역시 유성구 노은로174 도원프라자 5층 / tel : 042-331-1161

접속자집계

오늘
695
어제
1,612
최대
3,935
전체
795,166
Copyright © www.linuxdata.org All rights reserved.