Spec-Zone.ru › Ansible 2.9

Неявный «localhost»

Когда вы пытаетесь обратиться к localhost и не имеете его в инвентаре, Ansible создаст для вас неявный:

- hosts: all
  tasks:
    - name: check that i have log file for all hosts on my local machine
      stat: path=/var/log/hosts/{{inventory_hostname}}.log
      delegate_to: localhost

В таких случаях (или local_action) когда Ansible нужно связаться с «localhost», но вы не указали его, мы создаём его для вас. Этот хост определяется с конкретными переменными соединения, эквивалентными этому в инвентаре:

...

hosts:
  localhost:
   vars:
     ansible_connection: local
     ansible_python_interpreter: "{{ansible_playbook_python}}"

Это гарантирует, что для выполнения задач локально будут использоваться правильное соединение и Python. Вы можете переопределить встроенную неявную версию, создав запись хоста localhost в вашем инвентаре. В этот момент все неявные поведения игнорируются; localhost в инвентаре обрабатывается как любой другой хост. Применяются групповые и хост-переменные, включая переменные соединения, которые включают настройку ansible_python_interpreter. Это также повлияет на delegate_to: localhost и local_action, последнее из которых является псевдонимом первого.

Примечание

  • Этот хост не может быть целевым для любой группы, однако он будет использовать переменные из host_vars и из группы «all».
  • Неявный localhost не появляется в волшебной переменной hostvars , если это не требуется, например, "{{ hostvars['localhost'] }}".
  • Магические переменные inventory_file и inventory_dir недоступны для неявного localhost, так как они зависят от каждого хоста в инвентаре.
  • Этот неявный хост также активируется при использовании 127.0.0.1 или ::1 , так как они представляют IPv4 и IPv6 представления «localhost».
  • Несмотря на то, что существует множество способов его создания, всегда будет только ОДИН неявный localhost, использующий имя, которое было использовано для его создания в первую очередь.
  • Наличие connection: local НЕ вызывает неявный localhost, вы просто изменяете соединение для inventory_hostname.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/inventory/implicit_localhost.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API