Rob*_*ert 17 task idempotent ansible ansible-playbook
我正在使用Ansible,我只想运行一次任务.我按照有关如何仅配置和运行任务一次的文档
- name: apt update
shell: apt-get update
run_once: true
Run Code Online (Sandbox Code Playgroud)
但是当我运行Ansible时,它总是运行这个任务.我怎么能只运行一次我的任务.
小智 29
run_once选项将在每次Playbook/tasks运行时运行,但仅在特定运行期间运行一次.因此,每次运行游戏时,它都会运行,但只能在列表中的第一个主机上运行.如果您正在寻找一种只运行该命令的方法,一段时间,您将需要使用creates参数.使用您的示例,这可以通过使用以下方法实现 -
- name: apt update
shell: apt-get update && touch /root/.aptupdated
args:
creates: /root/.aptupdated
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将创建文件/root/.aptupdated.该任务现在将检查是否存在,如果存在,则不会运行.
在相关说明中,如果您尝试运行的任务是apt-get更新,则可能需要使用本机apt模块.然后你可以这样做 -
- name: apt update
apt: update_cache=yes cache_valid_time=86400
Run Code Online (Sandbox Code Playgroud)
现在只有在缓存超过一天时才会运行.
| 归档时间: |
|
| 查看次数: |
11346 次 |
| 最近记录: |