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; также приветствуются запросы на добавление исправления.
См. также
- Введение в команды ad-hoc
-
Примеры основных команд
- Работа с playbooks
-
Изучение языка управления конфигурацией Ansible
- Разработка модуля?
-
Как писать модули
- Список рассылки
-
Вопросы? Помощь? Идеи? Заходите на список рассылки на Google Groups
- irc.freenode.net
-
Канал чата IRC #ansible
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/user_guide/intro_bsd.html