[Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si jej nyní zdarma.]
První krok v našem procesu nasazení pro systémy Red Hat Enterprise Linux (RHEL) zahrnuje registraci systému a připojení příslušného předplatného. K automatizaci těchto dvou kroků používám roli Ansible, o kterou bych se s vámi rád podělil.
Moje prostředí
V mém prostředí běží RHEL hlavně v rámci různých virtualizačních clusterů a příležitostně na dedikovaných serverech (holých kovech). Pro vývoj a produkci používáme následující předplatné:
- Předplatné pro vývojáře Red Hat
- Red Hat Enterprise Linux Server, standardní (fyzické nebo virtuální uzly)
- Red Hat Enterprise Linux for Virtual Datacenters, Standard
register-rhel-subscription
role
Moje role je minimalistická a má následující strukturu:
# tree roles/register-rhel-subscription
roles/register-rhel-subscription
|-- defaults
| `-- main.yml
|-- tasks
| `-- main.yml
tasks/main.yml
Modul Ansible redhat_subscription
spravuje registraci systému a předplatné pomocí subscription-manager
příkaz. Začněte vytvořením aktivačního klíče na zákaznickém portálu. Tento klíč umožňuje registraci bez nutnosti zadávat uživatelské jméno a heslo.
Přiřaďte tento klíč parametru activationkey
, asi takhle:
activationkey: "{{ org_activationkey }}"
Ve výše uvedeném kódu je obsah proměnné org_activationkey
je předán parametru. Jak a kde je tato proměnná definována, bude vysvětleno v další části.
Musíte také přidat ID vaší organizace do org_id
. Tyto informace můžete najít pomocí následujícího:
sudo subscription-manager identity
Poté deklaruje požadovaný cílový stav prostřednictvím:
state: present
V tomto případě by měl být systém zaregistrován a připojeno předplatné. Pokud tento parametr změníte na state: absent
, systém bude odpovídajícím způsobem odhlášen.
Takto vypadá kód, když je vše pohromadě:
---
# 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
V tomto souboru definujeme výchozí hodnotu pro proměnnou org_activationkey
:
---
# defaults file for register-rhel-subscription
org_activationkey: "my-datacenter-sub"
Hodnotu zadanou v tomto souboru lze přepsat například do host_vars
a group_vars
(viz Použití proměnných). Členství ve skupinách v inventáři Ansible můžete použít k řízení toho, které předplatné je přiřazeno hostiteli nebo skupině hostitelů.
Ukázková příručka
Po dokončení výše uvedených kroků můžete nyní přidat register-rhel-subscription
role do vaší příručky:
---
- hosts: all
tasks:
- name: Group by OS
group_by:
key=os_{{ ansible_distribution }}
changed_when: False
- hosts: os_RedHat
roles: - register-rhel-subscription
Závěr
Toto řešení zatím působí robustním dojmem a psaní tohoto textu trvalo mnohem déle, než samotný úkol. Toto je malý a jednoduchý příklad toho, jak by Ansible mohl trochu usnadnit váš Sysadmin Day.