Spec-Zone.ru › Ansible 2.9

Ansible и BSD

Управление машинами BSD отличается от управления машинами Linux/Unix. Если у вас есть управляемые узлы, работающие под BSD, ознакомьтесь с этими темами.

  • Подключение к узлам BSD
  • Инициализация BSD
  • Настройка интерпретатора Python
  • Какие модули доступны?
  • Использование BSD в качестве управляющего узла
  • Факты BSD
  • Усилия и вклад сообщества BSD

Подключение к узлам BSD

Ansible по умолчанию подключается к управляемым узлам с помощью OpenSSH. Это работает с BSD, если вы используете SSH-ключи для аутентификации. Однако, если вы используете SSH-пароли для аутентификации, Ansible полагается на sshpass. Большинство версий sshpass плохо справляются с запросами на ввод логина BSD, поэтому при использовании SSH-паролей для подключения к машинам BSD используйте paramiko вместо OpenSSH. Вы можете сделать это глобально в файле ansible.cfg или задать это как переменную инвентаризации/группы/узла. Например:

[freebsd]
mybsdhost1 ansible_connection=paramiko

Инициализация BSD

Ansible по умолчанию работает без агентов, однако ему требуется Python на управляемых узлах. Только модуль raw будет работать без Python. Хотя этот модуль может быть использован для инициализации Ansible и установки Python на BSD (см. ниже), он очень ограничен, и для полноценного использования возможностей Ansible необходим Python.

Следующий пример устанавливает Python 2.7, который включает библиотеку json, необходимую для полной функциональности Ansible. На вашей управляющей машине вы можете выполнить следующее для большинства версий FreeBSD:

ansible -m raw -a "pkg install -y python27" mybsdhost1

Или для большинства версий OpenBSD:

ansible -m raw -a "pkg_add -z python-2.7"

После этого вы можете использовать другие модули Ansible, кроме модуля raw.

Примечание

В этом примере показано использование `pkg` для FreeBSD и `pkg_add` для OpenBSD, однако вы должны иметь возможность заменить соответствующий инструмент управления пакетами для вашей версии BSD; имя пакета также может отличаться. Обратитесь к списку пакетов или документации используемой вами версии BSD для точного имени пакета Python, который вы намерены установить.

Настройка интерпретатора Python

Чтобы поддерживать различные операционные системы и дистрибутивы Unix/Linux, Ansible не всегда может полагаться на существующую среду или переменные env для поиска правильного бинарника Python. По умолчанию модули указывают на /usr/bin/python, так как это наиболее распространенное расположение. На BSD-вариантах этот путь может отличаться, поэтому рекомендуется сообщить Ansible о расположении бинарника через переменную инвентаризации ansible_python_interpreter. Например:

[freebsd:vars]
ansible_python_interpreter=/usr/local/bin/python2.7
[openbsd:vars]
ansible_python_interpreter=/usr/local/bin/python2.7

Если вы используете дополнительные плагины помимо тех, которые поставляются с Ansible, вы можете установить аналогичные переменные для bash, perl или ruby, в зависимости от того, как написан плагин. Например:

[freebsd:vars]
ansible_python_interpreter=/usr/local/bin/python
ansible_perl_interpreter=/usr/bin/perl5

Какие модули доступны?

Большинство основных модулей Ansible написаны для комбинации машин Linux/Unix и других универсальных служб, поэтому большинство из них должны хорошо работать на BSD, за исключением тех, которые предназначены для исключительно Linux-технологий (например, LVG).

Использование BSD в качестве управляющего узла

Использование BSD в качестве управляющей машины так же просто, как установка пакета Ansible для вашей версии BSD или следование инструкциям pip или 'из исходного кода'.

Факты BSD

Ansible собирает факты с BSD аналогичным образом, как с машинами Linux, но поскольку данные, имена и структуры могут различаться для сети, дисков и других устройств, следует ожидать, что вывод будет немного отличаться, но всё же будет понятен администратору BSD.

Усилия и вклад сообщества BSD

Поддержка BSD важна для нас в Ansible. Несмотря на то, что большинство наших авторов используют и ориентируются на Linux, у нас есть активное сообщество BSD, и мы стремимся к максимально дружественному отношению к BSD. Пожалуйста, не стесняйтесь сообщать о любых проблемах или несовместимостях, которые вы обнаружите с BSD; pull запросы с включённым решением также приветствуются!

См. также

Введение в командные инструкции ad-hoc
Примеры основных команд
Работа с Playbook
Изучение языка управления конфигурациями Ansible
Разработка модуля?
Как писать модули
Список рассылки
Вопросы? Помощь? Идеи? Загляните на список на Google Groups
irc.freenode.net
#ansible IRC чат-канал

© 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/user_guide/intro_bsd.html

Spec-Zone.ru

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