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 - удостоверяющие центры SSL
  • firewall
  • 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

Лицензия

Лицензия BSD 3-Clause.

О проекте

Linux systems management

Установить
ansible-galaxy install Gwerlas/system
Лицензия
bsd-3-clause
Загрузки
5488
Владелец
DevOps Engineer