Bii o ṣe le Lo Awọn iwe-idaraya to daju lati Ṣe adaṣe Awọn iṣẹ-ṣiṣe Complex lori Awọn olupin jijin pupọ - Apá 2
Ninu nkan ti tẹlẹ ti jara Ansible yii, a ṣalaye pe Ansible jẹ ohun elo ti kii ṣe oluranlowo ti o fun ọ laaye lati yarayara ati ni iṣakoso daradara awọn ẹrọ lọpọlọpọ (tun mọ bi awọn apa - ati ṣe awọn imuṣiṣẹ si wọn pẹlu) lati eto kan.
Lẹhin ti o fi software sii ninu ẹrọ oludari, ṣiṣẹda awọn bọtini fun wiwọle iwọle ọrọigbaniwọle ati didakọ wọn si awọn apa, o to akoko lati kọ ẹkọ bi o ṣe le je ki ilana ti iṣakoso iru awọn ọna latọna jijin nipa lilo Ansible.
Ni gbogbo nkan yii, bii atẹle, a yoo lo agbegbe idanwo atẹle. Gbogbo awọn ogun ni awọn apoti CentOS 7:
Controller machine (where Ansible is installed): 192.168.0.19 Node1: 192.168.0.29 Node2: 192.168.0.30
Ni afikun, jọwọ ṣe akiyesi pe a ti fi awọn apa mejeeji kun ni apakan awọn olukawe webs ti agbegbe/ati be be lo/ansible/ogun awọn faili:
Ti o sọ, jẹ ki a bẹrẹ pẹlu akọle ti o wa ni ọwọ.
Ifihan Awọn iwe-idaraya ti o ni oye
Gẹgẹbi a ti ṣalaye ninu itọsọna iṣaaju, o le lo iwulo iwulo lati ṣiṣe awọn aṣẹ ni awọn apa latọna jijin bi atẹle:
# ansible -a "/bin/hostnamectl --static" webservers
Ninu apẹẹrẹ loke, a ran hostnamectl --static
lori node1 ati node2. Ko pẹ pupọ fun ẹnikan lati mọ pe ọna yii ti ṣiṣe awọn iṣẹ lori awọn kọnputa latọna jijin ṣiṣẹ itanran fun awọn aṣẹ kukuru ṣugbọn o le yara di ẹru tabi idoti fun awọn iṣẹ ti o nira sii ti o nilo siwaju awọn iṣeto iṣeto daradara daradara tabi awọn ibaraenisepo pẹlu awọn iṣẹ miiran
Fun apẹẹrẹ, ṣiṣeto ati tunto Wodupiresi lori awọn ogun lọpọlọpọ - eyiti a yoo bo ni nkan ti n bọ ti jara yii). Eyi ni ibiti Awọn iwe ere-idaraya wa si oju iṣẹlẹ.
Ni kukuru, Awọn iwe orin jẹ awọn faili ọrọ lasan ti a kọ sinu kika YAML, ati pe o ni atokọ pẹlu awọn ohun kan pẹlu ọkan tabi diẹ ẹ sii bọtini/iye awọn tọkọtaya (eyiti a tun mọ ni\"elile" tabi iwe-itumọ\"kan).
Ninu inu Playbook kọọkan iwọ yoo wa ọkan tabi diẹ ẹ sii ẹgbẹ awọn ọmọ-ogun (ọkọọkan awọn ẹgbẹ wọnyi ni a tun pe ni ere idaraya) nibiti awọn iṣẹ ṣiṣe ti o fẹ ṣe.
Apẹẹrẹ lati awọn iwe aṣẹ aṣẹ yoo ṣe iranlọwọ fun wa lati ṣapejuwe:
1. awọn ogun: eyi ni atokọ ti awọn ẹrọ (bi fun/ati be be lo/ansible/ogun) nibiti awọn iṣẹ ṣiṣe atẹle yoo ṣe.
2. latọna jijin_user: akọọlẹ latọna jijin ti yoo lo lati ṣe awọn iṣẹ-ṣiṣe.
3. vars: awọn oniyipada ti a lo lati yipada ihuwasi ti eto (s) latọna jijin.
4. awọn iṣẹ ṣiṣe ni ṣiṣe ni aṣẹ, ọkan ni akoko kan, lodi si gbogbo awọn ẹrọ ti o baamu awọn ogun. Laarin ere kan, gbogbo awọn ọmọ-ogun yoo gba awọn itọsọna iṣẹ kanna.
Ti o ba nilo lati ṣe adaṣe oriṣiriṣi ti awọn iṣẹ ṣiṣe ti o jọmọ fun alejo kan pato, ṣẹda iṣere miiran ninu Playbook lọwọlọwọ (ni awọn ọrọ miiran, idi ti ere kan ni lati ya yiyan yiyan kan ti awọn ọmọ-ogun si awọn iṣẹ ṣiṣe asọye daradara).
Ni ọran yẹn, bẹrẹ ere tuntun nipa fifi itọsọna awọn ọmọ-ogun kun ni isalẹ ati bẹrẹ ni:
--- - 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. awọn olutọju jẹ awọn iṣe ti o fa ni opin apakan awọn iṣẹ-ṣiṣe ni ere kọọkan, ati pe a lo julọ lati tun bẹrẹ awọn iṣẹ tabi awọn atunbere atunbere ninu awọn ọna jijin.
# mkdir /etc/ansible/playbooks
Ati faili kan ti a npè ni apache.yml inu ti nibẹ pẹlu awọn akoonu wọnyi:
--- - 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
Keji, ṣẹda itọsọna/static_files:
# mkdir /static_files
nibi ti iwọ yoo tọju faili aṣa.html aṣa:
<!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>
Ti o sọ, bayi o to akoko lati lo iwe-iṣere yii lati ṣe awọn iṣẹ-ṣiṣe ti a mẹnuba tẹlẹ. Iwọ yoo ṣe akiyesi pe Ansible yoo lọ nipasẹ iṣẹ-ṣiṣe kọọkan nipasẹ olugbalejo, ọkan ni akoko kan, ati pe yoo ṣe ijabọ lori ipo iru awọn iṣẹ bẹẹ:
# ansible-playbook /etc/ansible/playbooks/apache.yml
Bayi jẹ ki a wo ohun ti o ṣẹlẹ nigbati a ṣii ẹrọ lilọ kiri ayelujara kan ati tọka si 192.168.0.29 ati 192.168.0.30:
Jẹ ki a lọ ni igbesẹ kan siwaju ati da ọwọ duro ki o mu Muu afun kuro lori node1 ati node2:
# systemctl stop httpd # systemctl disable httpd # systemctl is-active httpd # systemctl is-enabled httpd
Lẹhinna ṣiṣe lẹẹkansi,
# ansible-playbook /etc/ansible/playbooks/apache.yml
Ni akoko yii, awọn iṣẹ-ṣiṣe ṣe ijabọ pe olupin ayelujara Apache ti bẹrẹ ati muu ṣiṣẹ lori olukọ kọọkan:
Jọwọ ṣe akiyesi apẹẹrẹ ti o wa loke bi iwo ti agbara Ansible. Lakoko ti iwọnyi jẹ awọn iṣẹ ṣiṣe ti o rọrun jo nigba ti a ṣe lori nọmba kekere ti awọn olupin, o le di alaidun pupọ ati n gba akoko ti o ba nilo lati ṣe kanna ni ọpọlọpọ (boya awọn ọgọọgọrun) ti awọn ẹrọ.
Akopọ
Ninu nkan yii a ti ṣe apejuwe bi a ṣe le ṣiṣe awọn aṣẹ ati ṣiṣe awọn iṣẹ ṣiṣe ti o nira lori ọpọlọpọ awọn ọmọ ogun latọna jijin nigbakanna lilo Ansible. Ibi-ipamọ GitHub pese ọpọlọpọ awọn apẹẹrẹ ati awọn itọsọna lori bii o ṣe le lo Ansible lati ṣaṣeyọri fere eyikeyi iṣẹ ṣiṣe ti a le fojuinu.
Bi o ṣe bẹrẹ kọ ẹkọ bii o ṣe le ṣe adaṣe awọn iṣẹ-ṣiṣe lori awọn ogun Linux latọna jijin nipa lilo Ansible, a yoo fẹ lati gbọ awọn ero rẹ. Awọn ibeere, awọn asọye, ati awọn didaba tun jẹ itẹwọgba nigbagbogbo, nitorinaa ni ọfẹ lati kan si wa nipa lilo fọọmu ti o wa ni isalẹ nigbakugba.