Shrnutí
- Ansible je nástroj DevOps, který je výkonnou náhradou za PowerShell
- RunDeck jako grafické rozhraní je praktické
- Někteří lidé provozují RunDeck+Ansible společně
clusterssh
Pro posílání vzdálených příkazů na několik serverů bych začátečníkům doporučil clusterssh
Chcete-li nainstalovat clusterssh
v Debianu:
apt-get install clusterssh
Další tutoriál clusterssh:
ClusterSSH je obal Tk/Perl kolem standardních nástrojů Linuxu, jako je XTermand SSH. Jako takový poběží téměř na jakémkoli OS kompatibilním s POSIX, kde existují knihovny – spustil jsem to na Linuxu, Solaris a Mac OS X. Vyžaduje Perl knihovny Tk (perl-tk na Debianu nebo Ubuntu) a X11::Protokol (libx11-protocol-perl na Debianu nebo Ubuntu), navíc k xterm a OpenSSH.
Ansible
Co se týče vzdáleného frameworku pro správu více systémů, Ansible je velmi zajímavou alternativou k Puppet. Je štíhlejší a nepotřebuje vyhrazené vzdálené agenty, protože funguje přes SSH (také jej koupil RedHat)
Příručky jsou propracovanější než možnosti příkazového řádku.
Chcete-li však začít používat Ansible, potřebujete jednoduchou instalaci a nastavení textového souboru se seznamem klientů.
Poté je možné spustit příkaz na všech serverech jednoduše:
ansible all -m command -a "uptime"
Výstup je také velmi pěkně naformátovaný a oddělený podle pravidla/serveru a při běhu na pozadí může být přesměrován do souboru a konzultován později.
Můžete začít s jednoduchými pravidly a používání Ansible bude s růstem v Linuxu zajímavější a vaše infrastruktura se zvětší. Jako takový dokáže mnohem více než PowerShell.
Jako příklad, velmi jednoduchá příručka k upgradu linuxových serverů, kterou jsem napsal:
---
- hosts: all
become: yes
gather_facts: False
tasks:
- name: updates a server
apt: update_cache=yes
- name: upgrade a server
apt: upgrade=full
Má také mnoho definovaných modulů, které vám umožní snadno psát komplexní zásady.
Index modulu – Ansible Documentation
Má také zajímavý oficiální hub/"sociální" síť úložišť pro vyhledávání již přijatých politik komunitou. Galaxie Ansible
Ansible je také široce používán a v githubu najdete spoustu projektů, jako je tento od mě pro nastavení FreeRadius.
Zatímco Ansible je bezplatný open source framework, má také placené rozhraní webového panelu, Ansible Tower, ačkoli licencování je poměrně drahé.
Nyní, poté, co jej RedHat koupil, má tower také open source verzi známou jako AWX.
Jako bonus je Ansible také schopen spravovat servery Windows, i když jsem ho k tomu nikdy nepoužil.
Je také schopen spravovat síťová zařízení (směrovače, přepínače a firewall), což z něj dělá velmi zajímavé řešení pro automatizaci na klíč.
Jak nainstalovat Ansible
Rundeck
Opět, pro vzdálený rámec, který se snadněji používá, ale ne tak účinný jako Ansible, doporučuji Rundeck.
Jedná se o velmi výkonné grafické rozhraní pro více uživatelů/přihlášení, kde můžete automatizovat většinu svých běžných každodenních úkolů a dokonce poskytovat zmírněné pohledy sysopům nebo pracovníkům helpdesku.
Při spouštění příkazů vám také poskytuje okna s výstupem rozděleným podle serveru/úlohy.
Může bez problémů spouštět více úloh na pozadí a umožňuje vám zobrazit zprávu a výstup později.
Jak nainstalovat RunDeck
Upozorňujeme, že existují lidé, kteří používají Ansible+RunDeck jako webové rozhraní; ne všechny případy jsou pro to vhodné.
Je také samozřejmé, že používání Ansible a/nebo RunDeck lze vykládat jako formu nebo část dokumentace infrastruktury a časem umožňuje replikovat a vylepšovat akce/recepty/příručky.
A konečně, když mluvíme o centrálním příkazovém serveru, vytvořil bych jeden přímo pro tento úkol. Ve skutečnosti je technický termín skokový box. „Jump boxy“ zlepšují zabezpečení, pokud je správně nastavíte.
Pokud to chcete udělat interaktivně, můžete použít terminator
který umožňuje vysílat příkaz do více terminálů.
Viz:Jak spustím stejný linuxový příkaz na více než jedné kartě/shellu současně?
Můžete také použít pssh
(nebo parallel-ssh
), což je klient SSH, který se připojuje k seznamu hostitelů a provádí příkaz na všech hostitelích paralelně:
$ parallel-ssh -i -H "host1 host2" uname -a
[1] 11:37:12 [SUCCESS] host2
Linux host2 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[2] 11:37:12 [SUCCESS] host1
Linux host1 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux