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


166

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

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

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

Ответы:



2

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

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

hosts: !localhostвероятно, тоже работает, как, например, --limit '!dev'работает
Timdiels

0

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

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.