16
上的run_once配置我正在使用Ansible,我只想運行一次任務。我按照有關如何配置文件和run a task only onceansible忽略任務
- name: apt update
shell: apt-get update
run_once: true
但是當我運行Ansible,它始終運行任務。我怎樣才能只運行一次我的任務。
上的run_once配置我正在使用Ansible,我只想運行一次任務。我按照有關如何配置文件和run a task only onceansible忽略任務
- name: apt update
shell: apt-get update
run_once: true
但是當我運行Ansible,它始終運行任務。我怎樣才能只運行一次我的任務。
run_once選項將在您每次運行Playbook /任務時運行,但在特定運行期間只運行一次。所以每次運行播放時,它都會運行,但只能在列表中的第一個主機上運行。如果您正在尋找一種只運行一次命令的方法,那麼您需要使用created參數。使用你的例子,這可以通過使用以下內容來實現 -
- 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 2014-10-16 22:48:56