Spec-Zone.ru › Ansible

Методы и детали подключения

В этом разделе показано, как расширить и уточнить методы подключения, которые Ansible использует для вашего инвентаря.

ControlPersist и paramiko

По умолчанию Ansible использует родной OpenSSH, потому что он поддерживает ControlPersist (функцию производительности), Kerberos и параметры в ~/.ssh/config , такие как настройка Jump Host. Если ваш контрольный узел использует более старую версию OpenSSH, которая не поддерживает ControlPersist, Ansible переключится на Python-реализацию OpenSSH под названием «paramiko».

Установка удаленного пользователя

По умолчанию Ansible подключается ко всем удаленным устройствам с именем пользователя, которое вы используете на контрольном узле. Если этого имени пользователя нет на удаленном устройстве, вы можете установить другое имя пользователя для подключения. Если вам нужно выполнить некоторые задачи от другого пользователя, ознакомьтесь со статьей Понимание повышения привилегий: become. Вы можете установить пользователя подключения в плейбуке:

---
- name: update webservers
  hosts: webservers
  remote_user: admin

  tasks:
  - name: thing to do first in this playbook
  . . .

в качестве переменной хоста в инвентаре:

other1.example.com     ansible_connection=ssh        ansible_user=myuser
other2.example.com     ansible_connection=ssh        ansible_user=myotheruser

или как переменную группы в инвентаре:

cloud:
  hosts:
    cloud1: my_backup.cloud.com
    cloud2: my_backup2.cloud.com
  vars:
    ansible_user: admin

См. также

ssh_connection

Подробная информация о ключевом слове remote_user и переменной ansible_user.

Управление поведением Ansible: правила приоритета

Подробная информация о правилах приоритета Ansible.

Настройка ключей SSH

По умолчанию Ansible предполагает, что вы используете ключи SSH для подключения к удаленным машинам. Использование ключей SSH рекомендуется, но вы можете использовать аутентификацию по паролю при необходимости с параметром --ask-pass. Если вам нужно указать пароль для повышения привилегий (sudo, pbrun и т. д.), используйте --ask-become-pass.

Примечание

Ansible не предоставляет канал для связи между пользователем и процессом ssh для ручного ввода пароля для расшифровки ключа ssh при использовании плагина подключения ssh (который является стандартным). Сильно рекомендуется использование ssh-agent.

Для настройки SSH-агента, чтобы избежать повторного ввода паролей, вы можете сделать следующее:

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa

В зависимости от вашей настройки, вы можете использовать командную опцию Ansible --private-key для указания файла pem вместо этого. Также можно добавить файл приватного ключа:

$ ssh-agent bash
$ ssh-add ~/.ssh/keypair.pem

Еще один способ добавить файлы приватных ключей без использования ssh-agent – это использование ansible_ssh_private_key_file в файле инвентаризации, как описано здесь: Как создать свой инвентарь.

Работа с localhost

Вы можете запускать команды на контрольном узле, используя «localhost» или «127.0.0.1» в качестве имени сервера:

$ ansible localhost -m ping -e 'ansible_python_interpreter="/usr/bin/env python"'

Вы можете явно указать localhost, добавив это в ваш файл инвентаризации:

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

Управление проверкой ключа хоста

Ansible по умолчанию включает проверку ключей хоста. Проверка ключей хоста защищает от подделки серверов и атак «человек посередине», но требует некоторых мер по техническому обслуживанию.

Если хост переустановлен и имеет другой ключ в «known_hosts», это приведет к сообщению об ошибке, пока это не будет исправлено. Если новый хост отсутствует в «known_hosts», ваш контрольный узел может запросить подтверждение ключа, что приводит к интерактивному опыту при использовании Ansible, например, из cron. Возможно, вам этого не нужно.

Если вы понимаете последствия и хотите отключить это поведение, вы можете сделать это, отредактировав /etc/ansible/ansible.cfg или ~/.ansible.cfg.

[defaults]
host_key_checking = False

В качестве альтернативы это можно задать переменной среды ANSIBLE_HOST_KEY_CHECKING:

$ export ANSIBLE_HOST_KEY_CHECKING=False

Также обратите внимание, что проверка ключа хоста в режиме paramiko относительно медленная, поэтому рекомендуется переключиться на «ssh» при использовании этой функции.

Другие методы подключения

Ansible может использовать различные методы подключения, помимо SSH. Вы можете выбрать любой плагин подключения, включая локальное управление и управление контейнерами chroot, lxc и jail. Режим «ansible-pull» также может инвертировать систему и заставить системы «звонить домой» с запланированными проверками Git, чтобы получать директивы конфигурации из централизованного хранилища.

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/inventory_guide/connection_details.html

Spec-Zone.ru

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