Hindi Mahusay na Tungkulin- Panghuli na paraan upang maalis ang iyong mga Playbook



Ang blog na Ansible Roles na ito ay nagsasalita tungkol sa kung paano ginagamit ang mga tungkulin upang mabasa at magamit muli ang mga kumplikadong playbook na may isang demonyo na pag-set up ng isang MEAN Stack.

Pinapayagan kami ng Ansible na i-automate ang pamamahala ng pagsasaayos ng mga system at magdagdag ng anumang bilang ng mga kliyente ayon sa gusto namin. Naisip mo ba kung gaano ito kumplikado? Naisip mo ba kung gaano katagal at nakalilito ang maaaring makuha ng mga playbook? Paano pa rin ginagawa itong Ansible na parang isang simoy? Gumagamit ito ng konsepto ng Ansible Roles at iyon ang pag-uusapan sa blog na ito.

Saklaw ang mga paksa:





Kung nais mong makabisado sa DevOps, ' kurso ay ang iyong pagpipilian sa pagpunta.

Panimula Sa Mga Kakayahang Nakakain

Ang Ansible Role ay isang konsepto na tumatalakay sa mga ideya kaysa sa mga kaganapan. Karaniwan itong isa pang antas ng abstraction na ginamit upang ayusin ang mga playbook. Nagbibigay ang mga ito ng isang balangkas para sa isang independyente at magagamit muli na koleksyon ng mga variable, gawain, template, file, at module na maaaring awtomatikong mai-load sa playbook. Ang mga Playbook ay isang koleksyon ng mga tungkulin. Ang bawat tungkulin ay may tiyak na pagpapaandar.



Hayaan mong ipaliwanag ko ito sa isang halimbawa. Ipagpalagay na nais mo ang iyong playbook na magsagawa ng 10 magkakaibang mga gawain sa 5 magkakaibang mga system, gagamitin mo ba ang isang solong playbook para dito? Hindi, ang paggamit ng isang solong playbook ay maaaring gawin itong nakalilito at madaling kapitan ng pagkakamali. Sa halip, maaari kang lumikha ng 10 magkakaibang mga tungkulin, kung saan ang bawat papel ay gaganap ng isang gawain. Pagkatapos, ang kailangan mo lang gawin ay, banggitin ang pangalan ng papel sa loob ng playbook upang tawagan sila. Malalaman mo kung paano gumamit ng mga tungkulin sa blog na ito.

Reusability Ng Hindi Mahalagang Gampanan

Ang Ansible Roles ay malaya sa bawat isa. Ang pagpapatupad ng isang papel ay hindi nakasalalay sa iba at kung gayon maaari silang magamit muli. Maaari mo ring baguhin at isapersonal ang mga tungkuling ito alinsunod sa iyong mga kinakailangan. Binabawasan nito ang aming gawain na muling isulat ang isang buong seksyon ng code sa tuwing kailangan namin ito, kaya pinapasimple ang aming trabaho.

Balikan natin ang dating halimbawa. Nakasulat ka ng 10 mga tungkulin at ngayon kailangan mong gamitin ang 5 sa mga ito para sa isa pang hanay ng paglalaan. Isusulat mo ulit ang buong playbook? Hindi, gagamitin mo lamang ang 5 mga tungkulin na iyon sa pamamagitan ng pagtawag sa kanila sa bagong Playbook. Maaari ka ring gumawa ng mga pagbabago kung kinakailangan ngunit magtatapos pa rin ito sa pag-save ng maraming oras mo.



Sabihin nating kailangan mong magsulat ng isang playbook para sa pag-set up ng LAMP stack. Kailangan mong lumikha ng 4 na tungkulin, bawat isa para sa paglikha ng Linux, Apache, MongoDB at PHP. Sa hinaharap, kung nais mo ng isa pang playbook para sa pag-set up ng LAMP stack pati na rin ang WordPress, gagawa ka ulit ng mga bagong tungkulin para sa LAMP stack at WordPress? Hindi! Maaari mo lamang magamit muli ang mas matandang mga tungkulin (ginamit para sa LAMP stack) at bilang karagdagan lumikha ng isang bagong papel para sa WordPress.

Istraktura ng Direktoryo ng Mga Tungkulin

Paggamit ng Ansible Roles, asahan na ang mga file ay nasa isang tiyak na istraktura ng file. Ang pinaka-nakakalito na bahagi ng paggamit ng mga tungkulin ay pag-unawa sa hierarchy ng file. Nagbibigay ang Ansible ng isang tampok na tinatawag na Ansible Galaxy na tumutulong sa iyo na maglaro sa mga tungkulin. Alam na natin kung nasaan ang aming Ansible sa Ubuntu (/ etc / ansible). Nakita mo na ba ang isang direktoryo na tinatawag na mga tungkulin sa ilalim ng / etc / hindi marunong kumain? Eksperto ang umiiral na direktoryo para sa kadahilanang ito. Lumilikha ka ng iba't ibang mga tungkulin sa loob ng direktoryong ito.

Magiging ganito ang direktoryo:

Tree - Ansible Roles - Edureka

Maaari kang lumikha ng isang papel na ginagamit nakakain-kalawakan init utos sa loob / etc / ansible / mga tungkulin.

$sudoansible-galaxy init

Makakakita ka ng ibang mga direktoryo ng tungkulin na nalikha din.

