clusterapps.rhbase

Ansible роль rhbase

Ansible роль для базовой настройки сервера с дистрибутивом Linux на базе RedHat (CentOS, Fedora, RHEL и т.д.). Конкретно, обязанности этой роли включают:

  • Управление репозиториями,
  • Управление установкой и удалением пакетов,
  • Включение и отключение указанных служб,
  • Создание пользователей и групп,
  • Настройка учетной записи администратора с SSH-ключом,
  • Применение базовых настроек безопасности, таких как включение SELinux и брандмауэра,
  • Управление правилами брандмауэра (в публичной зоне).

Это форк bertvv.rh-base. Оригинал хорош, но я хотел пойти другим путем.

Требования

Нет специфических требований

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

Переменная Значение по умолчанию Комментарии (тип)
rhbase_enable_repos [] Список словарей, указывающих, какие репозитории должны быть включены. Подробности ниже.
rhbase_firewall_allow_ports [] Список портов, которым разрешено проходить через брандмауэр, например, 80/tcp, 53/udp и т.д.
rhbase_firewall_allow_services [] Список служб, которым разрешено проходить через брандмауэр, например, http, dns и т.д. (1)
rhbase_firewall_interfaces [] Список сетевых интерфейсов, которые будут добавлены в публичную зону правил брандмауэра.
rhbase_hosts_entry true Если установлено, в файл /etc/hosts добавляется запись с именем хоста машины. Это ускоряет сбор информации.
rhbase_install_packages [] Список пакетов, которые должны быть установлены. Допускаются также URL.
rhbase_motd false Если установлено, устанавливается пользовательский файл /etc/motd с информацией о имени хоста и IP-адресах.
rhbase_override_firewalld_zones false Если установлено, позволяет NetworkManager переопределять зоны брандмауэра, установленные администратором (2).
rhbase_remove_packages [] Список пакетов, которые не должны быть установлены
rhbase_repo_exclude_from_update [] Список пакетов, которые должны быть исключены из обновления. Поддерживаются подстановочные знаки, например, kernel*.
rhbase_repo_exclude [] Список репозиториев, которые должны быть отключены в yum/dnf.conf
rhbase_repo_gpgcheck false Если установлено, будут выполняться проверки GPG при установке пакетов.
rhbase_repo_installonly_limit 3 Максимальное количество версий пакета (например, ядра), которые могут быть установлены одновременно. Должно быть не менее 2.
rhbase_repo_remove_dependencies true Если установлено, зависимости, которые становятся не нужными после удаления пакета, также будут удалены.
rhbase_repositories [] Список RPM пакетов (включая URL), которые устанавливают внешние репозитории (например, epel-release).
rhbase_selinux_state enforcing Режим SELinux по умолчанию для системы. Просто оставьте как есть.
rhbase_selinux_booleans [] Список логических переменных SELinux, которые должны быть установлены в состояние "включено", например, httpd_can_network_connect
rhbase_ssh_key - Открытый SSH-ключ для администратора, который позволяет входить без пароля. Пользователь должен существовать.
rhbase_ssh_user - Имя пользователя, который будет управлять этой машиной. SSH-ключ будет установлен в домашний каталог пользователя. (3)
rhbase_start_services [] Список служб, которые должны работать и быть включенными.
rhbase_stop_services [] Список служб, которые не должны работать
rhbase_tz :/etc/localtime Устанавливает переменную окружения $TZ (4)
rhbase_update false Если установлено, будет выполнено обновление пакетов.
rhbase_user_groups [] Список групп пользователей, которые должны присутствовать.
rhbase_users [] Список словарей, описывающих пользователей, которые должны присутствовать. Пример ниже.
rhbase_taskrunner_key [] Уполномоченный публичный ключ для подключения как taskrunner

Примечания:

(1) Полный список действительных значений для rhbase_firewall_allow_services можно получить с помощью команды firewall-cmd --get-services.

(2) Это обходной путь для CentOS ошибки #7407. NetworkManager по умолчанию управляет зонами брандмауэра, что переопределяет правила, которые вы добавляете с помощью --permanent.

(3) Установка переменной rhbase_ssh_user на самом деле не создает пользователя, но устанавливает rhbase_ssh_key в домашнем каталоге этого пользователя (~/.ssh/authorized_keys). Следовательно, rhbase_ssh_user должен быть именем существующего пользователя, указанного в rhbase_users.

(4) Установка переменной $TZ может уменьшить количество системных вызовов. См. https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/

Включение репозиториев

Включите (установленные, но отключенные) репозитории, указав rhbase_enable_repos в виде списка словарей с ключами name: (обязательный) и section: (необязательный), например:

rhbase_enable_repos:
  - name: CentOS-fasttrack
    section: fasttrack
  - name: epel-testing

Если секция не указана, по умолчанию используется имя репозитория.

Добавление пользователей

Пользователи указываются с помощью словарей, таких как:

rhbase_users:
  - name: johndoe
    comment: 'Джон Доу'
    groups:
      - users
      - devs
    password: '$6$WIFkXf07Kn3kALDp$fHbqRKztuufS895easdT [...]'
  - name: janedoe

Единственный обязательный ключ — name.

Ключ Обязательно По умолчанию Комментарии
name да - Имя пользователя
comment нет '' Строка комментария
shell нет '/bin/bash' Командная оболочка пользователя
groups нет [] Группы, в которые следует добавить пользователя (1)
password нет '!!' Хэш пароля пользователя (2)

Примечания:

(1) Если вы хотите сделать пользователя администратором, убедитесь, что он является членом группы wheel (см. Руководство системного администратора RedHat.

(2) Пароль должен быть указан в виде хэша, как возвращается crypt(3), в форме $algo$salt$hash. Для тестов и виртуальных машин вы можете посмотреть на https://www.mkpasswd.net/ для генерации хэшей в правильной форме. Типичные типы хэшей для Linux — это MD5 (crypt-md5, хэши, начинающиеся с $1$) и SHA-512 (crypt-sha-512, хэши, начинающиеся с $6$).

Зависимости

Нет зависимостей.

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

Скоро будет

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

Скоро будет

Участие

Проблемы, запросы на функции и идеи приветствуются и могут быть размещены в разделе Issues.

Запросы на включение также очень приветствуются. Лучший способ отправить PR — это сначала создать форк этого проекта на Github, затем создать тематическую ветку для предлагаемого изменения и загрузить эту ветку в ваш собственный форк. Github сможет легко создать PR на основе этой ветки. Не забудьте добавить свое имя в список контрибьюторов ниже!

Лицензия

BSD

Авторы

Оригинальные авторы:

О проекте

Base setup of a server with a RedHat-based Linux distribution with the systemd init system.

Установить
ansible-galaxy install clusterapps.rhbase
Лицензия
other
Загрузки
215
Владелец
I'm here to read the articles.