Jinsi ya Kusanidi Nodi Zinazodhibitiwa na Tekeleza Amri za dharula - Sehemu ya 3


Katika nakala mbili zilizopita za Kuweka Njia Inayofaa ya Kudhibiti. Katika sehemu hii ya 3, tutaonyesha jinsi unavyoweza kusanidi nodi zinazodhibitiwa za Ansible ili kutekeleza maagizo ya ad-hoc kwenye seva pangishi za mbali.

Sanidi Uthibitishaji wa SSH Isiyo na Nenosiri kwa Nodi Zinazodhibitiwa

Kama muhtasari wa mada yetu ya mwisho, kudhibiti seva pangishi za mbali na Ansible kunahitaji kusanidi uthibitishaji wa SSH Isiyo na Nenosiri kati ya nodi ya udhibiti Inayowezekana na seva pangishi zinazodhibitiwa. Hii inahusisha uundaji wa jozi muhimu (Jozi ya vitufe vya SSH vya Umma na Binafsi) kwenye nodi ya Udhibiti Unayostahili na kunakili kitufe cha Umma kwa seva pangishi zote za mbali. Hii itakuwa hatua muhimu kwenda mbele na itafanya kazi yako iwe rahisi zaidi.

Sanidi Ukuzaji wa Haki kwenye Nodi Zinazosimamiwa

Unapoingia kama mtumiaji wa kawaida, unaweza kuhitajika kufanya kazi fulani kwenye nodi zinazodhibitiwa ambazo zinahitaji mapendeleo ya juu au mapendeleo ya mizizi. Majukumu haya ni pamoja na usimamizi wa kifurushi, kuongeza watumiaji na vikundi wapya, na kurekebisha usanidi wa mfumo ili kutaja machache tu. Ili kufanikisha hili, unahitaji kuomba maagizo fulani kwenye kitabu cha kucheza ili kutekeleza majukumu kama mtumiaji aliyebahatika kwenye seva pangishi za mbali.

Ansible hukuruhusu 'kuwa' mtumiaji mwingine kwenye nodi inayodhibitiwa tofauti na ile iliyoingia kwa sasa. Maagizo ya kuwa:ndio huinua mapendeleo yako na hukuruhusu kutekeleza majukumu ambayo yanahitaji upendeleo wa mizizi kama vile kusakinisha na. kusasisha vifurushi na kuanzisha upya mfumo.

Zingatia kitabu cha kucheza httpd.yml ambacho husakinisha na kuanzisha Apache webserver kama inavyoonyeshwa:

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

Maagizo ya kuwa: ndio hukuruhusu kutekeleza amri kama mtumiaji wa mizizi kwenye seva pangishi ya mbali.

Maagizo mengine ambayo unaweza kutumia kuwa mtumiaji mwingine ni kuwa_mtumiaji. Hii hukuruhusu kubadili kwa mtumiaji wa sudo kwenye seva pangishi ya mbali unapoingia na sio mtumiaji unayeingia kama.

Kwa mfano, ili kuendesha amri kama mtumiaji wa tecmint kwenye kidhibiti cha mbali tumia maagizo kama inavyoonyeshwa.

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

Maagizo haya yatabatilisha njia chaguo-msingi iliyowekwa katika faili ya ansible.cfg ambayo kwa kawaida huwekwa kuwa sudo.

Hizi hutumika katika kiwango cha kucheza au kazi, kwa mfano unapohitaji kubadili kwa mtumiaji wakati ganda limewekwa kuwa nologi.

Kwa mfano,

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

Chaguzi za mstari wa amri katika Ukuzaji wa Haki

Hebu tuangalie baadhi ya chaguo za mstari wa amri ambazo unaweza kutumia ili kuinua haki zako wakati wa kutekeleza amri:

  • --ask-become-pass, -K - Hii inakuomba nenosiri la mtumiaji wa sudo kwenye mfumo wa mbali ambao unajaribu kuunganisha.< /li>

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

  • --kuwa, -b - Hii hukuruhusu kutekeleza kazi kama mtumiaji wa mizizi bila kuombwa nenosiri.

$ ansible-playbook myplaybook.yml --become 

  • --become-user=BECOME_USER - Inakuruhusu kuendesha kazi kama mtumiaji mwingine.

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

Thibitisha Usanidi Unaofanya Kazi kwa kutumia Amri Zinazofaa za Ad-Hoc

Wakati mwingine, unaweza kutaka kufanya kazi za haraka na rahisi kwenye seva pangishi za mbali au seva katika Ansible bila kulazimika kuunda kitabu cha kucheza. Katika hali hiyo, utahitaji kutekeleza amri ya ad-hoc.

Amri ya ad-hoc inayoeleweka ni amri ya mstari mmoja ambayo hukusaidia kutekeleza majukumu rahisi kwa njia rahisi lakini yenye ufanisi bila hitaji la kuunda vitabu vya kucheza. Kazi kama hizo ni pamoja na kunakili faili kati ya wapangishaji, kuwasha tena seva, kuongeza na kuondoa watumiaji na kusakinisha kifurushi kimoja.

