Hindi Masasabing Paglalaan: Mas matalino at Walang kahirap-hirap na paraan ng Paglalaan

Itinuturo ng blog na Ansible Provisioning na ito ang isa sa pinaka kapaki-pakinabang na tampok na Ansible. Demonyo ito kung paano mag-set-up ng isang LAMP stack at mag-host ng wensite sa Ubuntu.

Ang unang hakbang sa pag-automate ng anumang ikot ng buhay sa pagpapatakbo ng aplikasyon ay ang pag-automate ng pagkakaloob ng imprastraktura. Ang pagbibigay ay isang nakakainis na proseso ng mga setting ng pag-set up, paglalaan ng memorya, disk space, atbp. Bago pa talaga gamitin ang mga ito. Tingnan natin kung paano ginagawang mas simple at mas mabilis ng Ansible Provisioning na ito.

Karamihan sa mga malalaking sukat na pag-deploy ay nangangailangan sa iyo na magkaroon ng isang magkaparehong pag-setup ng kapaligiran sa maraming mga system.Kaya, paano mo ito magagawa? Isagawa ang parehong hanay ng mga utos sa isang daang mga sistema nang manu-mano ?? Nahh .. Masyadong matandang paaralan iyon. Ito ay isang bagay na mahusay ang mga makina, hindi mga tao. Paano kung sinabi ko sa iyo ang mahaba at mainip na proseso na ito ay maaaring magawa sa pamamagitan lamang ng pagpapatupad ng isang solong Ansible playbook?Iyon ang pag-uusapan natin sa blog na ito - Ansible Provisioning.





Ang mga paksang sakop ay:

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



goto sa c ++

Ano ang Ansible?

Ang DevOps ay isang kultura kung saan ang automation ay binibigyan ng talagang mataas na priyoridad. Kapag maaaring may mga tool para sa pag-automate ng paglawak at proseso ng pagsubok, bakit hindi ka magkaroon ng mga tool para sa pamamahala at paglalaan ng pagsasaayos. Mayroong isang milyong mga paraan upang makakuha ng mas matalino at ang paggamit ng Ansible ay isa sa mga ito. Ito ay isa sa mga pinaka malawak na ginagamit na tool.

Gumagamit ang Ansible ng mga playbook na batay sa YAML na maaaring maintindihan ng isang nagsisimula. Gumagamit ito ng isang walang arkitekturang arkitektura upang makipag-ugnay sa mga kliyente nito na hindi nagsasangkot ng anumang tool ng third party na mai-install sa makina ng kliyente, at sa halip ay gumagamit ng mga koneksyon na nakabatay sa SSH. Mahusay na pagiging isang tool sa pag-aautomat, alamin natin kung ano ang maaaring i-automate nito.

Ano ang maaaring Ansible Automate?

Pangalanan ang isang yugto sa ikot ng pag-unlad at ang Ansible ay makakatulong sa iyo kasama nito, maging ang pamamahala ng pagsasaayos, pagkakaloob, orkestra, tuluy-tuloy na paghahatid, seguridad o kahit paglawak ng application. Pinagsasama-sama ng Ansible ang pag-ikot ng daloy ng trabaho sa isang solong ahente na hindi gaanong automation platform.



  1. Pagbibigay: Ang paglikha ng isang angkop na kapaligiran para mabuhay ang application / software ay kinakailangan. Nagbibigay ang Ansible ng isang paraan upang i-automate ang kapaligiran na nilikha para sa pagkakaroon ng application.
  2. Pamamahala ng Pag-configure: Magsagawa ng iba't ibang mga gawain sa pagsasaayos, tulad ng mga serbisyo sa pagsisimula / pagtigil, baguhin ang pagsasaayos ng isang system, aparato o isang application, atbp.
  3. Pag-deploy ng Application: I-automate ang pagtukoy ng paglawak sa Ansible at pamahalaan ang paggamit ng paglawak Nakakain na tore . Ginagawa nitong buong ikot ng aplikasyon mula sa produksyon hanggang sa paglawak na mabisa at mapapamahalaan.
  4. Patuloy na Paghahatid: Ang paglikha at pamamahala ng isang tuloy-tuloy na pagsasama / tuluy-tuloy na paghahatid ng pipeline ay maaaring maging mahirap. Iyon ang hakbang ng Ansible at ginagawang mas madali ang buhay ng developer.
  5. Seguridad at pagsunod: Ang pagtatrabaho sa mga proyekto, palaging nagtatakda ng mga hangganan at isinama sa mga patakaran sa seguridad ng kumpanya. Ang pagkakaroon ng mga patakaran sa seguridad na awtomatikong isinama sa paglawak ay maaaring gawing mas madali ang pagsunod sa mga patakaran.
  6. Orkestra: Ang isang buong proyekto ay isang koleksyon ng maraming iba't ibang mga pagkakataon na pagkakaroon ng isang iba't ibang mga pagsasaayos. Ang sible na pagsasama at pinamamahalaan ang iba't ibang mga pagkakataong ito bilang isang kabuuan.

