GNU/Linux >> Znalost Linux >  >> Linux

Ansible Guide:Příkaz Ad-Hoc

Příkaz Ad-Hoc je jednořádkový ansible příkaz, který provádí jeden úkol na cílovém hostiteli. Umožňuje provádět jednoduchou jednořádkovou úlohu proti jednomu nebo skupině hostitelů definovaných v konfiguraci souboru inventáře. Příkaz Ad-Hoc bude mít pouze dva parametry, skupinu hostitele, kterého chcete provést, a modul Ansible, který se má spustit.

Příkaz Ad-Hoc vám dává větší výhodu pro zkoumání samotného ansible. Můžete provádět úkoly, aniž byste museli nejprve vytvořit playbook, jako je restartování serverů, správa služeb, úprava konfigurace linky, kopírování souboru pouze na jednoho hostitele, instalace pouze jednoho balíčku.

V tomto tutoriálu ukážu základní použití příkazu Ansible Ad-Hoc. Příkaz Ad-Hoc budu používat k provádění jednoduchých úkolů, které můžete jako správce systému potřebovat každý den.

Předpoklady

V této příručce budeme používat dva servery Ubuntu 18.04 LTS, Bionic Beaver. Ansible server získá název hostitele 'ansible-node' s IP adresou 10.5.5.20 a Provision server s názvem hostitele 'provision' a IP adresou 10.5.5.21.

Co uděláme?

  1. Základní ad-hoc příkaz
  2. Přenos souborů
  3. Aktualizovat a upgradovat
  4. Spravovat balíček
  5. Správa služeb
  6. Kontrola systému

Základní použití ad-hoc příkazů

Nejprve se naučíme základní použití Ansible Ad-Hoc pro správu serverů. Naučíme se základní příkaz Ansible Ad-Hoc, použití příkazu Ad-Hoc s ověřením hesla ssh, eskalaci oprávnění a použití příkazu Ad-Hoc proti skupině hostitelů.

1. Základní příkaz

Základní příkaz ansible ad-hoc proti „všem“ hostitelům v souboru inventáře a pomocí modulu „ping“.

ansible all -m ping
  • První parametr 'all' pro všechny hostitele v souboru inventáře.
  • Druhý parametr uvnitř možnosti '-m' pro modul, spouští modul ping.

Nyní získáte výsledek, jak je uvedeno níže.

Příkaz Ad-Hoc proti prováděcímu serveru byl „ÚSPĚŠNÝ“, aniž by na serveru byly provedeny jakékoli změny, a my dostáváme výsledek modulu „ping“ z prováděcího serveru „pong“.

2. Filtrovat skupinu hostitelů a jednoho hostitele

Nyní můžete použít příkaz Ad-Hoc proti skupině hostitelů, kteří jsou již definováni v souboru inventáře. Můžete použít svůj vlastní soubor inventáře nebo použít výchozí soubor inventáře '/etc/ansible/hosts'.

Níže je uveden příklad spuštění ad-hoc příkazu proti skupině hostitelů s názvem 'hakase-testing', kteří jsou již definováni ve výchozím konfiguračním souboru inventáře.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"

Pokud používáte vlastní soubor inventáře, přidejte za názvem souboru inventáře možnost „-i“.

ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"

Dostanete stejný výsledek.

Pokud nyní chcete v konfiguraci inventáře běžet proti jednomu hostiteli, můžete použít název hostitele, jak je uvedeno níže.

ansible provision -m setup -a "filter=ansible_distribution*"

A příkaz ad-hoc bude spuštěn pouze na serveru 'provision'.

3. Pomocí hesla SSH

Nyní provedeme příkaz Ad-Hoc pomocí výzvy k ověření hesla ssh. A abyste to mohli udělat, musíte nainstalovat další balíček s názvem 'sshpass' na 'ansible-node'.

Nainstalujte balíček sshpass pomocí příkazu apt níže.

sudo apt install sshpass -y

Nyní spusťte ad-hoc příkaz a na konec přidejte možnost '--ask-pass'.

ansible hakase-testing -m ping --ask-pass

A budete požádáni o 'Heslo SSH' pro server.

Zadejte své heslo ssh a příkaz ad-hoc bude spuštěn na serveru.

4. Eskalace oprávnění

Ansible poskytuje funkce pro eskalaci oprávnění vůči serverům. Pokud chcete spustit příkaz ad-hoc jako uživatel bez oprávnění root, můžete použít volbu '--become' pro získání oprávnění root a volbu '-K' pro vyžádání hesla.

Spusťte ad-hoc příkaz 'fdisk -l' jako uživatel 'hakase' s možností oprávnění '--become' a '-K', aby se zobrazilo 'SUDO Password'.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

Níže je výsledek.

Přenos souborů

Nyní použijeme příkaz Ad-Hoc pro přenos souborů na server a ze serveru. Můžeme přenést soubor na zajišťovací server pomocí modulu 'copy' a stáhnout soubor ze serveru pomocí modulu 'fetch'.

