linux-system-roles.rhc
rhc
Ansible-роль, которая соединяет системы RHEL с Red Hat.
Требования
Для работы роли необходим subscription-manager, который доступен в стандартных репозиториях RHEL и обычно установлен по умолчанию на RHEL. На других дистрибутивах он будет установлен, если ещё не установлен.
Также требуется insights-client, который доступен из стандартных репозиториев RHEL, если поддержка Insights включена (а она включена по умолчанию).
Кроме того, для работы роли необходим rhc, который доступен из стандартных репозиториев RHEL, если включено восстановление Insights (а оно включено по умолчанию).
Требования для коллекции
Роль требует модули из внешних коллекций. Используйте следующую команду для их установки:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Переменные роли
rhc_state: present
Соединён ли система с Red Hat; допустимые значения: present (по умолчанию, чтобы гарантировать соединение), absent и reconnect.
При использовании reconnect, система сначала будет отключена, если она уже была подключена; из-за этого роль всегда будет сообщать о "изменении".
rhc_organization: "ваша-организация"
Организация пользователя. Это должно быть указано при подключении, если:
- пользователь принадлежит более чем одной организации
- используются ключи активации (см.
rhc_authниже)
rhc_auth: {}
Метод аутентификации, используемый для подключения системы. Это должно быть указано, если системе может понадобиться подключение (например, если до этого она не была подключена). Есть несколько возможных методов аутентификации; можно указать только один в одно время.
Примечание: переменные, используемые для аутентификации, считаются секретами и должны быть защищены. Мы рекомендуем использовать Ansible Vault для их хранения. Ссылки ниже описывают, какие ключи существуют и для чего они нужны.
Для аутентификации с использованием имени пользователя и пароля укажите словарь login, используя следующие обязательные ключи:
rhc_auth:
login:
username: "ваш-имя-пользователя"
password: "ваш-пароль"
используя rhc_organization, если это необходимо.
Для аутентификации с использованием ключей активации укажите словарь activation_keys, используя следующие обязательные ключи, вместе с rhc_organization:
rhc_auth:
activation_keys:
keys: ["ключ-1", ...]
rhc_organization: "ваша-организация"
rhc_server: {}
Детали сервера регистрации, к которому нужно подключиться; он может содержать следующие необязательные ключи:
rhc_server:
hostname: "имя-хоста"
port: 443
prefix: "префикс-сервера"
insecure: false
hostname- имя хоста сервераport- порт для подключения к серверуprefix- префикс (начинается с/) для API-запросов к серверуinsecure- указывает, следует ли отключить проверку SSL-сертификата сервера
rhc_baseurl: ""
Базовый URL для получения контента с сервера подписки.
rhc_repositories: []
Список репозиториев для включения или отключения в системе. Каждый элемент - это словарь, содержащий два ключа:
name- название репозитория; этот ключ обязателенstate- состояние репозитория в системе, может бытьenabledилиdisabled; этот ключ необязателен и по умолчанию равенenabled
rhc_repositories:
- {name: "репозиторий-1", state: enabled}
- {name: "репозиторий-2", state: disabled}
rhc_release: "релиз"
Релиз, который нужно установить для системы. Обычно используется для блокировки системы RHEL на определённой минорной версии RHEL.
Используйте {"state":"absent"} (а не ""), чтобы фактически удалить установленный релиз для системы.
rhc_insights:
state: present
Подключена ли система к Insights; допустимые значения: present (по умолчанию, чтобы гарантировать подключение) и absent.
rhc_insights:
autoupdate: true
Обновляет ли система динамическую конфигурацию автоматически. Включено по умолчанию.
rhc_insights:
ansible_host: "example-host"
Настраивает имя хоста ansible с пользовательским значением для системной записи в Инвентаре на основе хостов (HBI). Это имя хоста используется в плейбуках мерами.
По умолчанию null и будет использовать имя хоста системы, если не указано.
Возможные значения этой переменной:
nullили пустая строка: имя хоста ansible не изменяется.{state: absent}: имя хоста ansible сбрасывается в конфигурационном файле insights-client и HBI обновляется для использования имени хоста системы.- любое другое строковое значение: имя хоста ansible изменяется в HBI.
rhc_insights:
display_name: "Пример Хоста"
Настраивает отображаемое имя с пользовательским значением для системной записи в HBI. Это отображаемое имя используется только для идентификации хоста в Инвентаре.
По умолчанию null и будет использовать имя хоста системы, если не указано.
Возможные значения этой переменной:
nullили пустая строка: отображаемое имя не изменяется- любое другое строковое значение: отображаемое имя изменяется в HBI.
Примечание: Если не указано явно при регистрации, отображаемое имя устанавливается в имя хоста по умолчанию. Невозможно автоматически вернуть его к имени хоста, но это можно сделать вручную.
rhc_insights:
remediation: present
Настроена ли система на выполнение восстановления Insights; допустимые значения: present (по умолчанию, чтобы обеспечить восстановление) и absent.
Обратите внимание, что восстановление Insights поддерживается только на RHEL 8.4 или новее, так как необходимые пакеты доступны только с этой версии; на более старых версиях этот параметр не будет иметь эффекта.
rhc_insights:
tags: {}
Словарь тегов, который добавляется к системной записи в HBI; обычно используются для группировки и маркировки систем, а также для поиска систем в инвентаре.
Возможные значения этой переменной:
nullили пустое значение (например:{}): содержимое файла тегов не изменяется{state: absent}: все теги удаляются (путём удаления файла тегов)- любое другое значение: файл создаётся с указанными тегами
Так как теги являются произвольными значениями для маркировки систем, четкого формата нет. В заданном словаре ключи - это строки, а тип значений может быть любым (строки, числа, списки, словари и т. д.).
Пример тегов, настроенных в insights-client
документации:
rhc_insights:
tags:
group: _значение-имени-группы_
location: _значение-имени-локации_
description:
- RHEL8
- SAP
key 4: значение
rhc_proxy: {}
Детали прокси-сервера, который используется для подключения:
rhc_proxy:
hostname: "имя-прокси-хоста"
scheme: http
port: 4321
username: "имя-прокси-хоста"
password: "пароль-прокси"
hostname- имя хоста прокси-сервераscheme- схема, которую нужно использовать для прокси-сервера, обычно "http" или "https", по умолчанию "http"port- порт для подключения к прокси-серверуusername- имя пользователя для аутентификации на прокси-сервере; его можно не указывать, если прокси-сервер не требует аутентификацииpassword- пароль для аутентификации на прокси-сервере; его можно не указывать, если прокси-сервер не требует аутентификации
Используйте {"state":"absent"} для сброса всех настроек прокси на пустые (фактически отключая прокси-сервер).
Примечание: переменные, используемые для аутентификации на прокси-сервере, считаются секретами и должны быть защищены. Мы рекомендуем использовать Ansible Vault для их хранения.
rhc_environments: []
Список окружений, к которым зарегистрироваться при подключении системы.
Примечание:
- это работает только при подключении системы из неподключенного состояния -- не может изменить окружения уже подключенных систем
- это требует, чтобы окружения были включены на сервере регистрации; в Red Hat Satellite или Katello эта функция называется "Content Views"
Примеры Плейбуков
Гарантировать соединение с Red Hat, включая Insights, аутентифицируясь с помощью имени пользователя и пароля:
- name: Регистрация систем
hosts: all
vars:
rhc_auth:
login:
username: "ваш-имя-пользователя"
password: !vault |
$ANSIBLE_VAULT;1.2;AES256;dev
....
roles:
- linux-system-roles.rhc
Обеспечить, что определённые репозитории RHEL 9 включены, а другой -- нет:
- name: Убедиться, что репозитории RHEL 9 включены
hosts: all
vars:
rhc_repositories:
- {name: "rhel-9-for-x86_64-baseos-rpms", state: enabled}
- {name: "rhel-9-for-x86_64-appstream-rpms", state: enabled}
- {name: "codeready-builder-for-rhel-9-x86_64-rpms", state: disabled}
roles:
- linux-system-roles.rhc
Убедиться, что система RHEL 8 заблокирована на RHEL 8.6:
- name: Убедиться, что системы заблокированы на RHEL 8.6
hosts: all
vars:
rhc_release: 8.6
roles:
- linux-system-roles.rhc
Убедиться, что система подключена к Insights, без необязательных функций, таких как автоматические обновления и восстановление:
- name: Убедиться, что системы подключены к Insights
hosts: all
vars:
rhc_insights:
autoupdate: false
remediation: absent
roles:
- linux-system-roles.rhc
Лицензия
MIT
Configure connectivity of systems to Red Hat
ansible-galaxy install linux-system-roles.rhc