每次我运行一个剧本,ansible会安装一遍又一遍的包,甚至认为它已经安装,所以它是如何工作的呢?
ansible-playbook -i hosts site.yml GATHERING FACTS *************************************************************** ok: [192.168.0.2] TASK: [Install via apt] *************************************** changed: [192.168.0.2] => (item=build-essential,python-dev,python-software-properties,python-setuptools)
我的食谱(任务):
name: Install via apt action: apt pkg=$item with_items: - build-essential - python-dev - python-software-properties
我不能用这个剧本重现你的错误:
- hosts: 10.0.0.2 sudo: yes tasks: - name: Install via apt action: apt pkg=$item with_items: - build-essential - python-dev - python-software-properties
正如所料,连续执行的剧本是幂等的 :
$ ansible-playbook pkg.playbook -K sudo password: PLAY [10.0.0.2] ********************* GATHERING FACTS ********************* ok: [10.0.0.2] TASK: [Install via apt] ********************* ok: [10.0.0.2] => (item=build-essential,python-dev,python-software-properties) PLAY RECAP ********************* 10.0.0.2 : ok=2 changed=0 unreachable=0 failed=0