1. Nahrát soubor na hostitele

V tomto příkladu spustíme příkaz ad-hoc a pomocí modulu 'copy' nahrajeme konfiguraci sudoers pro uživatele hakase do adresáře '/etc/sudoers.d' ve skupině 'hakase-testing'.

Spusťte níže uvedený ad-hoc příkaz.

ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K

Nyní budete požádáni o „Heslo SUDO“ pro uživatele hakase. Zadejte heslo a získáte výsledek, jak je uvedeno níže.

Soubor byl nahrán do cílového adresáře 'dest' a vy dostanete 'změněný' výsledek jako 'true'.

2. Stáhnout soubor z hostitele

Nyní použijeme ad-hoc příkaz s modulem 'fetch' pro stažení souboru z prováděcího serveru na místní server 'ansible-node'.

Stáhněte si konfigurační soubor '/etc/sudoers.d/hakase' ze serveru 'provision' do místního adresáře s názvem 'backup'.

ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'

A získáte soubor s názvem 'hakase-sudoers' v adresáři 'backup'.

Krok 3 – Aktualizace úložiště a balíčků upgradů

Chcete-li aktualizovat a upgradovat úložiště serverů Ubuntu, můžeme použít příkaz ad-hoc s modulem apt.

Aktualizujte úložiště na skupinovém hakase-testing.

ansible hakase-testing -m apt -a 'update_cache=yes' --become

Nyní aktualizujte úložiště a upgradujte všechny balíčky na nejnovější verzi pomocí možnosti 'upgrade=dist'.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Počkej na všechny balíčky se aktualizují.

Správa balíčků

To je velmi užitečné, když se snažíte sestavit a odladit vlastní playbook. Protože někdy je potřeba do systému nainstalovat další balíček. Tento ad-hoc příkaz vám tedy poskytne snadný způsob instalace balíčku bez přihlášení ke každému serveru.

1. Nainstalujte balíček

Nainstalujte jeden balíček pomocí příkazu ad-hoc s modulem apt, jak je uvedeno níže.

ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Odebrat balíček

Odstraňte balíček a vyčistěte veškerou konfiguraci související s balíčkem.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Automatické odstranění

Níže uvedený příklad je odstranění balíčku nginx a vyčištění všech souvisejících s konfigurací a poté odstranění všech nepoužívaných balíčků v systému.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Správa služeb

V tomto kroku použijeme servisní modul na příkazu ad-hoc pro správu systémové služby na zřizovacím serveru.

1. Spusťte služby

Spusťte službu nginx a přidejte ji do času spouštění.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Získáte „změněno“ a „povoleno“ výsledek jako „pravda“.

2. Restartujte službu

Pokud chcete službu restartovat, můžete použít následující příkaz.

ansible hakase-testing -m service -a 'name=nginx state=restarted' --become

Služba nginx byla restartována.

3. Zastavte službu

Chcete-li službu zastavit, změňte hodnotu 'stav' na 'zastaveno'.

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

Služba nginx na serverech 'hakase-testing' byla zastavena.

Kontrola systému

Nyní použijeme modul 'shell' uvnitř příkazu ad-hoc. A budeme provádět jednoduché monitorování systému pomocí jednoduchého linuxového příkazu prostřednictvím Ansible ad-hoc.

Nejprve nainstalujte balíček 'sysstat' na všechny servery pomocí ad-hoc příkazu níže.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Počkejte na instalaci balíčku 'sysstat'.

Po dokončení jste připraveni zkontrolovat všechny servery.

1. Disk je k dispozici

Zkontrolujte disk dostupný v kořenovém oddílu pomocí příkazu fdisk.

ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become

Změňte '/dev/sda2' svou vlastní cestou.

2. Využití paměti RAM

Nyní zkontrolujte využití paměti RAM na všech serverech pomocí příkazu 'free -m'.

ansible hakase-testing -m shell -a 'free -m' --become

A zobrazí se vám výsledek, jak je uvedeno níže.

3. Využití CPU

Kontrola využití CPU všech serverů pomocí příkazu mpstat.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

Příkaz mpstat je součástí balíčku 'sysstat'.

4. Otevřete Porty

Kontrola otevřených portů na všech systémech pomocí netstat pomocí příkazu ad-hoc.

ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Doba provozu

Nyní zkontrolujte dobu provozuschopnosti každého serveru.

ansible hakase-testing -m shell -a 'uptime' --become

Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Zvládněte příkaz Linux ls

  3. Praktický pohled na příkaz xargs

  1. Úvod do příkazu alternatives v Linuxu

  2. Jak používat příkaz basename?

  3. Vyhledejte příkaz v Linuxu

  1. Úvod do příkazu diff

  2. Příkaz „eval“ v Bash?

  3. Průvodce linuxovým příkazem „Najít“.