Otu esi ahazi ọnụ ụzọ ndị enwere ike jikwaa wee mee iwu ad-hoc - Nkebi 3


N'ime akụkọ abụọ gara aga nke ọnụ ụzọ njikwa enwere ike ịtọlite a. N'akụkụ nke 3 a, anyị ga-egosi otu ị ga-esi hazie ọnụ ọnụ ndị nwere ike ijikwa iwu ad-hoc na ndị ọbịa dịpụrụ adịpụ.

Mepụta nyocha SSH na-enweghị paswọọdụ ka ọ bụrụ ọnụ ọnụ enwere ike ejikwa

Dị ka ntugharị na isiokwu ikpeazụ anyị, ijikwa ndị ọbịa dịpụrụ adịpụ chọrọ ịtọlite nnwale SSH na-enweghị paswọọdụ n'etiti ọnụ njikwa enwere ike na ndị ọbịa a na-achịkwa. Nke a gụnyere ọgbọ nke igodo ụzọ abụọ (Public and Private SSH key pair) na oghere njikwa enwere ike na iṅomi igodo Ọhaneze nye ndị ọbịa niile dịpụrụ adịpụ. Nke a ga-abụ nzọụkwụ dị mkpa na-aga n'ihu ma mee ka ọrụ gị dịkwuo mfe.

Hazie mmụba ihe ùgwù na ọnụ ọnụ ejirila

Mgbe ị banyere dị ka onye ọrụ oge niile, enwere ike ịchọ gị ịrụ ụfọdụ ọrụ na ọnụ ọnụ ejirila nke chọrọ oke dị elu ma ọ bụ ikike mgbọrọgwụ. Ọrụ ndị a gụnyere njikwa ngwugwu, ịgbakwunye ndị ọrụ ọhụrụ & otu dị iche iche, na imegharị nhazi usoro iji kwuo naanị ole na ole. Iji mezuo nke a, ịkwesịrị ịkpọku ntuziaka ụfọdụ n'ime akwụkwọ egwuregwu ka ị rụọ ọrụ ndị a dị ka onye ọrụ nwere oke na ndị ọbịa dịpụrụ adịpụ.

Ansible na-enye gị ohere 'ịghọ' onye ọrụ ọzọ na ọnụ ụlọ a na-achịkwa dị iche na nke a na-abanye ugbu a. Ntuziaka aghọ: ee na-ebuli ihe ùgwù gị ma na-enye gị ohere ịrụ ọrụ ndị chọrọ mgbọrọgwụ mgbọrọgwụ dị ka ịwụnye na na-emelite ngwugwu ma malitegharịa usoro.

Tụlee akwụkwọ egwuregwu httpd.yml na-arụnye wee malite sava weebụ Apache dị ka egosiri:

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

Ntuziaka bụ: ee na-enye gị ohere ịme iwu dị ka onye ọrụ mgbọrọgwụ n'ime ụlọ ọrụ dịpụrụ adịpụ.

Ntuziaka ọzọ ị nwere ike iji bụrụ onye ọrụ ọzọ bụ become_user. Nke a na-enye gị ohere ịgbanwe gaa na onye ọrụ sudo na remote host mgbe ị na-abanye na ọ bụghị onye ọrụ ị na-abanye dị ka.

Dịka ọmụmaatụ, iji mee iwu dị ka onye ọrụ tecmint na ime ime, jiri ntuziaka dịka egosiri.

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

Ntuziaka a ga-ewepụ usoro ndabara atọrọ na faịlụ ansible.cfg nke a na-emekarị ka ọ bụrụ sudo.

A na-eji ihe ndị a n'ọkwa egwuregwu ma ọ bụ ọkwa ọrụ, dịka ọmụmaatụ mgbe ịchọrọ ịgbanwere onye ọrụ mgbe etinyere shei ka ọ bụrụ nologin.

Ọmụmaatụ,

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

Nhọrọ ahịrị iwu na nkwalite nkwalite

Ka anyị lelee ụfọdụ nhọrọ ahịrị iwu nke ị nwere ike iji bulie ihe ùgwù gị mgbe ị na-agba iwu:

  • --ask-become-pass, -K - Nke a na-akpali gị maka paswọọdụ onye ọrụ sudo na sistemu dịpụrụ adịpụ nke ị na-achọ ijikọ.< /li>

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

  • --aghọ, -b - Nke a na-enye gị ohere ịme ọrụ ahụ dị ka onye ọrụ mgbọrọgwụ n'ebughị ụzọ nweta paswọọdụ.

$ ansible-playbook myplaybook.yml --become 

  • --become-user=BECOME_USER - Ọ na-enye gị ohere ịrụ ọrụ dịka onye ọrụ ọzọ.

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

Kwado nhazi ọrụ site na iji Ad-Hoc nwere ike iwu

Mgbe ụfọdụ, ị nwere ike ịchọrọ ịrụ ọrụ ngwa ngwa ma dị mfe na ndị ọbịa dịpụrụ adịpụ ma ọ bụ nkesa na Ansible na-enweghị ike ịmepụta akwụkwọ egwuregwu. N'ọnọdụ ahụ, ị ga-achọ ka ịmee iwu ad-hoc.

Iwu ad-hoc nwere ike ime bụ iwu otu ahịrị na-enyere gị aka ịrụ ọrụ dị mfe n'ụzọ dị mfe ma dịkwa mma na-enweghị mkpa ịmepụta akwụkwọ egwuregwu. Ọrụ ndị dị otú ahụ gụnyere iṅomi faịlụ n'etiti ndị ọbịa, ịmalitegharị sava, ịgbakwunye & wepụ ndị ọrụ na ịwụnye otu ngwugwu.

N'ime nkuzi a, anyị nyochara ngwa dị iche iche nke iwu Ad-Hoc nwere ike ime. Anyị ga-eji faịlụ ngwa ahịa dị n'okpuru maka ngosi.

[webservers]
173.82.115.165

[database_servers]
173.82.202.239

Ojiji kachasị mkpa nke iwu Ansible-Adhoc bụ pinging onye ọbịa ma ọ bụ otu ndị ọbịa.

# ansible -m ping all

N'iwu dị n'elu, oke -m bụ nhọrọ modul. Ping bụ iwu adhoc na oke nke abụọ na-anọchite anya ndị ọbịa niile nọ na faịlụ ngwa ahịa. Egosiri mpụta nke iwu ahụ n'okpuru:

Iji ping, otu ndị ọbịa, jiri aha otu dochie paramita 'niile'. N'ihe atụ dị n'okpuru, anyị na-anwale njikọta na ndị ọbịa n'okpuru otu sava weebụ.

# ansible -m ping webservers

Na mgbakwunye, ịnwere ike iji njirimara -a iji kọwaa iwu Linux oge niile na akara ngụ abụọ. Dịka ọmụmaatụ, iji lelee oge sistemụ dịpụrụ adịpụ, gbaa ọsọ:

# ansible -a "uptime" all

Ka ịlele ojiji diski nke ndị ọbịa dịpụrụ adịpụ na-agba ọsọ.

# ansible -a "df -Th" all

Enwere narị narị otu narị modul ị nwere ike iji na iwu Adhoc. Ka ilele ndepụta modulu niile na nkọwa ha, mee iwu dị n'okpuru.

# ansible-doc -l

Ka ilele ozi zuru ezu gbasara otu modul, mee iwu ahụ.

# ansible-doc module_name

Dịka ọmụmaatụ, ịchọ nkọwa ndị ọzọ gbasara ọsọ modul yum:

# ansible-doc yum

Enwere ike iji iwu adhoc nwere ike iji nwụnye na iwepụ ngwugwu site na iji yum na ndị njikwa ngwugwu dabara adaba.

Iji wụnye sava weebụ Apache na CentOS 7 host n'okpuru ndị ọrụ webụsaịtị n'ime faịlụ ngwa ahịa gbasoo iwu:

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

Iji nyochaa ntinye nke sava weebụ Apache, banye na onye ahịa dịpụrụ adịpụ wee gbaa ọsọ.

# rpm -qa | grep httpd

Iji wepu Apache, gbanwee steeti site ugbu a gaa na-anọghị.

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

Ọzọ, iji gosi na mwepụ nke httpd run.

# rpm -qa | grep httpd

Dị ka a hụrụ, a kpochapụrụ ngwungwu sava weebụ Apache.

Mgbe ị na-eke ndị ọrụ, modul 'onye ọrụ' na-abịa na aka. Iji mepụta james onye ọrụ ọhụrụ nwere redhat paswọọdụ na sistemụ nchekwa data ndị ahịa, nye iwu ahụ.

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

Iji kwado mmepụta nke onye ọrụ ọhụrụ, mee iwu a:

# ansible database_servers -a "id james"

Iji wepu onye ọrụ, mee iwu:

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

Ọ bụrụ na ị na-agba ọsọ Ansible dị ka onye ọrụ oge niile, Ansible na-enye nkwalite ohere n'ime ndị ọbịa dịpụrụ adịpụ site na iji --bụ nhọrọ iji nweta ikike mgbọrọgwụ yana -k iji kpalite paswọọdụ.

Dịka ọmụmaatụ, iji mee iwu adhoc Ansible adhoc 'netstat -pnltu' na nhọrọ dị mma --aghọ na nhọrọ -K iji mee ka paswọọdụ onye ọrụ gbanye iwu ahụ. .

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

Iji bụrụ onye ọrụ ọzọ na-abụghị mgbọrọgwụ, jiri njirimara --become-user.

Dịka ọmụmaatụ iji mee 'df -Th' dị ka onye ọrụ tecmint na ndị ọbịa dịpụrụ adịpụ wee kpalie maka ọsọ paswọọdụ:

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

Eziokwu na-ezo aka na ozi zuru ezu gbasara sistemụ. Nke a na-agụnye ozi gbasara adreesị IP, nhazi usoro, ebe nchekwa, na CPU ịkpọtụ ole na ole.

Ka iweghachite ozi gbasara ndị ọbịa dịpụrụ adịpụ, mee iwu a:

$ ansible all -m setup 

Ansible na-eji ụdị modul iji detuo faịlụ echekwara na njikwa enwere ike gaa na ọtụtụ ndị ọbịa dịpụrụ adịpụ.

N'okpuru bụ ọmụmaatụ ọrụ nnomi:

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

Iwu a na-edepụta faịlụ/var/log/ nchekwa dị na oghere njikwa enwere ike gaa na ndị ọbịa dịpụrụ adịpụ na otu webụsaịtị na ebe /tmp ebe.

Ị nwere ike iji modul faịlụ ịgbanwe ikike na nwe faịlụ.

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

Na mgbakwunye, ịnwere ike ịgbakwunye arụmụka onye nwe na otu dị ka egosiri:

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

Ị nwekwara ike ịmepụta akwụkwọ ndekọ aha, n'otu aka ahụ na mkdir -p dị ka egosiri.

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

Ọmụmaatụ,

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

N'edemede a, anyị na-amụbawanye otu ị ga-esi hazie ọnụ ọnụ jisiri ike na-agba ọsọ iwu ad-hoc nwere ike ijikwa ndị ọbịa dịpụrụ adịpụ. Anyị nwere olileanya na ịchọta ya bara uru. Nye ya gbaa ka anyị mara ka o siri gaa.