Ansible 确定操作系统

for*_*ect 18 ubuntu ansible

作为我的部署脚本的一部分,我想检查我要部署到哪个操作系统。我使用过ansible localhost -m setup并且正如他们在文档中所说的那样输出很多。有没有办法可以访问我正在使用的 ubuntu 发行版?理想情况下,我想找到盒子是运行 Trusty 还是 Precise

Del*_*tik 29

ansible_distribution_release

事实被称为ansible_distribution_release。如果您运行的是 Ubuntu 14.04,则事实将显示为“ trusty ”。

另外两个示例值:对于 Ubuntu 16.04ansible_distribution_release是“ xenial ”,对于 Ubuntu 12.04 是“精确”。

ansible_distribution_version

你也可以看看事实ansible_distribution_version。对于 Ubuntu 14.04,您会看到“ 14.04 ”。

另外两个示例值:对于 Ubuntu 16.04ansible_distribution_version是“ 16.04 ”,对于 Ubuntu 12.04 是“ 12.04 ”。

这是一个示例任务,您可以将其放入剧本中以build-essential仅在 Ubuntu 14.04 上安装软件包:

- name: Install build-essential for Ubuntu 14.04 only
  apt: name=build-essential state=present
  when: ansible_distribution_version == "14.04"
Run Code Online (Sandbox Code Playgroud)