Otu esi eji akwụkwọ egwu egwu nwere ike megharịa ọrụ mgbagwoju anya na ọtụtụ sava dịpụrụ adịpụ - Nkebi 2


N'isiokwu gara aga nke usoro a, anyị kọwara na Ansible bụ ngwá ọrụ na-enweghị onye ọrụ na-enye gị ohere ijikwa ngwa ngwa na nke ọma ọtụtụ igwe (nke a na-akpọkwa ọnụ - ma rụọ ọrụ na ha) site na otu usoro.

Mgbe ị wụnye ngwanrọ na igwe njikwa, mepụta igodo maka nbanye na-enweghị paswọọdụ ma na-edegharị ha na ọnụ ọnụ, oge eruola ịmụta ka esi ebuli usoro ijikwa sistemụ dịpụrụ adịpụ site na iji ike.

N'ime akụkọ a dum, yana nke na-esote, anyị ga-eji gburugburu ule na-esote. Ndị ọbịa niile bụ igbe CentOS 7:

Controller machine (where Ansible is installed): 192.168.0.19
Node1: 192.168.0.29
Node2: 192.168.0.30

Na mgbakwunye, biko mara na agbakwunyere ọnụ abụọ ahụ na ngalaba sava weebụ nke faịlụ mpaghara /etc/ansible/hosts:

Nke ahụ kwuru, ka anyị malite na isiokwu dị n'aka.

Na-ewebata akwụkwọ egwuregwu enwere ike

Dịka akọwara na ntuziaka gara aga, ị nwere ike iji ike nwere ike mee iwu n'ime oghere dịpụrụ adịpụ dị ka ndị a:

# ansible -a "/bin/hostnamectl --static" webservers

N'ihe atụ dị n'elu, anyị gbara hostnamectl --static na node1 na node2. Ọ naghị ewe ogologo oge ka mmadụ ghọta na usoro a nke ịrụ ọrụ na kọmpụta dịpụrụ adịpụ na-arụ ọrụ nke ọma maka iwu dị mkpirikpi mana ọ nwere ike bụrụ ibu arọ ma ọ bụ mebie ngwa ngwa maka ọrụ ndị siri ike nke chọrọ usoro nhazi nhazi nke ọma ma ọ bụ mmekọrịta ya na ọrụ ndị ọzọ.

Dịka ọmụmaatụ, ịtọlite na ịhazi WordPress na ọtụtụ ndị ọbịa - nke anyị ga-ekpuchi n'isiokwu na-esote nke usoro isiokwu a). Nke a bụ ebe akwụkwọ egwuregwu na-abata.

N'ikwu ya n'ụzọ dị mfe, akwụkwọ egwu egwu bụ faịlụ ederede doro anya nke edere na usoro YAML, ma nwee ndepụta nwere ihe nwere otu igodo ma ọ bụ karịa uru (nke a makwaara dị ka hash ma ọ bụ akwụkwọ ọkọwa okwu).

N'ime akwụkwọ egwuregwu ọ bụla, ị ga-ahụ otu ma ọ bụ karịa otu ndị ọbịa (nke ọ bụla n'ime otu ndị a ka a na-akpọkwa egwuregwu) ebe a ga-arụ ọrụ achọrọ.

Otu ihe atụ sitere n'akwụkwọ gọọmentị ga-enyere anyị aka ịkọwa:

1. ndị ọbịa: nke a bụ ndepụta igwe (dị ka /etc/ansible/hosts) ebe a ga-arụ ọrụ ndị a.

2. remote_user: remote account nke a ga-eji rụọ ọrụ.

3. vars: mgbanwe ndị a na-eji emezi omume nke sistemụ (s) dịpụrụ adịpụ.

4. A na-arụ ọrụ n'usoro, n'otu n'otu, megide igwe niile dabara na ndị ọbịa. N'ime egwuregwu, ndị ọbịa niile ga-enweta otu ntuziaka ọrụ.

