【问题标题】:How to run the ansible-playbook command in background?如何在后台运行 ansible-playbook 命令?
【发布时间】:2015-12-29 09:06:47
【问题描述】:

我可以使用--async 参数在后台运行salt state.sls 命令。现在我想将 sls 更改为 ansible playbooks,但我找不到使 ansible-playbook 命令在后台运行的参数。

有人知道怎么做吗?

【问题讨论】:

    标签: ansible salt-stack


    【解决方案1】:

    您可以利用 Linux shell 将任务置于后台。运行 playbook 命令,然后按 ctrl+z 将其设置为背景。键入 fg 将其恢复。或者你可以找到ansible-playbook ... & 在后台运行它。与>> 配对以重定向标准输出。

    【讨论】:

    • 是的。现在我使用 nohup 来实现我的目标,如下所示: nohup ansible-playbook main.yml >/dev/null 2>&1 & 但这不是我想要的。
    • 您还想从后台进程中获得哪些其他属性(例如,将标准输出输出到文件、轻松带到前台、暂停)?
    • 其实我想用ansible-playbook写一个简单的自动部署程序,因为ansible Tower太难用了... ansible-playbook命令结果可以通过ansible回调插件保存,所以我不需要标准输出 ...
    • 我对 saltstack 不太熟悉,但试图了解您的问题。所以你想一直在后台运行 ansible-playbook 并且它一直在寻找服务某种请求,当任何请求到来时,ansible-playbook 会针对它运行。这是你想要达到的目标吗?
    • @Random_Automation 是的,这就是我想做的,它是通过 'nohup ... &' 和 ansible 回调插件实现的
    【解决方案2】:

    我总是在 screen 中运行一个很长的 ansible-playbook

    如果你不想使用屏幕,你可以在命令前加上nohup,然后disown它:

    $ nohup ansible-playbook .... & 
    $ disown
    

    disown 命令确保该命令不会将 shell 作为父进程。

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      相关资源
      最近更新 更多