我正在使用可以部署到服务器。
apt阶段(这是Ubuntu)需要很长时间才能运行,即使已经安装了正确的版本(我猜它只是运行,看到没有什么需要安装)
示例命令:
- name: set up apt packages action: apt pkg=nginx=1.4.6-1ubuntu3.3 state=present update_cache=yes
(我有相当多的这些,所以需要相当一段时间)
有没有办法可以“找出”pkg已经安装并运行/跳过这个命令更快?
如果你设置update_cache=yes Ansible将在每次运行时运行apt-get update 。
Ansible文档
在操作之前运行apt-get update的等价物。 可以作为软件包安装的一部分运行,也可以作为单独的步骤运行。
通过删除update_cache=yes该任务应该运行得更快,因为Ansible将不需要等待apt更新其存储库。
另一种select是使用stat模块注册一些由包创build的文件或path。 像这样的东西:
- stat: path=/etc/nginx/nginx.conf register: st - name: set up apt packages action: apt pkg=nginx=1.4.6-1ubuntu3.3 state=present update_cache=yes when: not st.stat.exists
有关更多示例,请参阅Ansible文档 。 但我build议只删除update_cache=yes参数。