Ọ bụrụ na ịchọrọ ịrụ ọrụ dị iche iche nke metụtara otu onye ọbịa, mepụta egwuregwu ọzọ na Playbook dị ugbu a (n'okwu ndị ọzọ, ebumnuche egwuregwu bụ ịdepụta otu nhọrọ nke ndị ọbịa maka ọrụ akọwapụtara nke ọma).

N'ọnọdụ ahụ, malite egwuregwu ọhụrụ site na ịgbakwunye ntuziaka ndị ọbịa na ala wee malite ọzọ:

---
- hosts: webservers
  remote_user: root
  vars:
    variable1: value1
    variable2: value2
  remote_user: root
  tasks:
  - name: description for task1
    task1: parameter1=value_for_parameter1 parameter2=value_for_parameter2
  - name: description for task1
    task2: parameter1=value_for_parameter1 parameter2=value_for_parameter2
  handlers:
    - name: description for handler 1
      service: name=name_of_service state=service_status
- hosts: dbservers
  remote_user: root
  vars:
    variable1: value1
    variable2: value2
…

5. handlers bụ omume na-akpalite na njedebe nke ọrụ ngalaba na nke ọ bụla play, na-akasị eji malitegharịa ọrụ ma ọ bụ ịkpalite reboots na ime usoro.

# mkdir /etc/ansible/playbooks

Na faịlụ akpọrọ apache.yml n'ime ebe ahụ nwere ọdịnaya ndị a:

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: pkg=httpd state=latest
  - name: replace default index.html file
    copy: src=/static_files/index.html dest=/var/www/html/ mode=0644
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

Nke abụọ, mepụta ndekọ/static_files:

# mkdir /static_files

ebe ị ga-echekwa faịlụ index.html omenala:

<!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="utf-8"/>
 </script>
 </head>
 <body>
 <h1>Apache was started in this host via Ansible</h1><br>
<h2>Brought to you by linux-console.net</h2>
 </body>
 </html>

Nke ahụ kwuru, ugbu a bụ oge iji akwụkwọ egwuregwu a rụọ ọrụ ndị a kpọtụrụ aha na mbụ. Ị ga-achọpụta na Ansible ga-arụ ọrụ nke ọ bụla site n'aka onye ọbịa, otu n'otu oge, na-akọkwa ọkwa nke ọrụ ndị a:

# ansible-playbook /etc/ansible/playbooks/apache.yml

Ugbu a, ka anyị hụ ihe na-eme mgbe anyị mepee ihe nchọgharị wee tụọ ya na 192.168.0.29 na 192.168.0.30:

Ka anyị gaa n'ihu otu nzọụkwụ ma jiri aka kwụsị ma gbanyụọ Apache na node1 na node2:

# systemctl stop httpd
# systemctl disable httpd
# systemctl is-active httpd
# systemctl is-enabled httpd

Gbaa ọsọ ọzọ,

# ansible-playbook /etc/ansible/playbooks/apache.yml

Oge a, ọrụ ahụ na-akọ na ebidola sava weebụ Apache ma mee ka ọ bụrụ onye ọbịa ọ bụla:

Biko tulee ihe atụ a dị n'elu dị ka nkọwapụta nke ike nke Ansible. Ọ bụ ezie na ndị a bụ ọrụ dị mfe mgbe a na-arụ ya na ọnụ ọgụgụ dị nta nke sava, ọ nwere ike ịghọ ihe na-agwụ ike ma na-ewe oge ma ọ bụrụ na ịchọrọ ime otu ihe ahụ na ọtụtụ (ma eleghị anya ọtụtụ narị) igwe.

Nchịkọta

N'ime edemede a, anyị akọwala otu esi agba ọsọ ma rụọ ọrụ dị mgbagwoju anya n'ọtụtụ ebe dịpụrụ adịpụ n'otu oge na-eji ike. Ebe nchekwa GitHub na-enye ọtụtụ ihe atụ na ntụzịaka maka otu esi eji ike nweta ihe fọrọ nke nta ka ọ bụrụ ọrụ ọ bụla a pụrụ ichetụ n'echiche.

Ka ị na-amalite ịmụ ka esi akpaaka ọrụ na ndị ọbịa Linux dịpụrụ adịpụ site na iji ike, anyị ga-achọ ịnụ echiche gị. A na-anabatakwa ajụjụ, nkọwa na aro mgbe niile, yabụ nweere onwe gị iji fọm dị n'okpuru kpọtụrụ anyị oge ọ bụla.