Spec-Zone.ru › Ansible 2.4

Режим ускоренного доступа

Новая функция в версии 1.3.

Примечание

Режим ускоренного доступа устарел. Вместо него рекомендуется использовать SSH с включённым ControlPersist и конвейеризацией. Эта функция будет удалена в будущей версии. Предупреждения об устаревании можно отключить, установив deprecation_warnings=False в ansible.cfg.

Возможно, вам это и не нужно!

Используете ли вы Ansible 1.5 или более поздней версии? Если да, то вам, возможно, не нужен режим ускоренного доступа из-за новой функции «SSH конвейеризация», и вам следует прочитать раздел «конвейеризация» в документации.

Для пользователей Ansible 1.5 и более поздних версий режим ускоренного доступа имеет смысл только если (А) вы управляете системами с хоста Enterprise Linux 6 или более ранней версии и всё ещё используете paramiko, или (Б) не можете включить TTY с sudo, как описано в документации по конвейеризации.

Если вы можете использовать конвейеризацию, Ansible уменьшит количество файлов, передаваемых по сети, что сделает всё значительно эффективнее, а производительность будет сопоставима с режимом ускоренного доступа почти во всех случаях, возможно, за исключением очень больших файловых переводов. Благодаря меньшему количеству участвующих компонентов, конвейеризация предпочтительнее режима ускоренного доступа практически во всех случаях использования.

Режим ускоренного доступа сохраняется для поддержки контрольных машин EL6 и других ограниченных сред.

Подробности о режиме ускоренного доступа

Хотя OpenSSH с функцией ControlPersist довольно быстрый и масштабируемый, использование подключений SSH влечёт за собой некоторую небольшую накладную стоимость. Хотя многие пользователи не столкнутся с необходимостью в этом, если вы работаете на платформе, не поддерживающей ControlPersist (например, контрольная машина EL6), вы, вероятно, будете ещё больше заинтересованы в настройке параметров.

Режим ускоренного доступа предназначен для ускорения работы подключений, но всё ещё использует SSH для начального безопасного обмена ключами. Нет дополнительной инфраструктуры управления открытыми ключами, и это не требует NTP или даже DNS.

Режим ускоренного доступа может быть в 2-6 раз быстрее, чем SSH с включённым ControlPersist, и в 10 раз быстрее, чем paramiko.

Режим ускоренного доступа работает путём запуска временного демона через SSH. После запуска демона Ansible подключится к нему напрямую через сокетное соединение. Ansible защищает это общение, используя временный ключ AES, который обменивается во время подключения SSH (этот ключ разный для каждого хоста и также периодически перегенерируется).

По умолчанию Ansible будет использовать порт 5099 для ускоренного подключения, хотя это настраиваемо. После запуска демон будет принимать подключения в течение 30 минут, после чего он завершит работу и его необходимо будет перезапустить через SSH.

Для использования режима ускоренного доступа просто добавьте accelerate: true в свой план:

---

- hosts: all
  accelerate: true

  tasks:

  - name: some task
    command: echo {{ item }}
    with_items:
    - foo
    - bar
    - baz

Если вы хотите изменить порт, который Ansible будет использовать для ускоренного подключения, просто добавьте опцию accelerate_port.

---

- hosts: all
  accelerate: true
  # default port is 5099
  accelerate_port: 10000

Опцию accelerate_port также можно указать в переменной окружения ACCELERATE_PORT или в вашей конфигурации ansible.cfg:

[accelerate]
accelerate_port = 5099

Как отмечалось выше, режим ускоренного доступа также поддерживает выполнение задач через sudo, однако существуют два важных замечания:

  • Вы должны удалить requiretty из ваших параметров sudoers.
  • Запрос пароля sudo пока не поддерживается, поэтому для команд sudo требуется опция NOPASSWD.

Начиная с версии Ansible 1.6, вы также можете разрешить использование нескольких ключей для подключений от нескольких управляющих узлов Ansible. Для этого добавьте следующую опцию в вашу конфигурацию ansible.cfg:

accelerate_multi_key = yes

При включении демон откроет файл UNIX-сокет (по умолчанию $ANSIBLE_REMOTE_TEMP/.ansible-accelerate/.local.socket). Новые подключения через SSH могут использовать этот файл сокета для загрузки новых ключей в демон.

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

Spec-Zone.ru

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