Mahdollisten hallittujen solmujen määrittäminen ja ad-hoc-komentojen suorittaminen - osa 3


Tämän Mahdollisen ohjaussolmun määrittäminen kahdessa edellisessä artikkelissa. Tässä osassa 3 osoitamme, kuinka voit määrittää Ansible-hallitut solmut suorittamaan ad-hoc-komentoja etäisäntäkoneilla.

Asenna salasanaton SSH-todennus mahdollisiin hallittuihin solmuihin

Viimeisenä aiheena on, että etäisäntien hallinta Ansible-ohjelmalla edellyttää salasanattoman SSH-todennuksen määrittämistä Ansible-ohjaussolmun ja hallittujen isäntien välillä. Tähän sisältyy avainparin (julkisen ja yksityisen SSH-avainparin) luominen Ansible Control -solmussa ja julkisen avaimen kopioiminen kaikkiin etäisäntiin. Tämä on ratkaiseva askel eteenpäin ja tekee työstäsi paljon helpompaa.

Määritä hallittujen solmujen käyttöoikeuksien laajennus

Kun kirjaudut sisään tavallisena käyttäjänä, sinua saatetaan joutua suorittamaan tiettyjä tehtäviä hallituille solmuille, jotka vaativat korkeammat käyttöoikeudet tai pääkäyttäjän oikeudet. Näihin tehtäviin kuuluu pakettien hallinta, uusien käyttäjien ja ryhmien lisääminen sekä järjestelmän kokoonpanojen muokkaaminen mainitsemaan vain muutama. Tämän saavuttamiseksi sinun on käytettävä tiettyjä pelikirjan direktiivejä, jotta tehtävät voidaan suorittaa etuoikeutettuna käyttäjänä etäisäntäkoneissa.

Ansible antaa sinun 'tulla' toiseksi hallitun solmun käyttäjäksi, joka eroaa tällä hetkellä kirjautuneesta. tullut: kyllä -direktiivi nostaa käyttöoikeuksiasi ja antaa sinun suorittaa tehtäviä, jotka edellyttävät pääkäyttöoikeuksia, kuten asennusta ja asennusta. päivittämällä paketteja ja käynnistämällä järjestelmä uudelleen.

Harkitse soittokirjaa httpd.yml , joka asentaa ja käynnistää Apache-verkkopalvelimen kuvan osoittamalla tavalla:

---
- name: install and start Apache webserver
  hosts: webservers

  tasks:
       - name: install httpd
         yum: name=httpd  state=latest
         become: yes
       - name: check httpd status
         service: name=httpd state=started

Direktiivin tapti: kyllä avulla voit suorittaa komennot pääkäyttäjänä etäisännässä.

Toinen direktiivi, jonka avulla voit tulla toiseksi käyttäjäksi, on tapti_käyttäjä. Tämän avulla voit vaihtaa sudo-käyttäjään etäisännässä kirjautumisen yhteydessä eikä käyttäjään, jolla kirjaudut sisään.

Esimerkiksi komennon suorittamiseksi tecmint-käyttäjänä etäkäyttäjällä käytä direktiiviä kuvan mukaisesti.

- name: Run a command as the apache user
  command: somecommand
  become: yes
  become_user: tecmint

Tämä direktiivi ohittaa oletusmenetelmän, joka on asetettu ansible.cfg-tiedostoon, joka on yleensä asetettu sudoksi.

Näitä käytetään peli- tai tehtävätasolla, esimerkiksi kun sinun on vaihdettava käyttäjään, kun kuoren asetus on nologin.

Esimerkiksi,

- name: Run a command as nobody
  command: somecommand
  become: true
  become_method: su
  become_user: nobody
  become_flags: '-s /bin/sh'

Komentorivivalinnat etuoikeuden laajennuksessa

Tarkastellaan joitain komentorivivaihtoehtoja, joita voit käyttää oikeuksien korottamiseen komentoja suoritettaessa:

  • --ask-tapti-pass , -K - Tämä pyytää sinua etsimäsi sudo-käyttäjän salasanalle, jota yrität muodostaa.

$ ansible-playbook myplaybook.yml --ask-become-pass

  • --become , -b - Tämän avulla voit suorittaa tehtävän pääkäyttäjänä pyytämättä salasanaa.

$ ansible-playbook myplaybook.yml --become 

  • --become-user = BECOME_USER - Sen avulla voit suorittaa tehtäviä toisena käyttäjänä.

$ ansible-playbook myplaybook.yml --become-user=tecmint

Vahvista toimiva kokoonpano Ad-Hoc Ansible -komennoilla

Joskus saatat haluta suorittaa nopeita ja yksinkertaisia tehtäviä Ansible-etäkoneilla tai -palvelimilla ilman, että sinun tarvitsee välttämättä luoda soittokirjaa. Siinä tapauksessa sinun on suoritettava ad-hoc-komento.

Mahdollinen ad-hoc-komento on yksirivinen komento, joka auttaa sinua suorittamaan yksinkertaisia tehtäviä yksinkertaisella mutta tehokkaalla tavalla ilman, että sinun tarvitsee luoda soittokirjoja. Tällaisia tehtäviä ovat tiedostojen kopioiminen isäntien välillä, palvelimien uudelleenkäynnistys, käyttäjien lisääminen ja poistaminen sekä yhden paketin asentaminen.

Tässä opetusohjelmassa tutkitaan Ansible Ad-Hoc -komentojen erilaisia sovelluksia. Aiomme käyttää alla olevaa varastotiedostoa esittelyyn.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

