【问题标题】:Check python module version with ansible使用 ansible 检查 python 模块版本
【发布时间】:2017-01-31 12:38:01
【问题描述】:

有没有办法创建 ansible playbook 来找出目标主机上当前安装的 python 模块版本?我不想安装指定版本,我只想知道它是否存在(例如回复module installed: version 12.03module not installed

我发现使用pip ansible 模块,没有状态可以确保是否安装了某些东西,唯一的可能是安装或删除

【问题讨论】:

  • 你为什么要这样做?
  • 例如打印统计数据或检查我是否可以在这台机器上运行一些脚本。事实上,我只是想知道 ansible 是否可以实现这样的事情
  • 但这不是您管理系统的方式。决定你能做什么的不是系统。是您定义系统是什么以及您可以做什么。
  • 因此,换句话说,ansible 不是检查某物是否存在的工具,而是确保某物存在与否(通过安装或删除)。只检查是不可能的,对吧?
  • 其实我只想知道python模块是否在某些机器上可用。获取版本只是附加的东西,知道如​​何检查它很好

标签: python pip ansible ansible-playbook


【解决方案1】:

对于 POSIX 系统如何?

- name: check version of pytz
  shell: pip show pytz | grep Version | cut -d ' ' -f 2
  ignore_errors: true
  changed_when: false
  register: pytz_version

仅打印模块版本:

- debug: var=pytz_version.stdout

您还可以在其他任务中将版本用作“when”子句:

- name: Do something requiring pytz 2012d
  command: foo
  when: pytz_version.stdout | search("2012d")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 2010-10-17
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    相关资源
    最近更新 更多