Запустите задание, только если хост не принадлежит группе

StackOverflow https://stackoverflow.com//questions/21008083

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хотел бы, чтобы иметь возможность запускать некоторую задачу, только если хост текущего Playbook не принадлежит к определенной группе.В полу псевдо-коде:

- name: my command
  command: echo stuff
  when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
.

Как мне это сделать?

Это было полезно?

Решение

Вот еще один способ сделать это:

- name: my command
  command: echo stuff
  when: "'groupname' not in group_names"
.

group_names - это волшебная переменная, как документирована здесь: http://docs.ansable.com/playbooks_variables.html#magic-variablables-and-how-tom-ccess-information-about-other-hosts :

group_names - это список (массив) всех групп, в котором находится текущий хост.

Другие советы

Вы можете установить переменную управления в файлах vars, расположенных в group_vars/ или непосредственно в файле хостов, как это:

[vagrant:vars]
test_var=true

[location-1]
192.168.33.10 hostname=apollo

[location-2]
192.168.33.20 hostname=zeus

[vagrant:children]
location-1
location-2
.

и запускать такие задачи:

- name: "test"
  command: "echo {{test_var}}"
  when: test_var is defined and test_var
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top