【问题标题】:Run ansible commands in mixed environment在混合环境中运行 ansible 命令
【发布时间】:2019-08-02 14:15:58
【问题描述】:

我想从 localhost 运行 ansible 并且对于一个命令我想在不同的主机上执行?如何在两台不同的机器上运行单个 ansible 角色。

我的剧本看起来像

hosts: localhost
gather_facts: yes
  become: yes
  roles:
  - some_role

role/some_role playbook 包含一个需要在 k8s 服务器的主节点上运行的命令。我们如何在 playbook 中运行它?

简而言之我不想在服务器列表上运行,我想在一台服务器上运行一组命令并在另一台服务器上运行其他命令

【问题讨论】:

    标签: ansible


    【解决方案1】:

    你可以在角色中使用delegate_to

    示例(roles/some_role/tasks/main.yml):

    ---
    - shell: hostnamectl
    - shell: hostnamectl
      delegate_to: otherhost
    

    对于您指定的剧本 - 如果 some_role 任务将包含上述内容,则第一个任务将在 localhost 上运行,第二个任务将在 otherhost 上运行(otherhost 也必须在您的库存中)

    【讨论】:

      【解决方案2】:

      您可以尝试如下:
      剧本:

      ---
      - hosts: localhost
        gather_facts: yes
        become: yes
        roles:
        - some_role
      - hosts: serverA
        gather_facts: yes
        become: yes
        roles:
        - some_role
      

      【讨论】:

      • 我不想在服务器列表上运行,我想在一台服务器上运行一组命令,在另一台服务器上运行其他命令。
      • 然后可以运行两次。更新了答案。
      • 对不起,这不是我要找的
      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      相关资源
      最近更新 更多