Katika somo hili, tunachunguza matumizi mbalimbali ya maagizo ya Ad-Hoc Ansible. Tutatumia faili ya hesabu iliyo hapa chini kwa onyesho.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

Matumizi ya msingi zaidi ya amri za Ansible-Adhoc ni kuweka seva pangishi au kundi la wapangishi.

# ansible -m ping all

Katika amri iliyo hapo juu, kigezo cha -m ni chaguo la moduli. Ping ni amri ya adhoc na parameta ya pili yote inawakilisha majeshi yote kwenye faili ya hesabu. Matokeo ya amri yanaonyeshwa hapa chini:

Ili kupigia, kikundi fulani cha wapangishi, badilisha kigezo cha 'wote' na jina la kikundi. Katika mfano ulio hapa chini, tunajaribu muunganisho na wapangishi chini ya kikundi cha seva za wavuti.

# ansible -m ping webservers

Zaidi ya hayo, unaweza kutumia -a sifa kubainisha amri za kawaida za Linux katika alama mbili za nukuu. Kwa mfano, ili kuangalia muda wa mfumo wa mifumo ya mbali, endesha:

# ansible -a "uptime" all

Ili kuangalia matumizi ya diski ya seva pangishi za mbali endesha.

# ansible -a "df -Th" all

Kuna mamia kwa mamia ya moduli ambazo unaweza kutumia kwa amri ya Adhoc. Ili kutazama orodha nzima ya moduli na maelezo yao, endesha amri hapa chini.

# ansible-doc -l

Ili kuona maelezo ya kina kuhusu moduli fulani, endesha amri.

# ansible-doc module_name

Kwa mfano, kutafuta maelezo zaidi kuhusu uendeshaji wa moduli ya yum:

# ansible-doc yum

Amri za adhoc zinazofaa zinaweza kutumika kwa usakinishaji na uondoaji wa vifurushi kwa kutumia yum na wasimamizi wa vifurushi apt.

Ili kusakinisha seva ya wavuti ya Apache kwenye mwenyeji wa CentOS 7 chini ya kikundi cha webservers kwenye faili ya hesabu endesha amri:

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

Ili kuthibitisha usakinishaji wa seva ya wavuti ya Apache, ingia kwa mteja wa mbali na uendeshe.

# rpm -qa | grep httpd

Ili kusanidua Apache, badilisha hali kutoka kwa sasa hadi kutokuwepo.

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

Tena, ili kudhibitisha kuondolewa kwa httpd run.

# rpm -qa | grep httpd

Kama inavyoonekana, vifurushi vya seva ya wavuti ya Apache vimesafishwa.

Wakati wa kuunda watumiaji, moduli ya 'mtumiaji' inakuja vizuri. Ili kuunda mtumiaji mpya james na nenosiri redhat kwenye hifadhidata_server ya mfumo wa mteja, toa amri.

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

Ili kudhibitisha uundaji wa mtumiaji mpya, endesha amri:

# ansible database_servers -a "id james"

Ili kuondoa mtumiaji, endesha amri:

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

Iwapo unatumia Ansible kama mtumiaji wa kawaida, Ansible hutoa ongezeko la upendeleo katika seva pangishi za mbali kwa kutumia chaguo la --become kupata upendeleo wa mizizi na -k kuuliza nenosiri.

Kwa mfano, kutekeleza amri ya Ansible adhoc 'netstat -pnltu' na chaguo la upendeleo --kuwa na chaguo -K kuuliza nenosiri la mtumiaji wa mizizi kutekeleza amri. .

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

Ili kuwa mtumiaji mwingine isipokuwa root, tumia --become-user sifa.

Kwa mfano kuendesha 'df -Th' kama mtumiaji wa tecmint kwenye seva pangishi za mbali na kuuliza neno la siri liendeshwe:

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

Ukweli hurejelea maelezo ya kina kuhusu mfumo. Hii inajumuisha maelezo kuhusu anwani ya IP, usanifu wa mfumo, kumbukumbu na CPU kutaja machache.

Ili kupata habari kuhusu seva pangishi za mbali, endesha amri:

$ ansible all -m setup 

Ansible hutumia nakala ya sehemu hiyo kunakili faili kwa usalama kutoka kwa Kidhibiti Kinachowezekana hadi kwa wapangishi wengi wa mbali.

Ifuatayo ni mfano wa operesheni ya nakala:

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

Amri hunakili faili ya /var/log/secure katika nodi ya Udhibiti Inayowezekana kwa wapangishi wa mbali katika kikundi cha seva za wavuti kwenye /tmp lengwa.

Unaweza kutumia sehemu ya faili kubadilisha ruhusa na umiliki wa faili.

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

Zaidi ya hayo, unaweza kuambatisha hoja za mmiliki na kikundi kama inavyoonyeshwa:

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

Unaweza pia kuunda saraka, kwa njia sawa na mkdir -p kama inavyoonyeshwa.

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

Kwa mfano,

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

Katika makala haya, tunaangazia jinsi unavyoweza kusanidi nodi zinazodhibitiwa ili kutekeleza maagizo ya matangazo yanayofaa ili kudhibiti seva pangishi za mbali. Tunatumai umepata kuwa muhimu. Ipige risasi na utujulishe jinsi ilivyokuwa.