linux-system-roles.rhc
rhc
Un rôle Ansible qui relie les systèmes RHEL à Red Hat.
Exigences
Le rôle nécessite subscription-manager
, disponible dans les dépôts RHEL standards, généralement déjà installé par défaut sur RHEL. Sur d'autres distributions, il sera installé s'il n'est pas déjà présent.
Le rôle nécessite également insights-client
, disponible dans les dépôts RHEL standards, si le support Insights est activé (ce qui est le cas par défaut).
De plus, le rôle nécessite rhc
, disponible dans les dépôts RHEL standards, si la remédiation Insights est activée (ce qui est le cas par défaut).
Exigences de collection
Le rôle nécessite des modules provenant de collections externes. Utilisez la commande suivante pour les installer :
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables du rôle
rhc_state: present
Indique si le système est connecté à Red Hat ; les valeurs valides sont present
(par défaut, pour garantir la connexion), absent
, et reconnect
.
Lorsque vous utilisez reconnect
, le système sera tout d'abord déconnecté s’il était déjà connecté ; pour cette raison, le rôle rapportera toujours un état "changé".
rhc_organization: "votre-organisation"
L'organisation de l'utilisateur. Cela doit être spécifié lors de la connexion si :
- l'utilisateur appartient à plus d'une organisation
- utilise des clés d'activation (voir
rhc_auth
ci-dessous)
rhc_auth: {}
La méthode d'authentification utilisée pour connecter un système. Cela doit être spécifié si un système doit se connecter (par exemple, s'il ne l'a pas fait auparavant). Il existe quelques méthodes d'authentification possibles ; une seule peut être spécifiée à la fois.
NB : les variables utilisées pour l'authentification sont considérées comme des secrets, et doivent donc être sécurisées. Nous recommandons l'utilisation d'Ansible Vault comme source pour celles-ci. Les références ci-dessous décrivent simplement quelles clés existent et à quoi elles servent.
Pour s'authentifier avec un nom d'utilisateur et un mot de passe, spécifiez le dictionnaire login
avec les clés obligatoires suivantes :
rhc_auth:
login:
username: "votre-nom-utilisateur"
password: "votre-mot-de-passe"
utilisez rhc_organization
si nécessaire.
Pour s'authentifier avec des clés d'activation, spécifiez le dictionnaire activation_keys
avec les clés suivantes obligatoires, en même temps que rhc_organization
:
rhc_auth:
activation_keys:
keys: ["clé-1", ...]
rhc_organization: "votre-organisation"
rhc_server: {}
Les détails du serveur d'enregistrement auquel se connecter ; il peut contenir les clés optionnelles suivantes :
rhc_server:
hostname: "nom-d'hôte"
port: 443
prefix: "prefixe-du-serveur"
insecure: false
hostname
est le nom d'hôte du serveurport
est le port auquel se connecter sur le serveurprefix
est le préfixe (commençant par/
) pour les appels API au serveurinsecure
spécifie s'il faut désactiver la validation du certificat SSL du serveur
rhc_baseurl: ""
L'URL de base pour recevoir du contenu du serveur d'abonnement.
rhc_repositories: []
Une liste de dépôts à activer ou désactiver dans le système. Chaque élément est un dictionnaire contenant deux clés :
name
est le nom d'un dépôt ; cette clé est obligatoirestate
est l'état de ce dépôt dans le système, il peut êtreenabled
oudisabled
; cette clé est optionnelle, etenabled
si non spécifiée
rhc_repositories:
- {name: "dépôt-1", state: enabled}
- {name: "dépôt-2", state: disabled}
rhc_release: "release"
Une version à définir pour le système. Utilisé typiquement pour verrouiller un système RHEL à une certaine version mineure de RHEL.
Utilisez {"state":"absent"}
(et non ""
) pour réellement supprimer la version définie pour le système.
rhc_insights:
state: present
Indique si le système est connecté à Insights ; valeurs valides : present
(par défaut, pour assurer la connexion) et absent
.
rhc_insights:
autoupdate: true
Indique si le système met automatiquement à jour la configuration dynamique. C'est activé par défaut.
rhc_insights:
ansible_host: "exemple-hôte"
Configure le nom d'hôte Ansible avec une valeur personnalisée pour l'enregistrement système dans l'Inventaire Basé sur l'Hôte (HBI). Ce nom d'hôte est utilisé dans les playbooks par les remédiations. Il est null
par défaut et utilisera le nom d'hôte du système s'il n'est pas spécifié.
Valeurs possibles de cette variable :
null
ou une chaîne vide : le nom d'hôte Ansible n'est pas modifié.{state: absent}
: le nom d'hôte Ansible est supprimé dans le fichier de configuration du client Insights et l'HBI est mis à jour pour utiliser le nom d'hôte du système.- toute autre valeur de chaîne : le nom d'hôte Ansible est modifié dans l'HBI.
rhc_insights:
display_name: "Exemple Hôte"
Configure le nom d'affichage avec une valeur personnalisée pour l'enregistrement système dans l'HBI. Ce nom d'affichage est uniquement utilisé pour identifier l'hôte dans l'Inventaire.
Il est null
par défaut et utilisera le nom d'hôte du système s'il n'est pas spécifié.
Valeurs possibles de cette variable :
null
ou une chaîne vide : le nom d'affichage n'est pas modifié- toute autre valeur de chaîne : le nom d'affichage est modifié dans l'HBI.
Remarque : S'il n'est pas explicitement défini lors de l'enregistrement, le nom d'affichage est défini sur le nom d'hôte par défaut. Il n'est pas possible de le rétablir automatiquement au nom d'hôte, mais il peut être défini manuellement.
rhc_insights:
remediation: present
Indique si le système est configuré pour exécuter la remédiation Insights ; valeurs valides : present
(par défaut, pour assurer la remédiation) et absent
.
Veuillez noter que la remédiation Insights n'est prise en charge que sur RHEL 8.4 ou version supérieure, car les packages nécessaires ne sont disponibles qu'à partir de cette version ; sur les versions antérieures, ce paramètre n'a aucun effet.
rhc_insights:
tags: {}
Un dictionnaire de balises ajoutées à l'enregistrement système dans l'HBI ; typiquement utilisé pour regrouper et étiqueter les systèmes, et pour rechercher des systèmes dans l'inventaire.
Valeurs possibles de cette variable :
null
ou une valeur vide (par exemple :{}
) : le contenu du fichier de balises n'est pas modifié{state: absent}
: toutes les balises sont supprimées (en supprimant le fichier de balises)- toute autre valeur : le fichier est créé avec les balises spécifiées
Les balises étant des valeurs arbitraires pour étiqueter les systèmes, il n'y a pas de format fixe. Dans le dictionnaire spécifié, les clés sont des chaînes, et les valeurs peuvent être de n'importe quel type de données (chaînes, nombres, listes, dictionnaires, etc.).
Exemple de balises configurées dans la documentation de insights-client :
rhc_insights:
tags:
group: _valeur-nom-groupe_
location: _valeur-nom-emplacement_
description:
- RHEL8
- SAP
key 4: valeur
rhc_proxy: {}
Les détails du serveur proxy à utiliser pour se connecter :
rhc_proxy:
hostname: "nom-hôte-proxy"
scheme: http
port: 4321
username: "nom-utilisateur-proxy"
password: "mot-de-passe-proxy"
hostname
est le nom d'hôte du serveur proxyscheme
est le schéma à utiliser pour le serveur proxy, généralement "http" ou "https", par défaut "http"port
est le port auquel se connecter sur le serveur proxyusername
est le nom d'utilisateur utilisé pour s'authentifier sur le serveur proxy ; il peut ne pas être spécifié si le serveur proxy ne nécessite pas d'authentificationpassword
est le mot de passe utilisé pour s'authentifier sur le serveur proxy ; il peut ne pas être spécifié si le serveur proxy ne nécessite pas d'authentification
Utilisez {"state":"absent"}
pour réinitialiser toutes les configurations de proxy à vide (désactivant effectivement le serveur proxy).
NB : les variables utilisées pour l'authentification sur le serveur proxy sont considérées comme des secrets, et doivent donc être sécurisées. Nous recommandons l'utilisation d'Ansible Vault comme source pour celles-ci.
rhc_environments: []
La liste des environnements auxquels s'inscrire lors de la connexion du système.
NB :
- cela ne fonctionne que lorsque le système est connecté à partir d'un état non connecté -- il ne peut pas changer les environnements des systèmes déjà connectés
- cela nécessite que les environnements soient activés sur le serveur d'enregistrement ; dans Red Hat Satellite ou Katello, cette fonctionnalité s'appelle "Content Views"
Exemples de Playbooks
Assurez-vous de la connexion à Red Hat incluant Insights, en s'authentifiant avec un nom d'utilisateur et un mot de passe :
- name: Enregistrer des systèmes
hosts: all
vars:
rhc_auth:
login:
username: "votre-nom-utilisateur"
password: !vault |
$ANSIBLE_VAULT;1.2;AES256;dev
....
roles:
- linux-system-roles.rhc
Assurez-vous que certains dépôts RHEL 9 sont activés, et un autre est désactivé :
- name: Assurez-vous que les dépôts RHEL 9 sont activés
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
Assurez-vous qu'un système RHEL 8 est verrouillé sur RHEL 8.6 :
- name: Assurez-vous que les systèmes sont verrouillés à RHEL 8.6
hosts: all
vars:
rhc_release: 8.6
roles:
- linux-system-roles.rhc
Assurez-vous qu'un système est connecté à Insights, sans fonctionnalités optionnelles comme les mises à jour automatiques et la remédiation :
- name: Assurez-vous que les systèmes sont connectés à Insights
hosts: all
vars:
rhc_insights:
autoupdate: false
remediation: absent
roles:
- linux-system-roles.rhc
Licence
MIT
Configure connectivity of systems to Red Hat
ansible-galaxy install linux-system-roles.rhc