나는 Ansible을 사용하고 있으며 한 번만 작업을 실행하려고합니다. 나는 구성하는 방법에 대한 문서 및 run a task only once해당 없음 작업의 run_once 구성을 무시합니다.
- name: apt update
shell: apt-get update
run_once: true
을 따라하지만 Ansible을 실행할 때, 항상이 작업을 실행합니다. 내 작업을 한 번만 실행하려면 어떻게해야합니까?
나는 Ansible을 사용하고 있으며 한 번만 작업을 실행하려고합니다. 나는 구성하는 방법에 대한 문서 및 run a task only once해당 없음 작업의 run_once 구성을 무시합니다.
- name: apt update
shell: apt-get update
run_once: true
을 따라하지만 Ansible을 실행할 때, 항상이 작업을 실행합니다. 내 작업을 한 번만 실행하려면 어떻게해야합니까?
run_once 옵션은 게임 플레이/작업이 실행될 때마다 실행되지만 특정 실행 중에 만 실행됩니다. 따라서 연극을 실행할 때마다 목록에있는 첫 번째 호스트에서만 재생이 실행됩니다. 한 번만 명령을 실행하는 방법을 찾고있는 경우에는 creates 인수를 사용해야합니다. 예제를 사용하면 다음을 사용하여이 작업을 수행 할 수 있습니다. -
- name: apt update
shell: apt-get update && touch /root/.aptupdated
args:
creates: /root/.aptupdated
이 경우 /root/.aptupdated 파일이 만들어집니다. 작업은 현재 존재하는지 확인하고 실행하면 실행되지 않습니다.
실행하려는 작업이 apt-get 업데이트 인 경우 관련 apt 모듈을 사용할 수 있습니다. 그러면 다음과 같이 할 수 있습니다. -
- name: apt update
apt: update_cache=yes cache_valid_time=86400
이제 캐시가 하루보다 오래된 경우에만 실행됩니다.
예 - 'apt'의 경우 apt 모듈을 사용하십시오. 'shell'과'command'는 훌륭하지만 사용상의 한계가 훨씬 더 커야합니다. – tedder42