ansible剧本中的多个主机

时间:2020-05-06 21:09:20

标签: ansible

我需要使用ansible剧本将我的应用程序部署到2个VM。每个VM都有不同的用途,我的应用程序由几个不同的组件组成。因此,每个组件在剧本中都有其自己的任务集。库存文件如下:

[vig]

192.168.10.11

[websvr]

192.168.10.22

现在,ansible剧本只有1个用于主机声明的条目,它位于顶部,并且所有任务都针对指定的主机执行。但是我希望实现的是:

  1. 任务1至10:针对vig组执行

  2. 任务11至20:针对websvr组执行

全部在同一本剧本中,如:ansible-playbook -i deploy.yml

有可能吗?还是我必须使用角色来实现这一目标?

有人可以建议我吗? merci beaucoup :)

1 个答案:

答案 0 :(得分:4)

剧本可以有多个剧本(请参见https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html)。

剧本可以包含多个剧本。您可能有一部剧本 首先定位Web服务器,然后定位数据库服务器。对于 例如:

---
- hosts: webservers
  remote_user: root

  tasks:
  - name: ensure apache is at the latest version
    yum:
      name: httpd
      state: latest
  - name: write the apache config file
    template:
      src: /srv/httpd.j2
      dest: /etc/httpd.conf

- hosts: databases
  remote_user: root

  tasks:
  - name: ensure postgresql is at the latest version
    yum:
      name: postgresql
      state: latest
  - name: ensure that postgresql is started
    service:
      name: postgresql
      state: started