微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何确认使用Ansible安装了python软件包

我正在编写一个ansible剧本,我首先要安装pew,然后过渡到该pew环境中以安装其他一些python库.

所以,我的剧本看起来像这样…

tasks:

# task 1
- name: install pew if necessary
  command: pip install pew

# task 2
- name: create new pew environment if necessary
  command: pew new devpi-server

# task 3
- name: transition to pew environment
  command: pew workon devpi-server

# task 4
- name: install devpi-server
  command: pip install devpi-server

# task 5
- name: run devpi server
  command: devpi-server ## varIoUs args

本着保持我的剧本无所不能的精神,我只想在必要时执行所有这些任务.

因此,我只想安装尚未安装的pew,如果还不存在则只想创建一个新的pew环境,如果我们还没有安装pew则只想在pew环境上工作…等等. ..

有人对如何做到这一点有好的建议吗?我对ansible条件语句有些熟悉,但是仅当它类似于“是否下载文件”之类的条件时

我还不需要确定是否已安装程序,是否加载了虚拟环境等.

解决方法:

您可以在Ansible中使用Pip module来确保已安装某些软件包.

对于您的条件,我将参考:How to make Ansible execute a shell script if a package is not installedhttp://docs.ansible.com/ansible/playbooks_conditionals.html#register-variables-这些应该使您走上正确的道路.

因此,您的剧本看起来像:

- pip: name=pew

- name: Check if pew env exists
  command: pew command
  register: pew_env_check

- name: Execute script if pew environment doesn't exist
  command: somescript
  when: pew_env_check.stdout.find('no packages found') != -1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