![Linux Twitter aplikácia „Turpial“ pridáva nahrávanie obrázkov, vylepšenia rozhrania a ďalšie](/f/c3e6fa0254df4e302044bc1ab7276659.jpg?width=100&height=100)
V predchádzajúcich dvoch článkoch tohto Séria Ansible, vysvetlili sme Základné komponenty hry Ansible a Nastavenie možného riadiaceho uzla. V tejto časti 3 ukážeme, ako môžete nakonfigurovať riadené uzly Ansible na spúšťanie príkazov ad-hoc na vzdialených hostiteľoch.
Ako rekapituláciu našej poslednej témy vyžaduje správa vzdialených hostiteľov pomocou Ansible nastavenie Autentifikácia SSH bez hesla medzi uzlom riadenia Ansible a riadenými hostiteľmi. Zahŕňa to generovanie páru kľúčov (verejný a súkromný pár kľúčov SSH) v uzle Ansible Control a kopírovanie verejného kľúča do všetkých vzdialených hostiteľov. Bude to zásadný krok vpred a výrazne vám uľahčí prácu.
Keď ste prihlásení ako bežný používateľ, môže sa stať, že budete musieť vykonávať určité úlohy na spravovaných uzloch, ktoré vyžadujú zvýšené oprávnenia alebo oprávnenia root. Tieto úlohy zahŕňajú správu balíkov, pridávanie nových používateľov a skupín a úpravu konfigurácií systému, aby sme spomenuli iba niektoré. Aby ste to dosiahli, musíte v príručke vyvolať určité smernice, aby ste mohli úlohy vykonávať ako privilegovaný používateľ na vzdialených hostiteľoch.
Ansible vám to umožňuje 'stať sa' iný používateľ v spravovanom uzle odlišný od toho, ktorý je aktuálne prihlásený. The stať sa: áno
direktíva zvyšuje vaše oprávnenia a umožňuje vám vykonávať úlohy, ktoré vyžadujú oprávnenia root, ako je inštalácia a aktualizácia balíkov a reštart systému.
Uvažujte o hernej knižke httpd.yml
ktorý nainštaluje a spustí webový server Apache, ako je znázornené na obrázku:
- názov: nainštalujte a spustite hostiteľa webového servera Apache: úlohy webových serverov: - názov: nainštalujte httpd yum: name = stav httpd = najnovší stať sa: áno - názov: skontrolujte stavovú službu httpd: názov = stav httpd = spustený.
The stať sa: áno
smernica vám umožňuje vykonávať príkazy ako užívateľ root na vzdialenom hostiteľovi.
Ďalšou smernicou, ktorou sa môžete stať iným používateľom, je stať sa_užívateľom. To vám umožní po prihlásení prepnúť na sudo na vzdialenom hostiteľovi, a nie na používateľa, pod ktorým sa prihlasujete.
Napríklad spustite príkaz ako tecmint používateľ na diaľku používa smernicu podľa obrázku.
- meno: Spustite príkaz ako užívateľský príkaz apache: príkaz sa stane: áno stať sa_užívateľom: tecmint
Táto smernica prepíše predvolenú metódu nastavenú v ansible.cfg súbor, ktorý je zvyčajne nastavený na sudo.
Používajú sa na úrovni hry alebo úlohy, napríklad keď potrebujete prepnúť na používateľa, keď je shell nastavený na nologin.
Napríklad,
- názov: Spustite príkaz ako nikto: príkaz sa stane: true sa stane_metódou: stane sa_užívateľom: nikto sa nestane_ vlajkami: '-s /bin /sh'
Pozrime sa na niektoré možnosti príkazového riadka, ktoré môžete použiť na zvýšenie svojich oprávnení pri spúšťaní príkazov:
--požiadajte sa
, -K
- Zobrazí sa výzva na zadanie hesla používateľa sudo vo vzdialenom systéme, ktorý sa pokúšate pripojiť.$ ansible-playbook myplaybook.yml --ask-become-pass.
--stať sa
, -b
- To vám umožní spustiť úlohu ako užívateľ root bez vyzvania na zadanie hesla.$ ansible-playbook myplaybook.yml-vitajte
-become-user = BECOME_USER
- Umožňuje vám vykonávať úlohy ako iný používateľ.$ ansible-playbook myplaybook.yml-become-user = tecmint.
Niekedy možno budete chcieť vykonávať rýchle a jednoduché úlohy na vzdialených hostiteľoch alebo serveroch v Ansible bez toho, aby ste museli nevyhnutne vytvárať príručku. V takom prípade budete potrebovať spustenie súboru ad-hoc príkaz.
Ansible príkaz ad-hoc je jednoriadkový príkaz, ktorý vám pomôže vykonávať jednoduché úlohy jednoduchým, ale efektívnym spôsobom bez toho, aby ste museli vytvárať herné zošity. Medzi tieto úlohy patrí kopírovanie súborov medzi hostiteľmi, reštartovanie serverov, pridávanie a odstraňovanie používateľov a inštalácia jedného balíka.
V tomto tutoriáli skúmame rôzne aplikácie príkazov Ansible Ad-Hoc. Ideme použiť súpisový súbor nižšie na ukážku.
[webové servery] 173.82.115.165 [server_serverov] 173.82.202.239.
Najzákladnejšie použitie príkazov Ansible-Adhoc je pingovanie hostiteľa alebo skupiny hostiteľov.
# ansible -m ping all.
Vo vyššie uvedenom príkaze sa -m
parameter je možnosť modulu. Ping je príkaz adhoc a druhý parameter predstavuje všetkých hostiteľov v súbore inventára. Výstup príkazu je uvedený nižšie:
Ak chcete ping, konkrétnu skupinu hostiteľov, nahraďte „Všetko“ parameter s názvom skupiny. V nižšie uvedenom príklade testujeme konektivitu s hostiteľmi v skupine webových serverov.
# ansible -m ping webové servery.
Okrem toho môžete použiť -a
atribút na zadanie bežných príkazov Linuxu v dvojitých úvodzovkách. Ak chcete napríklad skontrolovať prevádzkyschopnosť systému vzdialených systémov, spustite:
# ansible -a „uptime“ all.
Ak chcete skontrolovať využitie disku vzdialených hostiteľov, spustite ho.
# ansible -a "df -Th" všetko.
Existujú stovky a stovky modulov, ktoré môžete použiť s príkazom Adhoc. Ak chcete zobraziť celý zoznam modulov s ich popismi, spustite príkaz nižšie.
# ansible -doc -l.
Ak chcete zobraziť podrobné informácie o konkrétnom module, spustite príkaz.
# ansible-doc názov_modulu.
Ak chcete napríklad vyhľadať ďalšie podrobnosti o súboroch modul yum beh:
# ansible-doc mňam.
Prípadné príkazy adhoc je možné použiť na inštaláciu a odstraňovanie balíkov pomocou mňam a výstižný správcovia balíkov.
Ak chcete nainštalovať webový server Apache na server CentOS 7 hostiteľ v skupine webových serverov v súbore inventára spustite príkaz:
# ansible webservers -m yum -a "name = httpd state = present"
Ak chcete overiť inštaláciu webového servera Apache, prihláste sa do vzdialeného klienta a spustite ho.
# ot / min -qa | grep httpd.
Ak chcete odinštalovať Apache, jednoducho zmeňte stav z prítomný do neprítomný.
# ansible webservers -m yum -a "name = stav httpd = neprítomný"
Opäť na potvrdenie odstránenia spusteného súboru httpd.
# ot / min -qa | grep httpd.
Ako bolo uvedené, balíky webového servera Apache boli vyčistené.
Pri vytváraní používateľov „používateľ„Modul príde vhod. Vytvoriť nového používateľa James s heslom červený klobúk na serverovom serveri database_server, zadajte príkaz.
# ansible database_server -m užívateľ -a "meno = james heslo = redhat"
Na potvrdenie vytvorenia nového používateľa spustite príkaz:
# ansible database_servers -a "id james"
Ak chcete používateľa odstrániť, spustite príkaz:
# ansible database_servers -m user -a "name = james state = absent"
Ak používate Ansible ako bežný používateľ, Ansible poskytuje eskaláciu privilégií vo vzdialených hostiteľoch pomocou --stať sa
možnosť získať oprávnenia root a -k
vyzvať na zadanie hesla.
Ak napríklad chcete spustiť príkaz Ansible adhoc „netstat -pnltu„S privilegovanou možnosťou --stať sa
a možnosť -K
zobrazí výzvu na zadanie hesla používateľa root na spustenie príkazu.
$ ansible webservers -m shell -a 'netstat -pnltu' -staňte sa -K.
Ak sa chcete stať iným používateľom ako root, použite -stať sa používateľom
atribút.
Napríklad spustiť „df -Th‘Ako tecmint používateľa na vzdialených hostiteľoch a zobrazí výzvu na spustenie hesla:
$ ansible all -m shell -a 'df -Th' --sa stane užívateľským tecmint -K.
Fakty pozrite si podrobné informácie o systéme. To zahŕňa informácie o adrese IP, architektúre systému, pamäti a procesore.
Ak chcete získať informácie o vzdialených hostiteľoch, spustite príkaz:
$ ansible all -m nastavenie
Ansible používa modul kopírovať na bezpečné kopírovanie súborov z ovládacieho prvku Ansible do viacerých vzdialených hostiteľov.
Nasleduje príklad operácie kopírovania:
# ansible webservers -m copy -a "src =/var/log/secure dest =/tmp/"
Príkaz skopíruje súbor /var/log/secure súbor v uzle Ansible Control vzdialeným hostiteľom v skupine webových serverov v /tmp destinácia.
Môžete použiť súborový modul zmeniť povolenia a vlastníctvo súboru.
# ansible webservers -m file -a "dest =/tmp/secure mode = 600"
Okrem toho môžete pripojiť argumenty vlastníka a skupiny podľa obrázku:
# ansible webservers -m file -a "dest =/tmp/secure mode = 600 owner = tecmint group = tecmint"
Môžete tiež vytvoriť adresáre podobným spôsobom ako mkdir -p
ako je znázornené.
$ ansible webservers -m súbor -a "dest =/cesta/do/adresárový režim = 755 vlastník = skupina tecmint = stav tecmint = adresár"
Napríklad,
$ ansible webservers -m súbor -a "dest =/home/tecmint/dátový režim = 755 vlastník = skupina tecmint = stav tecmint = adresár"
V tomto článku sme si posvietili na to, ako môžete nakonfigurovať spravované uzly na spúšťanie príkazov Ansible ad-hoc na správu vzdialených hostiteľov. Dúfame, že vám to pomohlo. Skúste to a dajte nám vedieť, ako to dopadlo.