Ответ 1
Необходимая переменная - inventory_hostname
.
- name: Install this only for local dev machine
pip: name=pyramid
when: inventory_hostname == "local"
Это несколько скрыто в документации внизу этого раздела.
Я настраиваю игру Ansible для создания пары серверов. Есть несколько задач, которые я хочу выполнить только в том случае, если текущий хост является моим локальным узлом dev, который называется "local" в моем файле hosts. Как я могу это сделать? Я не могу найти его нигде в документации.
Я пробовал этот оператор when, но он терпит неудачу, потому что ansible_hostname
разрешает имя хоста, сгенерированное при создании машины, а не тот, который вы определяете в своем файле hosts.
- name: Install this only for local dev machine
pip: name=pyramid
when: ansible_hostname == "local"
Необходимая переменная - inventory_hostname
.
- name: Install this only for local dev machine
pip: name=pyramid
when: inventory_hostname == "local"
Это несколько скрыто в документации внизу этого раздела.
Вы можете ограничить область действия playbook, изменив заголовок hosts в его пьесах, не полагаясь на свой специальный ярлык host 'local в вашем инвентаре. Локальный хост не нуждается в специальной строке в инвентаризации.
- name: run on all except localhost
hosts: all:!localhost
Это альтернатива:
- name: Install this only for local dev machine
pip: name = пирамида