gpt4 book ai didi

ansible - 运行 ansible playbook 时如何缩小范围?

转载 作者:行者123 更新时间:2023-12-03 22:53:06 27 4
gpt4 key购买 nike

我有一个需要很多时间来执行的剧本,部分原因是它必须在很多节点上运行(我正在浪费时间检查所有节点的状态),我需要做一些在它中间的某个地方发生变化。

我可以缩小剧本范围的最佳方式是什么?我是否考虑过隔离所需的更改和/或仅在单个节点上运行修改后的部分?

最佳答案

这是什么tags是给。

您可以使用任何标签组合标记任何任务,然后指定要运行的标签组合(或者,使用 --skip-tags 跳过),然后只运行那些指定的任务。

因此,示例剧本可能如下所示:

- hosts: all
tasks:
- name: copy foo
copy:
src: path/to/foo
dest: path/to/foo
tags:
- copy_foo
- copy
- foo

- name: copy bar
copy:
src: path/to/bar
dest: path/to/bar
tags:
- copy_bar
- copy
- bar

- name: restart foo
service:
name: foo
state: restarted
tags:
- restart_foo
- restart
- foo

- name: restart bar
service:
name: bar
state: restarted
tags:
- restart_bar
- restart
- bar

然后我可以只用 ansible-playbook -i path/to/hosts playbook.yml --tags "restart_foo" 运行“重启 foo”任务.或者,我可以运行所有与 bar 相关的标签,并使用以下任意组合重新启动 foo(但不复制 foo):
  • ansible-playbook -i path/to/hosts playbook.yml --tags "bar,restart_foo"
  • ansible-playbook -i path/to/hosts playbook.yml --tags "restart,copy_bar"
  • ansible-playbook -i path/to/hosts playbook.yml --skip-tags "copy_foo"

  • 如果您想改为(或作为组合)限制游戏运行的节点,那么您可以使用 --limit 来做到这一点。选项。因此,如果您想将播放限制在网络服务器上,那么您可以使用 ansible-playbook -i path/to/hosts playbook.yml --limit webservers 运行它。甚至使用 ansible-playbook -i path/to/hosts playbook.yml --limit web.example.org 将其限制为单个特定主机

    关于ansible - 运行 ansible playbook 时如何缩小范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34883525/

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