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
Авторы
- Michael Cleary (сопровождающий)
Оригинальные авторы:
- Bert Van Vreckem
- Jeroen De Meerleer
- Sebastien Nussbaum
Base setup of a server with a RedHat-based Linux distribution with the systemd init system.
ansible-galaxy install clusterapps.rhbase