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