Giunsa ang Pag-configure sa Mga Masaligan nga Gidumala nga mga Node ug Pagdagan ang mga Ad-hoc Command - Bahin 3


Sa miaging duha ka artikulo niining Pag-set up sa Ansible Control Node. Niini nga bahin 3, among ipakita kung giunsa nimo ma-configure ang Ansible nga gidumala nga mga node aron magpadagan sa mga ad-hoc nga mga mando sa layo nga mga host.

I-set up ang Passwordless SSH Authentication ngadto sa Ansible Managed Nodes

Isip usa ka recap sa among katapusang hilisgutan, ang pagdumala sa mga remote host nga adunay Ansible nagkinahanglan sa pag-set up sa Passwordless SSH authentication tali sa Ansible control node ug sa gidumala nga mga host. Naglambigit kini sa pagmugna og key pair (Public ug Private SSH key pair) sa Ansible Control node ug pagkopya sa Public key sa tanang remote hosts. Kini usa ka hinungdanon nga lakang sa unahan ug himuon nga labi kadali ang imong trabaho.

I-configure ang Pag-uswag sa Pribilehiyo sa Gidumala nga mga Node

Kung naka-log in isip usa ka regular nga tiggamit, mahimo ka kinahanglan nga mobuhat sa pipila ka mga buluhaton sa gidumala nga mga node nga nanginahanglan taas nga mga pribilehiyo o mga pribilehiyo sa gamut. Kini nga mga buluhaton naglakip sa pagdumala sa pakete, pagdugang sa mga bag-ong tiggamit ug mga grupo, ug pag-usab sa mga pag-configure sa sistema sa paghisgot lamang sa pipila. Aron makab-ot kini, kinahanglan nimo nga maghangyo sa pipila nga mga direktiba sa playbook aron madala ang mga buluhaton ingon usa ka pribilihiyo nga tiggamit sa hilit nga mga host.

Gitugotan ka sa Ansible nga 'mahimong' lain nga tiggamit sa gidumala nga node nga lahi sa usa nga naka-log in karon. Ang direktiba nga become:yes nagpataas sa imong mga pribilehiyo ug nagtugot kanimo sa paghimo sa mga buluhaton nga nanginahanglan mga pribilehiyo sa gamut sama sa pag-install ug pag-update sa mga pakete ug pag-reboot sa sistema.

Hunahunaa ang usa ka playbook httpd.yml nga nag-install ug nagsugod sa Apache webserver sama sa gipakita:

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

Ang mahimong: oo ang direktiba nagtugot kanimo sa pagpatuman sa mga sugo isip root user sa remote host.

Ang laing direktiba nga imong magamit aron mahimong laing user mao ang nahimong_user. Gitugotan ka niini nga magbalhin sa usa ka sudo nga tiggamit sa hilit nga host sa pag-log in ug dili ang tiggamit nga imong gi-log in.

Pananglitan, sa pagpadagan sa usa ka sugo ingon tecmint user sa hilit nga paggamit sa direktiba sama sa gipakita.

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

Kini nga direktiba mag-override sa default nga pamaagi nga gitakda sa ansible.cfg file nga sagad gibutang sa sudo.

Gigamit kini sa dula o lebel sa buluhaton, pananglitan kung kinahanglan nimo nga mobalhin sa usa ka tiggamit kung ang kabhang gibutang sa nologin.

Pananglitan,

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

Mga Opsyon sa Command-line sa Pag-uswag sa Pribilehiyo

Atong tan-awon ang pipila sa mga kapilian sa command-line nga imong magamit aron mapataas ang imong mga pribilehiyo kung magpadagan sa mga mando:

  • --ask-become-pass, -K – Kini nag-aghat kanimo sa password sa sudo user sa remote system nga imong gisulayan pagkonektar.< /li>

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

  • --mahimong, -b – Kini nagtugot kanimo sa pagpadagan sa buluhaton isip root user nga walay pag-aghat sa password.

$ ansible-playbook myplaybook.yml --become 

  • --become-user=BECOME_USER – Kini nagtugot kanimo sa pagpadagan sa mga buluhaton isip laing user.

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

I-validate ang usa ka Working Configuration gamit ang Ad-Hoc Ansible Commands

Usahay, mahimo nimong buhaton ang dali ug yano nga mga buluhaton sa hilit nga mga host o server sa Ansible nga dili kinahanglan nga maghimo usa ka playbook. Niana nga kaso, kinahanglan nimo nga modagan ang usa ka ad-hoc nga mando.

Ang usa ka ansible nga ad-hoc command kay usa ka linya nga command nga makatabang nimo sa pagbuhat sa yano nga mga buluhaton sa yano apan episyente nga paagi nga wala kinahanglana ang paghimo og mga playbook. Ang ingon nga mga buluhaton naglakip sa pagkopya sa mga file tali sa mga host, pag-reboot sa mga server, pagdugang ug pagtangtang sa mga tiggamit ug pag-instalar sa usa ka pakete.

Sa kini nga panudlo, among gisusi ang lainlaing mga aplikasyon sa Ansible Ad-Hoc nga mga mando. Atong gamiton ang file sa imbentaryo sa ubos para sa usa ka demonstrasyon.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

