[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.]
Une première étape de notre processus de déploiement pour les systèmes Red Hat Enterprise Linux (RHEL) consiste à enregistrer le système et à attacher un abonnement approprié. Pour automatiser ces deux étapes, j'utilise un rôle Ansible, que j'aimerais partager avec vous.
Mon environnement
Dans mon environnement, RHEL s'exécute principalement au sein de différents clusters de virtualisation, et occasionnellement sur des serveurs dédiés (bare metal). Nous utilisons les abonnements suivants pour le développement et la production :
- Abonnement Développeur Red Hat
- Red Hat Enterprise Linux Server, Standard (nœuds physiques ou virtuels)
- Red Hat Enterprise Linux pour les centres de données virtuels, Standard
Le register-rhel-subscription
rôle
Mon rôle est minimaliste et a la structure suivante :
# tree roles/register-rhel-subscription
roles/register-rhel-subscription
|-- defaults
| `-- main.yml
|-- tasks
| `-- main.yml
tasks/main.yml
Le module Ansible redhat_subscription
gère l'enregistrement et l'abonnement d'un système avec le subscription-manager
commande. Commencez par créer votre clé d'activation dans le portail client. Cette clé permet l'enregistrement sans qu'il soit nécessaire de saisir le nom d'utilisateur et le mot de passe.
Affectez cette clé au paramètre activationkey
, comme ceci :
activationkey: "{{ org_activationkey }}"
Dans le code ci-dessus, le contenu de la variable org_activationkey
est passé au paramètre. Comment et où cette variable est définie sera expliqué dans la section suivante.
Vous devez également ajouter l'ID de votre organisation dans org_id
. Vous pouvez trouver ces informations avec les éléments suivants :
sudo subscription-manager identity
Ensuite, déclare l'état cible souhaité via :
state: present
Dans ce cas, le système doit être enregistré et un abonnement attaché. Si vous changez ce paramètre en state: absent
, le système sera désenregistré en conséquence.
Voici à quoi ressemble le code une fois tout assemblé :
---
# tasks file for register-rhel-subscription
# Register System and add Subcription
- name: Register system and add subscription
redhat_subscription:
activationkey: "{{ org_activationkey }}"
org_id: 1234567
state: present
defaults/main.yml
Dans ce fichier, nous définissons la valeur par défaut pour la variable org_activationkey
:
---
# defaults file for register-rhel-subscription
org_activationkey: "my-datacenter-sub"
La valeur spécifiée dans ce fichier peut être remplacée, par exemple, dans host_vars
et group_vars
(voir Utilisation des variables). Vous pouvez utiliser les appartenances aux groupes dans l'inventaire Ansible pour contrôler quel abonnement est attribué à un hôte ou à un groupe d'hôtes.
Exemple de manuel de jeu
Une fois les étapes ci-dessus terminées, vous pouvez maintenant ajouter le register-rhel-subscription
rôle dans votre playbook :
---
- hosts: all
tasks:
- name: Group by OS
group_by:
key=os_{{ ansible_distribution }}
changed_when: False
- hosts: os_RedHat
roles: - register-rhel-subscription
Conclusion
Jusqu'à présent, cette solution fait bonne impression et la rédaction de ce texte a pris beaucoup plus de temps que la tâche proprement dite. Ceci est un petit exemple simple de la façon dont Ansible pourrait rendre votre journée d'administrateur système un peu plus facile.