Pocházím z administrace Windows a chci se ponořit hlouběji do Linuxu (Debianu).
Jedna z mých palčivých otázek, na kterou jsem při hledání na webu nedokázal odpovědět (nenašel jsem ji), je:jak mohu dosáhnout tzv. -to-many” vzdálená komunikace jako v PowerShell pro Windows?
Abych to rozebral na základy, řekl bych:
Můj názor na Linux:
- Mohu ssh na server a zadat svůj příkaz
- Dostal jsem výsledek. Pro prostředí 10 serverů bych musel napsat (perl/python?) skript posílající příkaz pro každý z nich?
Moje zkušenost z Windows:
-
Napíšu svůj příkaz a pomocí „invoke-command“ jej mohu „poslat“ na spoustu serverů (možná z textového souboru), aby se provedly současně a získaly výsledek zpět (jako objekt pro další práci).
-
Mohu dokonce vytvořit více relací, připojení je drženo na pozadí a selektivně do těchto relací posílat příkazy a vzdáleně se připojovat a odcházet, jak potřebuji.
(Slyšel jsem o kuchaři, loutce atd. Je to něco takového?)
Update 2019:
Poté, co jsem toho hodně zkusil, navrhuji Rex (viz tento komentář níže) – snadné nastavení (ve skutečnosti to potřebuje pouze ssh, nic jiného) a použití (pokud jen trochu znáte perl je to ještě lepší, ale je to volitelné)
S Rex(ify) můžete provést adhoc a posuňte jej ke skutečné správě konfigurace (…to znamená:je to CM na prvním místě, ale je vhodné i pro adhoc úkoly)
Webové stránky jsou zastaralé, ale v současné době (k 01/2019) jsou v aktivním vývoji a IRC kanál je také aktivní .
S novým openssh systému Windows existuje ještě více možností
můžete zkusit:rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'
Přijatá odpověď:
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íkovi 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 jsou XTerm
a SSH. Jako takový poběží téměř na jakémkoli operačním systému kompatibilním s POSIX, kde
existují knihovny – spouštěl jsem to na Linuxu, Solaris a Mac OS X.
vyžaduje knihovny Perl Tk ( perl-tk na Debianu nebo Ubuntu) a
X11::Protocol (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 seznamu 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.
Související:Jak zhustit podadresáře?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 můj 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é.
V současnosti, 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 snáze používá, ale není tak účinný jako Ansible, doporučuji Rundeck.
Je to velmi výkonné grafické rozhraní pro více uživatelů/přihlašování, kde můžete automatizovat většinu svých běžných každodenních úkolů a dokonce poskytovat sysopům nebo pracovníkům helpdesku omezené pohledy.
Při spouštění příkazů vám také zobrazí 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 nastavíte správně.