Ansible playbook中未考虑软件包安装
我在使用ansible自动化安装时遇到了一些问题 我使用这个角色()在我的ubuntu 16.04服务器上安装elasticsearch 如文档中所述,该角色取决于包pythonjmespath 角色本身不安装包,所以我尝试在执行角色之前安装它Ansible playbook中未考虑软件包安装,ansible,ubuntu-16.04,Ansible,Ubuntu 16.04,我在使用ansible自动化安装时遇到了一些问题 我使用这个角色()在我的ubuntu 16.04服务器上安装elasticsearch 如文档中所述,该角色取决于包pythonjmespath 角色本身不安装包,所以我尝试在执行角色之前安装它 - hosts: elasticsearch_master_servers become: yes tasks: - name: preinstall jmespath command: "apt-get install python
- hosts: elasticsearch_master_servers
become: yes
tasks:
- name: preinstall jmespath
command: "apt-get install python-jmespath"
- name: Run the equivalent of "apt-get update" as a separate step
apt:
update_cache: yes
- hosts: elasticsearch_master_servers
become: yes
roles:
- role: elastic.elasticsearch
vars:
...
在运行playbook时,我希望在执行角色之前安装PythonJMesPath包,但是角色执行失败
You need to install \"jmespath\" prior to running json_query filter"
当我检查是否使用dpkg-s python jmespath手动安装了该包时,我可以看到该包已正确安装
第二次运行playbook(已经安装了软件包)不会失败
我是否错过了ansible配置,该配置在playbook运行期间更新已安装软件包的列表
我总的来说做错了什么吗
提前感谢FWIW。可以在第一步中标记安装任务并安装软件包。比如说
-名称:安装软件包
包裹:
名称:“{item.name}”
状态:{{item.state}默认值('present')}
国家:现在
循环:“{{packages\u needed\u by\u this\u role}}”
标签:管理软件包
首先安装软件包
shell>ansible\u playbook my-playbook.yml-t管理\u包
然后运行剧本
shell>ansible_playbook my-playbook.yml
注释
标记:[manage_packages,never]
未明确选择时,将跳过package
任务。这将加快剧本的速度