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.
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.