限制组从playbook源代码运行播放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制组从playbook源代码运行播放相关的知识,希望对你有一定的参考价值。

目标是限制主机组在剧本中运行。以下代码不会将组限制为组群集,有时下面的playbook也会在localhost上运行

- hosts: all:!localhost
  gather_facts: no
  tasks:
    ... 

库存文件如下:

[localhost]
127.0.0.1  ansible_connection=local
[cluster]
ip1
ip2
ip3

然而,尝试- hosts: cluster,有时仍然在localhost上运行。

可以通过cli限制组:

ansible-playbook playbooks/PLAYBOOK_NAME.yml --limit 'all:!localhost'

我的目标是限制从剧本源代码运行游戏的组。

答案
- name: Ensure dir exists
  file:
    path: example/path
    state: directory
    owner: user
    group: group
    mode: 0755
  when: inventory_hostname in groups['cluster']

以下是诀窍。它仅在您希望的组上运行任务。

when: inventory_hostname in groups['cluster']
另一答案

然后在所需的主机组上运行

    - hosts: cluster,cluster1,cluster2
      gather_facts: no
      tasks:
      ... 

或者在清单中,您可以通过以下方式对主机组进行分组:

    [cluster]
    ip1
    ip2
    ip3

    [clusters:children]
    cluster
    cluster1 

然后在群集组上运行playbook

以上是关于限制组从playbook源代码运行播放的主要内容,如果未能解决你的问题,请参考以下文章

将用户/组从主机映射到 docker 容器

动画未按照编写代码的顺序运行

如何在片段中播放视频

如何让 videoView 在片段内播放?

在片段中单击按钮播放声音(Kotlin)[重复]

具有不同长度片段的简单 mpeg dash 播放列表