Kailangan para sa Ansible Provisioning

Tulad ng nabanggit kanina, ang unang hakbang upangautomating ang pagpapatakbo cycle ng buhay ng mga aplikasyonnaghahanda ng kapaligiran, ibig sabihin, paglalaan. Ang mga malalaking pag-deploy ay nangangailangan ng maraming mga host na mayroong eksaktong eksaktong mga pagsasaayos. Matapos magbigay ng isang host, ano ang mga pagkakataong makuha mo ang susunod na 10 host na magkaroon ng eksaktong parehong mga pagsasaayos kung manu-mano ang nagawa? Gayundin kung gaano karaming oras ang gugugol mo sa paggawa ng parehong paulit-ulit na gawain? Dito dumarating ang Ansible sa aming serbisyo. Maaari kang magbigay ng daan-daang mga host sa pamamagitan lamang ng pagpapatupad ng isang solong playbook. Mahika? Haha! Hindi, ebolusyon lamang sa awtomatiko.

Demo: Lumikha ng isang LAMP Stack at Mag-deploy ng isang Webpage

Ipagpalagay na sinusubukan mong maglagay ng isang website sa 30 mga system, ang bawat pag-deploy ng website ay mangangailangan ng isang batayang OS, web-server, Database, at PHP. Gumagamit kami ng hindi madaling basang aklat upang mai-install ang mga paunang kinakailangan sa lahat ng 30 mga system nang sabay-sabay.

Sa demo na ito ng Ansible na paglalaan, ipapakita ko sa iyo kung paano ibibigay ang kapaligiran sa pagho-host ng website gamit ang Ansible. I-install namin ang LAMP (Linux, Apache, MySQL, at PHP) stack at pagkatapos ay lumawak ng isang website.

Para sa demo na ito, gumamit ako ng isang Linux VirtualBox na mayroong Ubuntu bersyon 17.04. Gumamit ako ng dalawang virtual machine, isa bilang aking server kung saan naka-install ang Ansible at ang iba pang machine ay nagsisilbing aking remote host. Magsimula tayo sa pagtatakda ng Ansible sa server.

Lumikha ako ng isang simpleng static na webpage na nai-save sa isang folder index na mayroong dalawang mga file, index.html, at style.css.

index.html:

  Website na gumagamit ng HTML at CSS                Magpatibay Ngayon        

style.css

