rhc

rhc

ansible-lint.yml ansible-test.yml markdownlint.yml tft.yml tft_citest_bad.yml woke.yml

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
Лицензия
mit
Загрузки
1748
Владелец