Ansible의 Run\u는 무엇입니까?
2022-06-04 last update
5 minutes reading AnsibleAnsible run_once 매개 변수는 분실된 순환을 돌고 일괄 처리된 첫 번째 호스트에서 특정 작업을 강제로 수행합니다.그리고 그 결과를 시나리오의 다른 활성 호스트에 적용할 수 있다.
이 가이드에서는 Ansible run_once 모듈을 사용하여 일련의 작업을 수행하는 방법에 대해 설명합니다.
Ansible run_once 매개변수는 첫 번째 호스트에서 수행할 특정 작업에 적용됩니다.
다음 예시 시나리오는 시나리오에서 run_once 매개 변수를 설정하는 방법을 보여 줍니다.
run_once 매개 변수의 여러 가지 용례를 보여 줍니다.
첫 번째 예시에서 우리는 간단한 시나리오를 실현하여 URL에서 zip 파일을 다운로드할 것이다.호스트마다 파일을 다시 다운로드하는 것은 의미가 없기 때문에run_once 매개 변수를 사용할 수 있습니다.
다음 시나리오를 예로 들어 보겠습니다.
다음 예시playbook은git 저장소에서 압축 파일을 만듭니다.
run_once 매개 변수를 사용하여 백업을 만들고 RSYNC 프로토콜을 사용하여 데이터베이스를 원격 호스트에 동기화할 수도 있습니다.다음 시나리오를 고려하십시오.
예시 플레이북은 run_once 매개 변수를 사용하여 모든 호스트에 메일을 보냅니다.
이 안내서는 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 매개 변수를 사용하여 단일 호스트에서 작업을 수행하고 결과를 다른 호스트에 적용하는 방법을 설명합니다.