Ang mga direktoryo na ito ay mga gawain, handler, default, vars, file, template, at meta at isang README.mdfile

Mga Gawain - Naglalaman ng pangunahing listahan ng mga gawain na naisakatuparan ng papel. Itonaglalaman ngang main.yml file para sa partikular na papel na iyon.

Mga humahawak - Naglalaman ng mga handler na maaaring magamit ng papel na ito o kahit saan sa labas ng papel na ito.

Mga default - Naglalaman ng mga default na variable na gagamitin ng tungkuling ito.

Kanino - Ang direktoryo na ito ay binubuo ng iba pang mga variable na gagamitin ng tungkulin. Ang mga variable na ito ay maaaring tukuyin sa iyong playbook, ngunit isang magandang ugali na tukuyin ang mga ito sa seksyong ito.

Mga file - Naglalaman ng mga file na maaaring i-deploy ng tungkuling ito. Naglalaman ito ng mga file na kailangang ipadala sa mga host habang ini-configure ang papel.

Meta - Tinutukoy ang metadata para sa papel na ito. Karaniwan, naglalaman ito ng mga file na nagtataguyod ng mga dependency sa papel.

Bawat gawain ang direktoryo ay dapat na binubuo ng a pangunahing.yml file kung saan nakasulat ang aktwal na code para sa partikular na tungkulin.

Unawain natin ngayon ang pagtatrabaho o mga tungkulin na may isang demo ng pag-install ng MEAN Stack.

Demo: Pag-install ng MEAN Stack gamit ang Ansible Roles

Ipapakita ko kung paano i-install ang MEAN Stack gamit ang Ansible Roles sa pamamagitan lamang ng pagpapatupad ng isang solong playbook. Magkakaroon kami ng tatlong mga tungkulin: 1) Pag-install ng mga paunang kinakailangan, 2) Pag-install ng MongoDB at 3) Pag-install ng NodeJS. Ipinapalagay ko na mayroon ka na naka-install na Ansible at gumawa ng koneksyon ng server-client sa Ubuntu . Magsimula tayong maglaro sa Ansible Roles.

Hakbang 1 - Mag-navigate sa / etc / ansible / mga direktoryo ng mga tungkulin at likhain ang mga tungkulin para sa mga paunang kinakailangan, MongoDB at NodeJS.

$ cd / etc / ansible / mga tungkulin $ sudo hindi mabibili-galaxy init mga kinakailangan sa $ sudo hindi mabibili-galaxy init mongodb $ sudo hindi mabibili ng galaxy

Dapat mo na ngayong makita ang tatlong mga tungkulin sa iyong direktoryo ng 'mga tungkulin'.

Hakbang 2 - Sumulat ng main.yml para sa mga paunang kinakailangan na na-install ang Git.

Mga kinakailangan sa $ cd / gawain / main.yml --- - pangalan: I-install ang git apt: pangalan: git state: kasalukuyang update_cache: oo

Hakbang 3 - Sumulat ng main.yml para sa papel na ginagampanan ng MongoDB

$ cd /mongodb/tasks/main.yml --- - pangalan: MongoDB - Mag-import ng pampublikong key apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - pangalan: MongoDB - Magdagdag ng repository apt_repository: filename: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' state: present update_cache : yes - name: MongoDB - Install MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Start mongod shell: 'mongod &'

Hakbang 4 - Sumulat ng main.yml para sanodejspapel

$ cd nodejs / task / main.yml --- - pangalan: Node.js - Kumuha ng script get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Itakda ang pahintulot sa pagpapatupad sa script file: path:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Ipatupad ang shell ng pag-install ng script:' {{var_node}} / nodejs.sh '- pangalan: Node.js - Alisin ang file ng script ng pag-install: path:' {{var_node}} / nodejs.sh 'estado: wala - pangalan: Node.js - I-install ang Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - I-install ang bower at lumubog sa buong mundo npm: name = {{item}} estado = kasalukuyang pandaigdigan = oo with_items : - bower - gulp

Hakbang 5 - Isulat ang iyong pangunahing playbook

$ cd /etc/ansible/mean.yml --- - host: nodes remote_user: ansible maging: oo naging_method: sudo vars: #variable kailangan habang nag-i-install ang node var_node: / tmp role: - mga kinakailangan sa una - mongodb - nodejs

Ngayon na natukoy namin ang mga tungkulin para sa pag-install ng mga paunang kinakailangan, MongoDB at NodeJs, i-deploy natin sila. Isagawa ang playbook gamit ang sumusunod na utos.

kung paano gamitin ang goto sa sawa

$sudoansible-playbook /etc/ansible/mean.yml -K

Tulad ng nakikita mo, ang lahat ng mga gawain ay naisakatuparan at ang kanilang katayuan ay nagbago. Nangangahulugan ito na ang mga pagbabago sa playbook ay inilapat sa iyong server pati na rin sa host. Ang pagse-set up ng MEAN Stack ay isang halimbawa lamang. Maaari mong i-set up ang literal na anuman at lahat gamit ang Ansible Roles.

Dinadala tayo nito sa pagtatapos ng Ansible Roles blog. Kung nakita mong kapaki-pakinabang ang artikulong ito, tingnan ang ' inalok ni Edureka. Saklaw nito ang lahat ng mga tool na napabuti ang industriya ng IT.

May tanong ba sa amin? Mangyaring i-post ito sa at babalikan ka namin.