Ansible и BSD
Управление машинами BSD отличается от управления другими машинами на базе 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 python%3.7"
После этого вы можете использовать другие модули Ansible помимо модуля raw.
Примечание
В этом примере показано использование pkg для FreeBSD и pkg_add для OpenBSD, но вы должны иметь возможность заменить соответствующий инструмент для пакетов для вашего BSD; имя пакета также может отличаться. Обратитесь к списку пакетов или документации используемого вами варианта BSD, чтобы узнать точное имя пакета Python, который вы хотите установить.
Установка интерпретатора Python
Для поддержки различных Unix-подобных операционных систем и дистрибутивов 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/python3.7
Если вы используете дополнительные плагины, помимо тех, что поставляются с Ansible, вы можете установить аналогичные переменные для bash, perl или ruby, в зависимости от того, как написан плагин. Например:
[freebsd:vars] ansible_python_interpreter=/usr/local/bin/python ansible_perl_interpreter=/usr/bin/perl5
Какие модули доступны?
Большинство основных модулей Ansible написаны для комбинации Unix-подобных машин и других универсальных служб, поэтому большинство из них должны хорошо работать на BSD, за исключением тех, которые предназначены для технологий, специфичных для Linux (таких как LVG).
Использование BSD в качестве управляющего узла
Использование BSD в качестве управляющего узла так же просто, как установка пакета Ansible для вашего BSD-варианта или выполнение инструкций pip или «из исходного кода».
Данные о BSD
Ansible собирает данные о BSD аналогично машинам Linux, но поскольку данные, имена и структуры могут различаться для сети, дисков и других устройств, следует ожидать, что вывод будет немного отличаться, но при этом останется понятным для администратора BSD.
Усилия и вклад в поддержку BSD
Поддержка BSD важна для нас в Ansible. Несмотря на то, что большинство наших авторов используют и ориентируются на Linux, у нас есть активное сообщество BSD, и мы стремимся к максимальной совместимости с BSD. Пожалуйста, не стесняйтесь сообщать о любых проблемах или несовместимостях, которые вы обнаружите с BSD; pull-реквесты с включенным исправлением также приветствуются!
См. также
- Введение в команды ad hoc
-
Примеры основных команд
- Работа с плейбуками
-
Освоение языка управления конфигурацией Ansible
- Разработка модуля?
-
Как писать модули
- Список рассылки
-
Вопросы? Помощь? Идеи? Заходите на список рассылки на Google Groups
- irc.freenode.net
-
IRC-чат-канал #ansible
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/user_guide/intro_bsd.html