Ansible의 Run\u는 무엇입니까?

Ansible의 Run\u는 무엇입니까?

2022-06-04 last update

5 minutes reading Ansible
Ansible run_once 매개 변수는 분실된 순환을 돌고 일괄 처리된 첫 번째 호스트에서 특정 작업을 강제로 수행합니다.그리고 그 결과를 시나리오의 다른 활성 호스트에 적용할 수 있다.
이 가이드에서는 Ansible run_once 모듈을 사용하여 일련의 작업을 수행하는 방법에 대해 설명합니다.

기본 용도


Ansible run_once 매개변수는 첫 번째 호스트에서 수행할 특정 작업에 적용됩니다.
다음 예시 시나리오는 시나리오에서 run_once 매개 변수를 설정하는 방법을 보여 줍니다.
---

- hosts: all

# ...

tasks:

- name: run this command once

shell: command

run_once: true
위의 예시playbook은 run_once 작업을 실현하는 일반적인 문법을 보여 줍니다.
run_once 매개 변수의 여러 가지 용례를 보여 줍니다.

예제 1


첫 번째 예시에서 우리는 간단한 시나리오를 실현하여 URL에서 zip 파일을 다운로드할 것이다.호스트마다 파일을 다시 다운로드하는 것은 의미가 없기 때문에run_once 매개 변수를 사용할 수 있습니다.
다음 시나리오를 예로 들어 보겠습니다.
---

- hosts: all

gather_facts: yes

tasks:

- name: Download file only once

run_once: true

get_url:

url: https://file-examples-com.github.io/uploads/2017/02/zip_10MB.zip

dest: ~/zip_10MB.zip

- name: unarchive

unarchive:

src: ~/zip_10MB.zip

dest: ~/zip_10MB
위의 예시playbook은 첫 번째 단계에서 파일을 다운로드한 다음 원격 호스트에서 압축 파일을 취소합니다.

예제 2


다음 예시playbook은git 저장소에서 압축 파일을 만듭니다.
---

- hosts: all

gather_facts: yes

tasks:

- name: create archive from repo

git:

repo: https://github.com/samples/repo.git

dest: /home/user/repo

archive: /home/user/repo.zip

run_once: true

예 3


run_once 매개 변수를 사용하여 백업을 만들고 RSYNC 프로토콜을 사용하여 데이터베이스를 원격 호스트에 동기화할 수도 있습니다.다음 시나리오를 고려하십시오.
---

- hosts: all

gather_facts: yes

become: true

tasks:

- name: create a backup archive

archive:

path:

/var/log/

/custom/all

dest: /backup/system0-backup.bz2

format: bz2

remove: no

run_once: true

- name: sync backup with rsync

synchronize:

src: /backup/system0-backup.bz2

dest: rsync://{{inventory_hostname}}/backups
playbook은 로컬 호스트에 백업 압축 파일을 만들고 모든 원격 호스트에 파일을 동기화합니다.

예 4


예시 플레이북은 run_once 매개 변수를 사용하여 모든 호스트에 메일을 보냅니다.
---

- hosts: all

gather_facts: yes

become: true

tasks:

- name: create a backup archive

local_action:

module: mail

subject: "Mail from Ansible."

to: [email protected]

body: "Updated to the new Redis version."

run_once: true
playbook은 특정 사용자에게 메일을 보냅니다.

결론


이 안내서는 Ansible의 run_once 매개 변수를 사용하여 단일 호스트에서 작업을 수행하고 결과를 다른 호스트에 적용하는 방법을 설명합니다.