Rob*_*ert 4 ansible ansible-playbook
我正在使用Ansible,我试图使幂等幂执行shell时遇到一些问题.我做的第一个是安装python-apt包,因为我需要它来使用apt模块来安装其他包.但每次我运行我的playbook时,shell任务总是运行,我想让它成为幂等的.这是我的shell任务:
- name: install pyton-apt
shell: apt-get install -y python-apt
Run Code Online (Sandbox Code Playgroud)
这是输出,始终运行上述任务:
$ ansible-playbook -i hosts site.yml
PLAY [docker] *****************************************************************
GATHERING FACTS ***************************************************************
ok: [10.0.3.240]
TASK: [docker | install pyton-apt] ********************************************
changed: [10.0.3.240]
TASK: [docker | install unzip] ************************************************
ok: [10.0.3.240]
PLAY RECAP ********************************************************************
10.0.3.240 : ok=3 changed=1 unreachable=0 failed=0
Run Code Online (Sandbox Code Playgroud)
Woo*_*ham 11
您应该使用ansible apt模块进行安装python-apt,这将是开箱即用的幂等:http://docs.ansible.com/apt_module.html
例如
- name: install python-apt
apt: name=python-apt state=present
Run Code Online (Sandbox Code Playgroud)
(注意使用apt模块应该自动安装python-apt在远程主机上,所以我不确定为什么你需要手动安装它,请参阅https://github.com/ansible/ansible/issues/4079)
编辑:如果由于某种原因你不能使用内置apt模块安装python apt,shell模块提供creates参数来帮助使其成为幂等的.
- name: install python-apt
shell: apt-get install -y python-apt >> /home/x/output.log creates=/home/x/output.log
Run Code Online (Sandbox Code Playgroud)
这意味着shell模块如果/home/x/output.log已经存在则不会运行.
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |