Bii o ṣe le Tunto Awọn apa ti a Ṣakoso Awọn Itọsọna ati Ṣiṣe awọn pipaṣẹ ad-hoc - Apá 3


Ninu awọn nkan meji ti tẹlẹ ti Node Iṣakoso Iṣakoso to ṣeto. Ni apakan 3 yii, a yoo ṣe afihan bi o ṣe le tunto awọn apa iṣakoso Ansible lati ṣiṣe awọn ofin ad-hoc lori awọn ogun jijin.

Ṣiṣeto Ijeri SSH ti ko ni ọrọigbaniwọle si Awọn apa ti a Ṣakoso

Gẹgẹbi atunkọ lori akọle wa ti o kẹhin, ṣiṣakoso awọn ogun latọna jijin pẹlu Ansible nbeere iṣeto ti ijẹrisi SSH ti ko ni Ọrọigbaniwọle laarin oju ipade iṣakoso Ansible ati awọn ogun ti a ṣakoso. Eyi pẹlu iran ti bata bọtini kan (Bọtini bọtini SSH ti Ilu ati Aladani) lori oju ipade Iṣakoso Ansible ati didakọ kọkọrọ ti Gbogbogbo si gbogbo awọn ogun jijin. Eyi yoo jẹ igbesẹ pataki ti nlọ siwaju ati pe yoo jẹ ki iṣẹ rẹ rọrun pupọ.

Ṣe atunto Escalation Ẹtọ lori Awọn apa ti a Ṣakoso

Nigbati o wọle bi olumulo deede, o le nilo lati ṣe awọn iṣẹ-ṣiṣe kan lori awọn apa iṣakoso ti o nilo awọn anfani giga tabi awọn anfani root. Awọn iṣẹ wọnyi pẹlu iṣakoso package, fifi awọn olumulo tuntun & awọn ẹgbẹ kun, ati yi awọn atunto eto pada lati mẹnuba diẹ ṣugbọn diẹ. Lati ṣaṣeyọri eyi, o nilo lati pe awọn itọsọna kan ninu iwe-idaraya lati ṣiṣe awọn iṣẹ-ṣiṣe bi olumulo ti o ni anfani lori awọn ogun jijin.

Ansible ngbanilaaye lati ‘di’ olumulo miiran lori oju ipade ti a ṣakoso yatọ si eyiti o ti wọle lọwọlọwọ. mimu awọn idii dojuiwọn ati atunbere eto naa.

Wo iwe-iṣere kan httpd.yml ti o nfi sii ati bẹrẹ webserver Apache bi o ti han:

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

Awọn di: bẹẹni itọsọna naa fun ọ laaye lati ṣe awọn ofin bi olumulo gbongbo lori ile-iṣẹ latọna jijin.

Itọsọna miiran ti o le lo lati di olumulo miiran ni di_user. Eyi n gba ọ laaye lati yipada si olumulo sudo lori agbalejo latọna jijin lori ibuwolu wọle kii ṣe olumulo ti o wọle bi.

Fun apẹẹrẹ, lati ṣiṣe aṣẹ kan bi olumulo tecmint lori latọna jijin lo itọsọna naa bi o ti han.

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

Itọsọna yii yoo fagile ọna aiyipada ti a ṣeto sinu faili ansible.cfg eyiti o ṣeto nigbagbogbo si sudo.

Iwọnyi ni a lo ni ere tabi ipele iṣẹ-ṣiṣe, fun apẹẹrẹ nigbati o nilo lati yipada si olumulo kan nigbati o ba ṣeto ikarahun si nologin.

Fun apere,

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

Awọn aṣayan laini pipaṣẹ ni Escalation ẹtọ

Jẹ ki a wo diẹ ninu awọn aṣayan laini aṣẹ ti o le lo lati gbe awọn anfani rẹ ga nigbati o ba n ṣiṣẹ awọn aṣẹ:

  • - -koko-di-pass , -K - Eyi tọ ọ fun ọrọ igbaniwọle ti olumulo sudo lori ẹrọ latọna jijin ti o n gbiyanju lati sopọ./li>

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

$ ansible-playbook myplaybook.yml --become 

  • --become-user = BECOME_USER - O gba ọ laaye lati ṣiṣẹ awọn iṣẹ bi olumulo miiran.

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

Ṣe idaniloju Iṣeduro Ṣiṣẹ nipa lilo Awọn pipaṣẹ Idahun Ad-Hoc

Nigba miiran, o le fẹ lati ṣe awọn iṣẹ ṣiṣe ni iyara ati irọrun lori awọn ọmọ-ogun latọna jijin tabi awọn olupin ni Ansible laisi dandan ni lati ṣẹda iwe-idaraya. Ni ọran yẹn, iwọ yoo nilo lati ṣiṣe aṣẹ ad-hoc kan.

Aṣẹ ad-hoc ansible jẹ aṣẹ laini kan ti o ṣe iranlọwọ fun ọ lati ṣe awọn iṣẹ-ṣiṣe ti o rọrun ni ọna ti o rọrun sibẹsibẹ daradara laisi iwulo ti ṣiṣẹda awọn iwe-idaraya. Awọn iru awọn iṣẹ bẹ pẹlu didakọ awọn faili laarin awọn ogun, atunbere awọn olupin, fifi kun & yiyọ awọn olumulo ati fifi package kan ṣoṣo sii.

Ninu ẹkọ yii, a ṣawari ọpọlọpọ awọn ohun elo ti awọn aṣẹ Ad-Hoc Ansible. A yoo lo faili akojọ-ọja ni isalẹ fun ifihan kan.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

Lilo ipilẹ ti o pọ julọ ti awọn ofin Ansible-Adhoc jẹ pingi ogun kan tabi ẹgbẹ awọn ọmọ-ogun.

# ansible -m ping all

Ninu aṣẹ ti o wa loke, paramita -m ni aṣayan modulu. Ping ni aṣẹ adhoc ati paramita keji gbogbo ṣe aṣoju gbogbo awọn ọmọ-ogun ni faili akojọ-ọja. Ijade ti aṣẹ ni a fihan ni isalẹ:

Lati ping, ẹgbẹ kan ti awọn ọmọ ogun, rọpo paramita ‘gbogbo’ pẹlu orukọ ẹgbẹ naa. Ninu apẹẹrẹ ti o wa ni isalẹ, a n ṣe idanwo isopọmọ pẹlu awọn ogun labẹ ẹgbẹ webservers.

# ansible -m ping webservers

Ni afikun, o le lo ẹda -a lati ṣafihan awọn ofin Linux deede ni awọn ami atokọ ilọpo meji. Fun apẹẹrẹ, lati ṣayẹwo akoko asiko eto ti awọn ọna jijin, ṣiṣe:

# ansible -a "uptime" all

Lati ṣayẹwo lilo disiki ti awọn ogun jijin ṣiṣe.

# ansible -a "df -Th" all

Awọn ọgọọgọrun wa lori awọn ọgọọgọrun awọn modulu ti o le lo pẹlu aṣẹ Adhoc. Lati wo atokọ gbogbo awọn modulu pẹlu awọn apejuwe wọn, ṣiṣe aṣẹ ni isalẹ.

# ansible-doc -l

Lati wo alaye alaye nipa modulu kan pato, ṣiṣe aṣẹ naa.

# ansible-doc module_name

Fun apẹẹrẹ, lati wa awọn alaye diẹ sii nipa yum module run:

# ansible-doc yum

Awọn ofin adhoc ti o le ṣee lo fun fifi sori ẹrọ ati yiyọ awọn idii nipa lilo yum ati awọn alakoso package ti o yẹ.

Lati fi sori ẹrọ olupin ayelujara Apache lori ile-iṣẹ CentOS 7 labẹ ẹgbẹ awọn olutọju oju-iwe ninu faili akọọlẹ ṣiṣe aṣẹ:

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

Lati jẹrisi fifi sori ẹrọ ti olupin ayelujara Apache, wọle si alabara latọna jijin ki o ṣiṣe.

# rpm -qa | grep httpd

Lati aifi Apache kuro, yi ayipada pada lati lọwọlọwọ si isansa.

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

Lẹẹkansi, lati jẹrisi yiyọ kuro ti ṣiṣe httpd.

# rpm -qa | grep httpd

Gẹgẹbi a ti ṣakiyesi, awọn idii olupin ayelujara Apache ti wẹ.

Nigbati o ba n ṣẹda awọn olumulo, module ‘olumulo’ wa ni ọwọ. Lati ṣẹda awọn james olumulo tuntun pẹlu redhat ọrọigbaniwọle lori eto onibara database_server, gbejade aṣẹ naa.

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

Lati jẹrisi ẹda ti olumulo tuntun, ṣiṣe aṣẹ naa:

# ansible database_servers -a "id james"

Lati yọ olumulo kuro, ṣiṣe aṣẹ naa:

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

Ti o ba n ṣiṣẹ Ansible bi olumulo deede, Ansible n pese imukuro anfaani ninu awọn ogun jijin nipa lilo aṣayan --become lati gba awọn anfani gbongbo ati -k lati tọ fun ọrọ igbaniwọle naa.

Fun apẹẹrẹ, lati ṣiṣe aṣẹ adhoc Ansible 'netstat -pnltu' pẹlu aṣayan anfani - -become ati aṣayan -K lati tọ fun ọrọ igbaniwọle olumulo olumulo lati ṣiṣe aṣẹ naa .

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

Lati di olumulo miiran yatọ si gbongbo, lo abuda --become-user .

Fun apẹẹrẹ lati ṣiṣe 'df -Th' bi olumulo tecmint lori awọn ọmọ-ogun latọna jijin ati tọ fun ṣiṣe ọrọ igbaniwọle:

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

Awọn otitọ tọka si alaye alaye nipa eto kan. Eyi pẹlu alaye nipa adiresi IP, faaji eto, iranti, ati Sipiyu lati darukọ diẹ.

Lati gba alaye nipa awọn ọmọ-ogun latọna jijin, ṣiṣe aṣẹ naa:

$ ansible all -m setup 

Ansible lo adaakọ modulu lati daakọ awọn faili lailewu lati iṣakoso Ansible si ọpọlọpọ awọn ogun jijin latọna jijin.

Ni isalẹ jẹ apẹẹrẹ ti iṣẹ ẹda:

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

Aṣẹṣẹda awọn ẹda/var/log/faili to ni aabo ni oju ipade Iṣakoso Ansible si awọn ọmọ ogun latọna jijin ninu ẹgbẹ awọn olutọju oju-iwe ni ibi/tmp.

O le lo modulu faili lati yipada awọn igbanilaaye ati nini faili.

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

Ni afikun, o le fi kun oluwa ati awọn ariyanjiyan ẹgbẹ bi o ti han:

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

O tun le ṣẹda awọn ilana, ni ọna kanna si mkdir -p bi a ṣe han.

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

Fun apere,

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

Ninu nkan yii, a tan imọlẹ lori bi o ṣe le tunto awọn apa iṣakoso lati ṣiṣe Awọn aṣẹ ad-hoc Ansible lati ṣakoso awọn ogun jijin. A nireti pe o rii pe o wulo. Fun ni ibọn kan ki o jẹ ki a mọ bi o ti lọ.