Подтвердить что ты не робот

Как получить имя хоста текущего компьютера, как определено в файле Ansible hosts?

Я настраиваю игру Ansible для создания пары серверов. Есть несколько задач, которые я хочу выполнить только в том случае, если текущий хост является моим локальным узлом dev, который называется "local" в моем файле hosts. Как я могу это сделать? Я не могу найти его нигде в документации.

Я пробовал этот оператор when, но он терпит неудачу, потому что ansible_hostname разрешает имя хоста, сгенерированное при создании машины, а не тот, который вы определяете в своем файле hosts.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"
4b9b3361

Ответ 1

Необходимая переменная - inventory_hostname.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: inventory_hostname == "local"

Это несколько скрыто в документации внизу этого раздела.

Ответ 2

Вы можете ограничить область действия playbook, изменив заголовок hosts в его пьесах, не полагаясь на свой специальный ярлык host 'local в вашем инвентаре. Локальный хост не нуждается в специальной строке в инвентаризации.

- name: run on all except localhost
  hosts: all:!localhost

Ответ 3

Это альтернатива:

- name: Install this only for local dev machine

pip: name = пирамида