Ansible - 작업 실행 위치 제어( Delegation/Local Action ) > Ansible

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

Ansible

운영 Ansible - 작업 실행 위치 제어( Delegation/Local Action )

페이지 정보

profile_image
작성자 AnsibleM
댓글 0건 조회 414회 작성일 21-02-26 16:33

본문

Ansible 활용 시, 특정 호스트에서 작업을 수행하고 싶을 경우 작업 위임 및 local action 을 사용할 수 있다.


1. 작업 위임 - Delegation

delegate_to : 작업을 수행하고자 하는 호스트에 권한을 위임하여 실행하는 옵션.
inventory 내 작업대상 외에 다른 서버에서의 작업이 필요한 경우 등 사용 가능

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
---
- hosts: webservers
  serial: 5
 
  tasks:
    - name: Take out of load balancer pool
      ansible.builtin.command: /usr/bin/take_out_of_pool {{ inventory_hostname }}
      delegate_to: 127.0.0.1
 
    - name: Actual steps would go here
      ansible.builtin.yum:
        name: acme-web-stack
        state: latest
 
    - name: Add back to load balancer pool
      ansible.builtin.command: /usr/bin/add_back_to_pool {{ inventory_hostname }}
      delegate_to: 127.0.0.1
cs
> 127.0.0.1 은 Ansible 컨트롤러 머신에서( localhost ) 실행됨을 뜻함.


2. Local Action

1
2
3
4
5
6
7
8
9
10
11
---
# ...
 
  tasks:
    - name: Take out of load balancer pool
      local_action: ansible.builtin.command /usr/bin/take_out_of_pool {{ inventory_hostname }}
 
# ...
 
    - name: Add back to load balancer pool
      local_action: ansible.builtin.command /usr/bin/add_back_to_pool {{ inventory_hostname }}
cs
> Ansible 컨트롤러 머신에 권한을 위임할 경우 delegate_to 키워드 대신 local_action을 활용할 수도 있음.

1
2
3
4
5
6
7
8
9
10
11
---
# ...
 
  tasks:
    - name: Send summary mail
      local_action:
        module: community.general.mail
        subject: "Summary Mail"
        to: "{{ mail_recipient }}"
        body: "{{ mail_body }}"
      run_once: True
cs
>local_action 모듈과 mail 모듈을 활용하여 로컬 서버에서 메일을 발송하는 예시 코드


3. Local Playbook

SSH를 통해 연결하는 대신 원격 호스트에서 로컬로 플레이 북을 사용하는 것이 유용 할 수도 있다.

1
ansible-playbook playbook.yml --connection=local
cs
> 플레이북을 로컬로 실행하려면 플레이북 내에서 hosts: 127.0.0.1 설정 후 위와 같이 connection 옵션을 활용할 수 있음.

1
2
3
---
- hosts: 127.0.0.1
  connection: local
cs
>또는 위와 같이 플레이북 내에서 로컬 연결 설정 가능.

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

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

접속자집계

오늘
95
어제
265
최대
680
전체
43,583
Copyright © www.linuxdata.org All rights reserved.