* { margin: 0 padding: 0 } header { background-image: linear-gradient (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') taas: 100vh background-size: takip background-posisyon: gitna } .nav-menu { float: tama list-style: wala tuktok ng margin: 30px } .nav-menu li { ipakita: inline-block } .nav-menu li a { kulay: turkesa dekorasyon ng teksto: wala padding: 5px 20px font-family: 'Verdana', 'sans-serif' laki ng font: 20px } .homebtn isang { hangganan: 1px solidong kulay-abo background-color: puti } .nav-menu li a: hover { hangganan: 1px solidong kulay-abo background-color: puti } .tagline { posisyon: ganap lapad: 1200px kaliwa-margin: 0 tuktok ng margin: 0 } h1 { kulay puti laki ng font: 50px font-family: 'Verdana', 'sans-serif' text-align: gitna tuktok ng margin: 275px } .adopt { tuktok ng margin: 30px kaliwa-kaliwa: 540px } .bttn { hangganan: 1px solid puti padding: 10px 30px kulay: dilaw font-family: 'Verdana', 'sans-serif' laki ng font: 22px dekorasyon ng teksto: wala } .adopt a: mag-hover { kulay sa background: burberry }

Hakbang 1: Isagawa ang mga sumusunod na utos upang i-update ang mga repository, idagdag ang kinakailangang mga repository at i-configure ang PPA sa iyong machine para sa Ansible install:

$ sudo apt-get update $ sudo apt-get install software-assets-common $ sudo apt-add-repository ppa: hindi marunong kumain / hindi marunong kumain

Pindutin ang enter upang tanggapin ang karagdagan ng PPA at pagkatapos ay sa wakas ay mai-install ang Ansible pagkatapos i-update ang mga repository.

$ sudo apt-get update $ sudo apt-get install ansible

Hakbang 2: Pumunta sa file ng iyong server / etc / host at idagdag ang hostname at ang IP address ng host.

atbp ay nagho-host - Hindi kapani-paniwala na paglalaan - EdurekaLarawan 1 - Magdagdag ng Mga Remote na host sa / etc / host File - Hindi Masasamang Paglalaan

Hakbang 3: Tulad ng gumagana ng Ansible sa arkitektura na walang ahente ng paggamit ng SSH upang makipag-usap sa mga host nito, i-set up ang mga ssh key. Talaga, mayroon kaming isang server at isang host. Kinokontrol namin ang host sa aming server at dahil dito lumilikha kami ng isang pampublikong ssh-key sa server at kinopya ito sa machine ng host. Isagawa ang sumusunod na utos sa server:

$ ssh-keygen

Sasabihan ka na ipasok ang filenamesaan akonais mong i-save ang iyong key at i-prompt ka rin para sa paglikha ng isang password para sa pag-access sa nabuong key na opsyonal. Bilang default, nai-save ang pampublikong key sa .ssh / id_rsa.pub file at ang pribadong key ay nai-save sa .ssh / id_rsa.

Larawan 2 - Lumikha ssh Key - Ansible Provisioning

Ngayon ang nabuong key na ito ay kailangang naroroon sa iyong host. Ang pagkopya ng susi sa host ay maaaring gawin sa dalawang paraan, alinman sa manu-manong kopya sa host o gamitin ang ssh-copy-id command. Sa kasong ito, kokopyahin ko ito gamit ang ssh-copy-id root @ IP_of_host command.

$ ssh-copy-id root@192.168.56.104

Tandaan- Tiyaking nagagawa mong mag-shsh sa iyong host bago ipatupad ang utos na ito.

Hakbang 4: I-configure ang Mga hindi nakaka-host na host. Pumunta sa / etc / ansible / host file at idagdag ang hostname. Mag-iiba ito ayon sa bilang ng mga host at server na mayroon ka. Maaari ka ring magkaroon ng higit pa saisang serverdito

Larawan 3 - Magdagdag ng Mga Remote na Host sa Inventory File - Ansible Provisioning

ano ang jit compiler sa java

Hakbang 5: Suriin kung handa na ang iyong mga host. Isagawa ang utos na ito dapat kang makakuha ng isang katulad na output.

$ ansible -m ping lahat

Larawan 4 - Suriin ang Katayuan ng Remote Host - Ansible Provisioning

Hakbang 6: Handa na ang aming Ansible, gawin nating handa ang kapaligiran na mag-deploy ng isang website. Gagamitin namin ang isang solong Ansible playbook upang mai-install ang Apache, MySql, at PHP. Tingnan natin ito.

Tandaan: Kung nagsisimula ka, tingnan ito blog na nagpapaliwanag kung paano magsulat ng isang playbook.

--- # Setup LAMP Stack - host: host1 gawain: - pangalan: Magdagdag ng ppa repository maging: oo apt_repository: repo = ppa: ondrej / php - pangalan: I-install ang lampara ng stack maging: oo apt: pkg: - apache2 - MySQL-server - php7.0 - php7.0-MySQL estado: kasalukuyang pag-update ng cache: oo - pangalan: simulan ang Apache server maging: oo serbisyo: pangalan: Apache2 estado: sinimulan pinagana: oo - pangalan: simulan ang MySQL serbisyo maging: oo serbisyo: pangalan: estado ng MySQL: nagsimulang pinagana: oo - pangalan: lumikha ng target na file ng direktoryo: path = / var / www / html state = Directory mode = 0755 - name: deploy index.html naging: yes copy: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Dito tulad ng nakikita mo, mayroon kaming 6 na gawain, ang bawat gawain ay gumaganap ng isang tukoy na pagpapaandar.

  • Ang unang gawain ay nagdaragdag ng kinakailangang imbakan upang mai-install ang MySQL at PHP.
  • Ang ikalawang gawain ay nag-i-install ng apache2, MySQL-server, PHP, at PHP-MySQL.
  • Ang pangatlo at pang-apat na gawain ay nagsisimula sa serbisyo ng Apache at MySQL.
  • Ang pang-limang gawain ay lumilikha ng isang direktoryo ng target sa host machine at
  • Sa wakas, ang pang-anim na gawain ay nagpapatupad ng index.html file, kinukuha nito ang file mula sa server machine at kinopya ito sa host machine.

Isagawa ang playbook na ito sa sumusunod na utos:

$ ansible-playbook lamp.yml -K

Ang mga linya maging: oo sa playbook ay nagsasabi na kailangan itong magpatupad bilang ugat at samakatuwid kapag nagpatupad ka ng utos, magre-prompt ito para sa sudo password.

Larawan 5 - Isakatuparan ang Ansible Playbook - Hindi Mahusay na Paglalaan

Ngayon ay maaari kang pumunta sa host machine at suriin kung na-host ang website.

Larawan 6 - Mag-host ng Website sa Localhost - Ansible Provisioning

Ngayon iyon ay isang webpage na nais mai-deploy sa lahat ng mga host na nakikipag-ugnay sa server (sa aming kaso, mayroon kaming isang host) ngunit ang parehong posible kahit sa 100 mga remote host.

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

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