system
Системные настройки
Базовые настройки для Linux систем.
Запуск ролей в контейнерах не является обычной практикой, однако данный случай поддерживается для тестирования Ansible с использованием Molecule. В этом случае только кэш менеджера пакетов будет настроен и обновлён при необходимости, остальные компоненты системы не будут управляться, так как это ответственность контейнерного движка.
Проект GitLab: yoanncolin/ansible/roles/system
Требования
Эта роль предназначена для выполнения от имени пользователя, не обладающего правами root, поэтому необходимо установить и настроить Sudo.
Для настройки сети требуется Python пакет netaddr
. Вам также понадобится Ansible модуль ansible.utils
.
Для управления файловыми системами требуется Python пакет jmespath
. Вам также нужны Ansible модули community.general
и ansible.posix
.
Факты
Определённые факты для этой роли:
system_packages
system_shells
system_sudo_version
Смотрите документацию по [фактам][] для получения дополнительных данных.
Теги
Поскольку некоторые значения распределены по нескольким задачам, вы можете быстро обновить некоторые из них с помощью тегов:
ca
- удостоверяющие центры SSLfirewall
hosts
- Обновить файл/etc/hosts
networks
packages
proxies
storages
sudoers
time
users
Использование:
ansible-playbook -t tag1[,tag2[,...]] my_play.yml
Задачи
Системные компоненты управляются через отдельные задачи, которые можно вызывать независимо.
Конечно, все задачи вызываются в main.yml
. Смотрите документацию по каждой задаче:
Переменные роли
Включение/выключение функций
Смотрите defaults/main/feature-flipping.yml
.
Включайте/выключайте некоторые функции, устанавливая их в true
/false
.
Общие переменные
Смотрите defaults/main/shared.yml
.
system_bin_path: /usr/local/bin
system_profile: server
system_retries: 2
Некоторые дистрибутивы не предоставляют команду, чтобы легко узнать, требуется ли перезагрузка или устарел ли кэш пакетов. Поэтому мы добавили скрипты для выполнения этих задач.
Вы можете изменить место расположения этих скриптов через system_bin_path
.
Значение system_profile
может влиять на поведение некоторых частей системы, например, на устанавливаемые (или нет) пакеты.
Если у вас возникли проблемы с сетью во время установки, вы можете увеличить значение system_retries
.
Зависимости
Доступная Linux система с установленным Python.
Пример Playbook
Первоначальное развертывание или обновление дистрибутива, 10% поэтапного обновления:
---
- name: Поэтапное обновление
hosts: all
serial: 10%
roles:
- role: gwerlas.system
vars:
system_packages_upgrade: true
Используйте только одну задачу:
---
- name: Менеджеры пакетов
hosts: all
tasks:
- name: Просто подготовить менеджер пакетов
ansible.builtin.import_role:
name: gwerlas.system
tasks_from: package-managers
Лицензия
ansible-galaxy install Gwerlas/system