【问题标题】:How to run plays on hosts outside of the Ansible inventory?如何在 Ansible 清单之外的主机上运行播放?
【发布时间】:2017-01-25 16:07:17
【问题描述】:

我们有这 3 个 ansible-playbook 和 Jenkins 工作:

  • web/deploy_app
  • app/deploy_app
  • db/deploy_app

每个 playbook 仅在 2 个节点上运行,web-playbook 的清单只有 2 个主机,web01 和 web02,app-playbook 的清单只有 app01/app02。

现在我们要构建“无停机部署”,这意味着在部署 db01 之前必须关闭 app01 上的服务。

当 app01 甚至不在 db01/deploy_app playbook 的 Ansible 清单中时,我如何在 Ansible 中运行 app01?

【问题讨论】:

    标签: jenkins ansible ansible-inventory


    【解决方案1】:

    当 app01 甚至不在 db01/deploy_app playbook 的 Ansible 清单中时,如何在 Ansible 中运行 app01?

    为什么你有多个库存?您应该能够将所有库存合并到一个单独的库存文件中,类似于以下内容:

    [databases]
    db01
    db02
    
    [webservers]
    web01
    web02
    
    [appservers]
    app01
    app02
    

    那么你只需在你的剧本中指定多个剧本:

    - hosts: app01
      tasks: 
        - name: Some task...
    
    - hosts: webservers
      tasks:
        - name: Some other task...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多