【问题标题】:Ansible: using group vars in tasksAnsible:在任务中使用组变量
【发布时间】:2020-02-25 15:52:18
【问题描述】:

在 Ansible 中,我想根据主机触发选定的任务。

我的库存:

[appserver]
ip1
ip2

[webserver]
ip3
ip4

而我的 main.yml 文件会是这样的

- name : Playbook
  hosts: all
  user: username
  become: yes
  gather_facts: True

  tasks:

    - name: Task 1 
      replace:
        path: "somepath"
        regexp: "{{ oldvalue }}"
        replace: "{{ newvalue }}"
        backup: yes
    - name: Task 2
      replace:
        path: "somepath"
        regexp: "{{ oldvalue }}"
        replace: "{{ newvalue }}"
        backup: yes

如何在 appserver 组上运行这个特定的 task1,在 webserver 组上运行 task2。有没有最好的方法可以在不使用 ansible 标签的情况下实现这一点?

【问题讨论】:

  • 在您的剧本中添加第二个剧本。将第二个任务移动到第二个播放,目标播放1到hosts: appserver和播放2到hosts: webserver

标签: ansible ansible-inventory ansible-role


【解决方案1】:
- hosts: appserver
  user: username
  become: yes
  gather_facts: True

  tasks:
    - name: Task 1 
      replace:
        path: "somepath"
        regexp: "{{ oldvalue }}"
        replace: "{{ newvalue }}"
        backup: yes

- hosts: webserver
  user: username
  become: yes
  gather_facts: True

  tasks:
    - name: Task 2
      replace:
        path: "somepath"
        regexp: "{{ oldvalue }}"
        replace: "{{ newvalue }}"
        backup: yes

发布后,我看到了@Zeitounator 的评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多