Úvod
Ansible je open-source software pro správu a automatizaci serverů, který umožňuje Infrastructure as Code (IaC). Tento nástroj umožňuje nasazování aplikací, zajišťování a správu konfigurace jednoduše a efektivně.
Ansible Automation Hub shromažďuje moduly od společnosti Red Hat a certifikovaných partnerů. phoenixNAP je hrdý na to, že je součástí kolekce důvěryhodného obsahu Ansible s pluginem Bare Metal Cloud. Tento koncept, který Ansible představil, umožňuje instalovat cloudové poskytovatele jako další knihovny.
Podle kroků v této příručce nainstalujte modul phoenixNAP BMC Ansible a naučte se používat příslušné příručky.
Předpoklady
- Ansible nainstalovaný na řídicím počítači
- Python nainstalovaný na řídicím počítači (ve výchozím nastavení k dispozici)
Výhody použití modulu PNAP BMC Ansible Module
Tento nástroj IaC byl navržen tak, aby zákazníkům umožňoval poskytovat servery Bare Metal Cloud a provádět další úkoly pomocí jednoduchých skriptů YAML tzv. playbooky. Nyní můžete efektivně automatizovat vytváření serverů pomocí neměnného zajišťování. Kromě výhody automatizace IT procesů je dalším bonusem možnost znovu spustit stejný kód a vrátit server do původního stavu v případě nechtěných úprav.
Tento model nemá master a slave stroje. K odesílání souborů používáte jeden počítač, tj. ke spuštění skriptu na jednom nebo více vzdálených hostitelích. Na jednotlivých uzlech nejsou žádní agenti, kteří stahují informace z hlavního serveru. Modul Bare Metal Cloud nevyžaduje SSH ke spuštění playbooků.
Tím, že se stanete certifikovaným pluginem na Red Hat Ansible Automation Hub je proces instalace modulu BMC rychlý a dokončen pomocí jediného příkazu Ansible . Poté můžete dát pokyn Ansible, aby spustila skript, který obsahuje kód YAML s popisem automatizační úlohy, kterou chcete provést. Modul zajišťuje dosažení vámi zadaného konečného výsledku a ve správném pořadí.
Obsah v Ansible Automation Hub je podporován společností Red Hat a jejími partnery. Tímto způsobem si i ta nejnáročnější prostředí mohou být jisti, že moduly splní očekávání.
Nainstalujte modul BMC Ansible Module
Před instalací pluginu BMC Ansible potřebujete požadavky Pythonu balíček na vašem stroji. Umožňuje odesílání různých typů HTTP požadavků.
Chcete-li nainstalovatpožadavky , zadejte:
pip install requests
Poté spusťte příkaz Ansible a nainstalujte modul phoenixNAP BMC:
ansible-galaxy collection install phoenixnap.bmc
Po dokončení instalace si prohlédněte dokumentaci modulu pomocí tohoto příkazu:
ansible-doc phoenixnap.bmc.server
Plugin Ansible BMC závisí na požadavcích API. Všechny požadavky BMC API jsou zdokumentovány na portálu phoenixNAP Developers Portal.
Vytvořit soubor pověření pro ověření
Chcete-li se úspěšně ověřit pomocí našeho autorizačního serveru, použijte typ udělení přihlašovacích údajů klienta.
Ve svém domovském adresáři vytvořte adresář .pnap a config.yaml soubor uvnitř.
Soubor musí obsahovat následující informace:
clientId: myClientId
clientSecret: myClientSecret
Nahraďte myClientId a myClientSecret s vaším ID a tajemstvím.
Ansible phoenixNAP BMC Playbooks
Psaní Ansible playbooků nevyžaduje speciální kódovací dovednosti a pokrývají všechna dostupná BMC API. Tyto skripty jsou napsány v YAML, jednoduchém serializačním jazyce používaném při vytváření konfiguračních souborů. Ansible funguje tak, že kontroluje aktuální stavy serverů a porovnává je se sadou instrukcí v playbooku.
Když se stav neshoduje s definovaným konečným výsledkem, modul zajistí, že se bude řídit modelem zdrojů ze skriptu k dosažení stanoveného cíle.
Pokud spustíte playbook více než jednou, modul nebude provádět další úlohy. Jakmile aktuální stav serveru BMC odpovídá cíli skriptu, můžete skript spustit vícekrát a modul nebude provádět žádnou úlohu.
Jak spustit BMC Playbooks
Název příručky naznačuje, co skript dělá. Například playbook_power_off.yml vypne jeden nebo více serverů.
Chcete-li spustit playbook, použijte tuto syntaxi:
ansible-playbook playbook_name.yml
Proto pro resetování serveru zadejte:
ansible-playbook playbook_reset.yml
Příklady BMC Playbook
Příklady příruček YAML, které poskytneme níže, jsou si navzájem podobné. Rozdíl je ve stavu serveru, kterého chcete dosáhnout. Jediný soubor, který se od ostatních mírně liší, je skript pro vytvoření serveru.
Každá příručka musí obsahovat jeden nebo více názvů hostitele nebo id_serveru a také client_id a client_secret . Preferovanou metodou je zadat hodnoty do ~/.pnap/config.yaml místo v každém playbooku.
Vytvořit server
Název příručky:playbook_create.yml
- name: Create new servers for account
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
location: PHX
os: ubuntu/bionic
type: s1.c1.medium
state: present
ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
Odstranění serveru
Název příručky:playbook_deprovision.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: absent
Vypnout server
Název příručky:playbook_power_off.yml
- name: power on servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: powered-off
Zapnout server
Název příručky:playbook_power_on.yml
- name: power on servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: powered-on
Restartujte server
Název příručky:playbook_reboot.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: rebooted
Resetovat server
Název příručky:playbook_reset.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
state: reset
Vypnutí serveru
Název příručky:playbook_shutdown.yml
V tomto příkladu jsme použili id_serveru místo názvů hostitelů .
- name: shutdown servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
server_ids:
- 5eda71ef674cf47bd2599cfa
state: shutdown