Ang labing sukaranan nga paggamit sa Ansible-Adhoc nga mga mando mao ang pag-ping sa usa ka host o usa ka grupo sa mga host.

# ansible -m ping all

Sa sugo sa ibabaw, ang parameter nga -m mao ang opsyon sa module. Ang ping mao ang adhoc command ug ang ikaduha nga parameter ang tanan nagrepresentar sa tanan nga mga host sa file sa imbentaryo. Ang output sa command gipakita sa ubos:

Sa pag-ping, usa ka partikular nga grupo sa mga host, ilisan ang 'tanan' nga parameter sa ngalan sa grupo. Sa panig-ingnan sa ubos, gisulayan namon ang koneksyon sa mga host sa ilawom sa grupo sa webservers.

# ansible -m ping webservers

Dugang pa, mahimo nimong gamiton ang attribute nga -a aron itakda ang regular nga Linux commands sa dobleng quotation marks. Pananglitan, aron masusi ang oras sa sistema sa mga hilit nga sistema, pagdagan:

# ansible -a "uptime" all

Aron masusi ang paggamit sa disk sa hilit nga mga host run.

# ansible -a "df -Th" all

Adunay gatusan ka gatus nga mga module nga mahimo nimong magamit sa mando sa Adhoc. Aron matan-aw ang tibuuk nga lista sa mga module sa ilang mga paghulagway, padagana ang mando sa ubos.

# ansible-doc -l

Aron matan-aw ang detalyado nga kasayuran bahin sa usa ka partikular nga module, padagana ang mando.

# ansible-doc module_name

Pananglitan, sa pagpangita alang sa dugang nga mga detalye bahin sa yum module run:

# ansible-doc yum

Ang mga ansible nga adhoc nga mga sugo mahimong magamit alang sa pag-instalar ug pagtangtang sa mga pakete gamit ang yum ug apt package managers.

Aron ma-install ang Apache web server sa CentOS 7 host sa ilawom sa grupo sa webservers sa file sa imbentaryo ipadagan ang mando:

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

Aron mapamatud-an ang pag-instalar sa Apache web server, pag-log in sa hilit nga kliyente ug pagdagan.

# rpm -qa | grep httpd

Aron ma-uninstall ang Apache, yano nga usba ang estado gikan sa karon hangtod sa wala.

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

Pag-usab, aron makumpirma ang pagtangtang sa httpd run.

# rpm -qa | grep httpd

Ingon sa naobserbahan, ang mga pakete sa web server sa Apache gipurga.

Sa paghimo sa mga tiggamit, ang 'user' nga module magamit. Para makahimo ug bag-ong user nga si james nga naay password redhat sa client system database_server, i-issue ang command.

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

Aron makumpirma ang paghimo sa bag-ong tiggamit, padagana ang mando:

# ansible database_servers -a "id james"

Aron makuha ang user, padagana ang command:

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

Kung nagdagan ka sa Ansible isip usa ka regular nga tiggamit, ang Ansible naghatag ug pribilihiyo nga pag-uswag sa mga remote host gamit ang --become nga opsyon aron makakuha og root privileges ug -k aron ma-prompt ang password.

Pananglitan, ang pagpadagan sa Ansible adhoc command 'netstat -pnltu' nga adunay pribilihiyo nga opsyon –-become ug opsyon -K aron i-prompt ang password sa root user nga ipadagan ang command .

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

Aron mahimong laing user gawas sa gamut, gamita ang --become-user attribute.

Pananglitan sa pagdagan 'df -Th' isip tecmint user sa hilit nga mga host ug pag-aghat alang sa password run:

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

Ang mga kamatuoran nagtumong sa detalyadong impormasyon bahin sa usa ka sistema. Naglakip kini sa kasayuran bahin sa IP address, arkitektura sa sistema, memorya, ug CPU aron mahisgutan ang pipila.

Aron makuha ang kasayuran bahin sa hilit nga mga host, padagana ang mando:

$ ansible all -m setup 

Gigamit ni Ansible ang kopya sa module aron luwas nga makopya ang mga file gikan sa kontrol sa Ansible ngadto sa daghang hilit nga mga host.

Sa ubos usa ka pananglitan sa operasyon sa pagkopya:

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

Ang command nagkopya sa /var/log/secure file sa Ansible Control node ngadto sa hilit nga mga host sa webservers nga grupo sa /tmp nga destinasyon.

Mahimo nimong gamiton ang module sa file aron usbon ang mga pagtugot ug pagpanag-iya sa file.

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

Dugang pa, mahimo nimong idugang ang tag-iya ug mga argumento sa grupo sama sa gipakita:

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

Mahimo ka usab nga maghimo mga direktoryo, sa parehas nga paagi sa mkdir -p sama sa gipakita.

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

Pananglitan,

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

Sa kini nga artikulo, gihatagan namon ang kahayag kung giunsa nimo ma-configure ang mga gidumala nga node aron magpadagan ang mga Ansible ad-hoc nga mga mando aron madumala ang mga hilit nga host. Kami nanghinaut nga imong nakita nga kini mapuslanon. Sulayi kini ug ipahibalo kanamo kung giunsa kini.