gpt4 book ai didi

ubuntu - 运行特定的剧本

转载 作者:行者123 更新时间:2023-12-04 18:43:07 24 4
gpt4 key购买 nike

我有一个巨大的剧本,其中调用了多个剧本。它看起来像这样:

cat global_playbook.yml
---
- hosts: server150
tasks:
- include_tasks: folder/playbook1.yml
vars:
...

- include_tasks: folder/playbook2.yml # I'm trying to start from here.
vars:
...
tags: test

- include_tasks: folder/playbook3.yml
vars:
...

... and so on
有时,当我运行它时,它会失败。而且我似乎无法从特定位置开始。
我尝试从 folder/playbook2.yml 开始.我试着做:
ansible-playbook global_playbook.yml -start-at-task="folder/playbook2.yml"
ansible-playbook global_playbook.yml -start-at-task="**task within playbook2**"
ansible-playbook global_playbook.yml --tags="test"
但没有任何工作。
  • 我无法直接运行 playbook,因为如本线程开头的示例所示,变量位于全局 playbook 中。当我在每个剧本中都有变量时,它就行不通了。他们也没有定义主机。
  • 我知道我可以使用 --step所以它会问我要运行哪个任务,但它为此运行了太多的剧本。更不用说,因为我使用的是 include_tasks ,只有在我同意之后才告诉我任务是什么!

  • 当使用调用其他 playbook 的 playbook 时,是否可以从特定点开始?还是从失败的地方继续?
    提前谢谢!

    最佳答案

    这完全取决于您为什么要使用多个剧本。现在,我建议您考虑使用 roles 的可能性。反而。但是您可以将变量存储在文件中并使用 -e 将它们传递给 Ansible像这样的选项:

    ansible-playbook -i hosts --limit server150 -e @my-var-file.yml folder/playbook2.yml
    另一种选择是使用 host_vars目录,因此变量属于该特定主机。
    在我看来,当我们在同一个剧本中拥有松散耦合的任务时,标签是一种方便的资源。例如:我们有一个实现 MySQL 数据库和 SMB/CIFS 服务器来存储和共享其备份文件的剧本。因此,您只能运行这些剧本部分中的每一个。

    关于ubuntu - 运行特定的剧本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67059774/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com