Ansible清单文件是否可以具有属于不同操作系统的主机?

时间:2018-11-30 10:13:38

标签: ansible ansible-inventory

Ansible清单文件是否可以具有属于不同操作系统的主机?

让我们说,我们想在多台机器(一组机器)上部署Java Web应用程序,其中每台机器的操作系统都不同于其余机器。我们可以写一本可以在每台机器上设置Java Web应用程序的剧本吗?

方法是否如下? 1.在剧本中,检查操作系统类型(如果条件),然后在每个if块中,相应地执行安装步骤(应用程序设置步骤)。如果有任何常见的安装步骤,则将那些任务放在OS类型检查条件之外(如果有)。

1 个答案:

答案 0 :(得分:1)

是的,您可以在清单中混合使用OS实例。 您可以通过为每个任务添加“何时”条件来处理剧本中的部署,例如:

- name: "Install the Python bindings for SELinux, for Ansible."
  yum: name=libselinux-python state=present
  when: ansible_os_family == "RedHat"

或者在您角色的task文件夹中,为每个操作系统创建不同的文件,并且在主字段中,您可以使用类似以下内容的文件:

- include: Debian.yml
  when: ansible_os_family == "Debian"

- include: RedHat.yml
  when: ansible_os_family == "RedHat"

- include: Windows.yml
  when: ansible_os_family == "Windows"