[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.]
Una fase iniziale del nostro processo di distribuzione per i sistemi Red Hat Enterprise Linux (RHEL) prevede la registrazione del sistema e il collegamento di un abbonamento appropriato. Per automatizzare questi due passaggi, sto utilizzando un ruolo Ansible, che vorrei condividere con te.
Il mio ambiente
Nel mio ambiente, RHEL viene eseguito principalmente all'interno di diversi cluster di virtualizzazione e occasionalmente su server dedicati (bare metal). Utilizziamo i seguenti abbonamenti per lo sviluppo e la produzione:
- Abbonamento sviluppatore Red Hat
- Red Hat Enterprise Linux Server, Standard (nodi fisici o virtuali)
- Red Hat Enterprise Linux per datacenter virtuali, standard
Il register-rhel-subscription
ruolo
Il mio ruolo è minimalista e ha la seguente struttura:
# tree roles/register-rhel-subscription
roles/register-rhel-subscription
|-- defaults
| `-- main.yml
|-- tasks
| `-- main.yml
tasks/main.yml
Il modulo Ansible redhat_subscription
gestisce la registrazione e l'abbonamento di un sistema con il subscription-manager
comando. Inizia creando la tua chiave di attivazione nel Portale Clienti. Questa chiave consente la registrazione senza la necessità di inserire nome utente e password.
Assegna questa chiave al parametro activationkey
, in questo modo:
activationkey: "{{ org_activationkey }}"
Nel codice sopra, il contenuto della variabile org_activationkey
viene passato al parametro. Come e dove viene definita questa variabile verrà spiegato nella prossima sezione.
Devi anche aggiungere l'ID della tua organizzazione in org_id
. Puoi trovare queste informazioni con quanto segue:
sudo subscription-manager identity
Quindi, dichiara lo stato di destinazione desiderato tramite:
state: present
In questo caso, il sistema deve essere registrato e un abbonamento allegato. Se modifichi questo parametro in state: absent
, il sistema verrà annullato di conseguenza.
Ecco come appare il codice quando è tutto messo insieme:
---
# 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
In questo file, definiamo il valore predefinito per la variabile org_activationkey
:
---
# defaults file for register-rhel-subscription
org_activationkey: "my-datacenter-sub"
Il valore specificato in questo file può essere sovrascritto, ad esempio, in host_vars
e group_vars
(vedi Utilizzo delle variabili). Puoi utilizzare le appartenenze ai gruppi nell'inventario Ansible per controllare quale abbonamento è assegnato a un host oa un gruppo di host.
Esempio di playbook
Dopo aver completato i passaggi precedenti, ora puoi aggiungere il register-rhel-subscription
ruolo nel tuo playbook:
---
- hosts: all
tasks:
- name: Group by OS
group_by:
key=os_{{ ansible_distribution }}
changed_when: False
- hosts: os_RedHat
roles: - register-rhel-subscription
Conclusione
Finora questa soluzione ha fatto una solida impressione e scrivere questo testo ha richiesto molto più tempo del compito effettivo. Questo è un piccolo e semplice esempio di come Ansible potrebbe semplificare il tuo Sysadmin Day.