is_ubuntu

is-ubuntu

Статус сборки Тег GitHub Роль Ansible

Определяет, является ли целевой хост Ubuntu... контейнером или, возможно, локальным хостом.

Выполняемые шаги:

  • Устанавливает факт is_ubuntu_localhost
  • Проверяет, находитесь ли вы в контейнере или нет
  • Устанавливает факт is_ubuntu_inside_container
  • Проверяет, есть ли настройки прокси

:exclamation: Требования


Нет.

:abcd: Переменные роли


Переменная Описание Значение по умолчанию
is_force_lookup Поиск пользовательских дополнительных фактов не происходит, если они уже существуют. Это для принудительного поиска no
is_test_url_list Список URL для тестирования, чтобы обнаружить подключение к Интернету/доступность []

Нет.

:loudspeaker: Факты


Эта роль создает следующие факты, которые могут быть использованы другими ролями или плейбуками:

Факт Описание
is_ubuntu_behind_proxy Версия, подписанная для текущей роли Ansible при выполнении (этот факт НЕ обновляется, если он присутствует, если только is_force_lookup не установлен в yes)
is_ubuntu_inside_container Истина, когда вы находитесь в контейнере. Это происходит, когда PID 1 не является init или systemd (этот факт НЕ обновляется, если он присутствует, если только is_force_lookup не установлен в yes)
is_ubuntu_localhost Истина, когда целевая машина роли является localhost (этот факт НЕ обновляется, если он присутствует, если только is_force_lookup не установлен в yes)
is_ubuntu_network_reachable Истина, когда все URL, переданные с is_test_url_list, доступны (по умолчанию также включает все URL из /etc/apt/sources.list)
is_ubuntu_url_reachable_list Список всех доступных URL
is_ubuntu_url_unreachable_list Список всех недоступных URL

:notebook: Пример плейбука


Вот пример того, как использовать эту роль в ваших плейбуках:

---
- hosts: servers
  remote_user: ubuntu   # необязательный (ваш удаленный пользователь)
  gather_facts: yes     # необязательный

  roles:
    - { role: itnok.is_ubuntu }

:microscope: Тестирование


Эта роль поддерживает тестирование с использованием Molecule для проверки ее функциональности в общем окружении.

Molecule НЕ нужен для использования роли, но необходим для тестирования на локальной установке или в CI. Пример использования Molecule для CI можно найти в действиях GitHub этого репозитория. Чтобы установить Molecule, пожалуйста, обратитесь к инструкциям в онлайн документации Molecule. Если все необходимые зависимости там присутствуют, все должно быть так же просто, как запустить:

$ python3 -m pip install --user "molecule[ansible,docker,lint]"

Тесты выполняются внутри контейнеров, созданных на лету для этой цели (чтобы быть максимально универсальными). По этой причине Molecule требует установленный Docker. Если Podman является предпочтительным альтернативным способом работы с контейнерами, необходимую команду для установки Molecule следует изменить следующим образом:

$ python3 -m pip install --user "molecule[ansible,podman,lint]"

Чтобы использовать Podman, драйвер, используемый Molecule, также следует изменить в файле molecule/default/molecule.yml: строки #5-6 следует изменить следующим образом:

driver:
  name: podman

Все тесты, помимо проверок оформления, линтинга и идемпотентности, можно запустить с помощью:

$ molecule test --parallel

(Использование необязательной опции --parallel, запускающей тестовый набор, настоятельно рекомендуется, потому что тестирование на нескольких целевых контейнерах значительно сокращает время тестирования!)

Дополнительные тесты могут быть добавлены в плейбук molecule/default/verify.yml, если возникнет такая необходимость.

:guardsman: Лицензия


MIT (узнать больше)

О проекте

Detects whether the target Ubuntu host is... a container or eventually localhost (and more).

Установить
ansible-galaxy install itnok/ansible-role-is-ubuntu
Лицензия
mit
Загрузки
6694
Владелец