Ansible-Adhoc-komentojen peruskäyttö on isännän tai isäntäryhmän pingointi.

# ansible -m ping all

Yllä olevassa komennossa parametri -m on moduulivaihtoehto. Ping on adhoc-komento ja toinen parametri edustaa kaikkia varastotiedoston isäntiä. Komennon lähtö on esitetty alla:

Jos haluat pingata tiettyä isäntäryhmää, korvaa kaikki parametri ryhmän nimellä. Seuraavassa esimerkissä testataan verkkoyhteyksien ylläpitoa verkkopalvelinryhmän alla.

# ansible -m ping webservers

Lisäksi voit määrittää -a -attribuutin avulla säännölliset Linux-komennot lainausmerkeissä. Voit esimerkiksi tarkistaa etäjärjestelmien järjestelmän käyttöajan suorittamalla:

# ansible -a "uptime" all

Voit tarkistaa etäkoneiden levyn käytön.

# ansible -a "df -Th" all

Adhoc-komennolla voi käyttää satoja satoja moduuleja. Voit tarkastella koko moduuliluetteloa ja kuvauksia suorittamalla alla olevan komennon.

# ansible-doc -l

Voit tarkastella tietyn moduulin yksityiskohtaisia tietoja suorittamalla komennon.

# ansible-doc module_name

Esimerkiksi, jos haluat etsiä lisätietoja yum-moduulin ajamisesta:

# ansible-doc yum

Mahdollisia adhoc-komentoja voidaan käyttää pakettien asentamiseen ja poistamiseen yum- ja apt-pakettien hallinnan avulla.

Asenna Apache-verkkopalvelin CentOS 7 -isäntään verkkopalvelimet-ryhmään varastotiedostossa suorittamalla komento:

# ansible webservers -m yum -a "name=httpd  state=present"

Varmista Apache-verkkopalvelimen asennus kirjautumalla etäasiakkaaseen ja suorittamalla.

# rpm -qa | grep httpd

Apache voidaan poistaa yksinkertaisesti vaihtamalla tila nykyisestä poissaolevaksi.

# ansible webservers -m yum -a "name=httpd  state=absent"

Jälleen vahvistaaksesi httpd-ajon poistamisen.

# rpm -qa | grep httpd

Kuten havaittiin, Apache-verkkopalvelinpaketit on puhdistettu.

Käyttäjiä luodessa käyttäjä-moduuli on kätevä. Luo uusi käyttäjä james, jolla on salasanan redhat asiakasjärjestelmään database_server, antamalla komento.

# ansible database_server -m user -a "name=james password=redhat"

Vahvista uuden käyttäjän luominen suorittamalla komento:

# ansible database_servers -a "id james"

Poista käyttäjä suorittamalla komento:

# ansible database_servers -m user -a "name=james state=absent"

Jos käytät Ansiblea tavallisena käyttäjänä, Ansible tarjoaa etuoikeuden eskalaation etäisäntiä käyttämällä --become -vaihtoehtoa saadakseen pääkäyttäjän oikeudet ja -k kysyäksesi salasanaa.

Esimerkiksi jos haluat suorittaa Ansible adhoc -komennon 'netstat -pnltu' etuoikeutetulla vaihtoehdolla - -become ja vaihtoehdolla -K , pyydä pääkäyttäjän salasanaa suorittamaan komento .

$ ansible webservers -m shell -a 'netstat -pnltu' --become -K

Jos haluat tulla muuksi käyttäjäksi kuin root, käytä --become-user -attribuuttia.

Esimerkiksi 'df -Th' suoritetaan tecmint-käyttäjänä etäisäntänä ja kehotetaan suorittamaan salasana:

$ ansible all -m shell -a 'df -Th' --become-user tecmint -K

Faktat viittaavat järjestelmää koskeviin yksityiskohtaisiin tietoihin. Tämä sisältää tietoja IP-osoitteesta, järjestelmäarkkitehtuurista, muistista ja suorittimesta mainitsemalla muutamia.

Voit hakea tietoja etäisäntäkoneista suorittamalla komento:

$ ansible all -m setup 

Ansible käyttää moduulikopiota tiedostojen turvalliseen kopiointiin Ansible-ohjaimesta useisiin etäisäntiin.

Alla on esimerkki kopiointitoiminnosta:

# ansible webservers -m copy -a "src=/var/log/secure dest=/tmp/"

Komento kopioi Ansible Control -solmun/var/log/secure-tiedoston/tmp-kohde-palvelinryhmän etäisäntiin.

Tiedostomoduulin avulla voit muuttaa käyttöoikeuksia ja tiedoston omistajuutta.

# ansible webservers -m file -a "dest=/tmp/secure mode=600"

Lisäksi voit liittää omistajan ja ryhmän argumentit kuvan osoittamalla tavalla:

# ansible webservers -m file -a "dest=/tmp/secure mode=600 owner=tecmint group=tecmint"

Voit myös luoda hakemistoja samalla tavalla kuin mkdir -p , kuten kuvassa.

$ ansible webservers -m file -a "dest=/path/to/directory mode=755 owner=tecmint group=tecmint state=directory"

Esimerkiksi,

$ ansible webservers -m file -a "dest=/home/tecmint/data mode=755 owner=tecmint group=tecmint state=directory"

Tässä artikkelissa kerrotaan, kuinka voit määrittää hallitut solmut suorittamaan Ansible ad-hoc -komentoja etäisäntien hallitsemiseksi. Toivomme, että pidit siitä hyödyllisenä. Anna sille laukaus ja kerro meille, kuinka meni.