Iespējama nodrošināšana: Gudrāks un bez piepūles nodrošināšanas veids

Šis emuārs Ansible Provisioning norāda uz vienu no visnoderīgākajām Ansible funkcijām. Tas demonstrē, kā iestatīt LAMP kaudzīti un mitināt wensite Ubuntu.

Pirmais solis jebkura lietojumprogrammas darbības dzīves cikla automatizācijā ir infrastruktūras nodrošināšanas automatizēšana. Nodrošināšana ir kaitinošs process konfigurāciju iestatīšanai, atmiņas, diska vietas utt. Piešķiršanai, pirms tās faktiski tiek izmantotas. Apskatīsim, kā Ansible Provisioning to padara vienkāršāku un ātrāku.

Lielākajai daļai liela mēroga izvietojumu ir nepieciešama identiska vides iestatīšana vairākās sistēmās.Tātad, kā jūs to darāt? Manuāli izpildīt to pašu komandu kopu simts sistēmās ?? Nahh .. Tā ir pārāk veca skola. Tas ir kaut kas mašīnām, nevis cilvēkiem. Ko darīt, ja es jums pateiktu, ka šo garo un garlaicīgo procesu var izdarīt, vienkārši izpildot vienu Ansible playbook?Par to mēs runāsim šajā emuārā - Ansible Provisioning.



Apskatītās tēmas ir:

Ja vēlaties apgūt DevOps, ' kursam vajadzētu būt jūsu izvēles iespējai.



Kas ir iespējams?

DevOps ir kultūra, kurā automatizācijai tiek piešķirta patiešām augsta prioritāte. Kad var būt rīki izvietošanas un testēšanas procesa automatizēšanai, kāpēc gan nav rīku konfigurācijas pārvaldībai un nodrošināšanai. Ir miljons veidu, kā kļūt gudrākam, un Ansible izmantošana ir viens no tiem. Tas ir viens no visplašāk izmantotajiem rīkiem.

Ansible izmanto YAML balstītas atskaņošanas grāmatas, kuras var saprast pat iesācējs. Lai sazinātos ar klientiem, tā izmanto bez aģentu arhitektūru, kurā klienta mašīnā nav jāinstalē neviens trešās puses rīks, bet tā vietā izmanto SSH balstītus savienojumus. Iespējams, ka tas ir automatizācijas rīks. Noskaidrosim, ko tas var automatizēt.

Ko var automatizēt?

Nosauciet attīstības cikla posmu, un Ansible jums tajā palīdzēs, vai tā būtu konfigurācijas pārvaldība, nodrošināšana, orķestrēšana, nepārtraukta piegāde, drošība vai pat lietojumprogrammu izvietošana. Ansible apvieno izstrādes cikla darbplūsmu vienā aģentā, mazāk automatizācijas platformā.



  1. Nodrošināšana: Ir nepieciešams izveidot piemērotu vidi lietojumprogrammas / programmatūras darbībai. Ansible nodrošina veidu, kā automatizēt vidi, kas izveidota lietojumprogrammas pastāvēšanai.
  2. Konfigurācijas pārvaldība: Veiciet dažādus konfigurācijas uzdevumus, piemēram, sākšanas / apturēšanas pakalpojumus, mainiet sistēmas, ierīces vai lietojumprogrammas konfigurāciju utt.
  3. Lietotnes izvietošana: Automatizējiet izvietošanas noteikšanu ar Ansible un pārvaldiet izvietošanu, izmantojot Annis tornis . Tas padara visu lietojumprogrammu ciklu no ražošanas līdz izvietošanai efektīvu un pārvaldāmu.
  4. Nepārtraukta piegāde: Nepārtrauktas integrācijas / nepārtrauktas piegādes cauruļvada izveide un pārvaldība var kļūt apgrūtinoša. Tieši tajā iesaistās Ansible un atvieglo izstrādātāja dzīvi.
  5. Drošība un atbilstība: Darbs ar projektiem vienmēr nosaka robežas un tiek integrēts uzņēmuma drošības politikā. Drošības politiku automātiska integrēšana ar izvietošanu var atvieglot politikas ievērošanu.
  6. Orķestrējums: Viss projekts ir daudzu dažādu gadījumu kolekcija, kuriem ir atšķirīga konfigurācija. Nevar saplūst un pārvalda šīs dažādās instances kopumā.

Nepieciešamība pēc iespējamas nodrošināšanas

Kā minēts iepriekš, pirmais solis uzlietojumprogrammu darbības dzīves cikla automatizēšanagatavo vidi, t.i., nodrošinājumu. Lielai izvietošanai ir nepieciešami vairāki saimnieki, kuriem ir tieši tādas pašas konfigurācijas. Pēc viena resursdatora nodrošināšanas, cik liela ir iespēja, ka nākamajiem 10 resursdatoriem būs tieši tādas pašas konfigurācijas, ja to izdarīs manuāli? Arī cik daudz laika jūs pavadīsit, veicot to pašu atkārtoto uzdevumu? Šeit Ansible nonāk mūsu dienestā. Varat nodrošināt simtiem resursdatoru, vienkārši izpildot vienu atskaņošanas grāmatu. Maģija? Haha! Nē, tikai evolūcija automatizācijā.

Demonstrācija: izveidojiet LAMP skursteni un izvietojiet vietni

metodes pārslodze un ignorēšana Java

Pieņemsim, ka mēģināt izvietot vietni 30 sistēmās, katras vietnes izvietošanai būs nepieciešama pamata OS, tīmekļa serveris, datu bāze un PHP. Lai instalētu šos priekšnoteikumus visās 30 sistēmās vienlaikus, mēs izmantojam anonīmu grāmatu.

Šajā demonstrācijā Ansible Provisioning Es parādīšu, kā nodrošināt vietņu mitināšanas vidi, izmantojot Ansible. Mēs instalējam LAMP (Linux, Apache, MySQL un PHP) kaudzīti un pēc tam izvietojam vietni.

Šajā demonstrācijā esmu izmantojis Linux VirtualBox ar Ubuntu versiju 17.04. Esmu izmantojis divas virtuālās mašīnas, vienu kā serveri, kurā ir instalēts Ansible, bet otru - kā manu attālo resursdatoru. Sāksim ar iestatījumu Ansible serverī.

Esmu izveidojis vienkāršu statisku tīmekļa lapu, kas saglabāta mapē indekss kurā ir divi faili, index.html un style.css.

index.html:

  Vietne, izmantojot HTML un CSS                Pieņemt tūlīt        

stils.css

* { starpība: 0 polsterējums: 0 } header { fona attēls: lineārs gradients (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url ('puppie.jpg') augstums: 100vh fona lielums: vāks background-position: centrs } .nav-menu { pludiņš: labi list-style: nav margin-top: 30 pikseļi } .nav-menu li { displejs: inline-block } .nav-menu li a { krāsa: tirkīza teksta apdare: nav polsterējums: 5px 20px font-family: 'Verdana', 'sans-serif' fonta lielums: 20 pikseļi } .homebtn a { apmale: 1px vienkrāsains fona krāsa: balta } .nav-menu li a: lidināties { apmale: 1px vienkrāsains fona krāsa: balta } .tagline { pozīcija: absolūta platums: 1200 pikseļi kreisajā malā: 0 margin-top: 0 } h1 { krāsa: balta fonta lielums: 50 pikseļi font-family: 'Verdana', 'sans-serif' text-align: center margin-top: 275px } .adopt { margin-top: 30 pikseļi kreisajā malā: 540 pikseļi } .bttn { apmale: 1px cieta balta polsterējums: 10 pikseļi 30 pikseļi krāsa: dzeltena font-family: 'Verdana', 'sans-serif' fonta lielums: 22 pikseļi teksta apdare: nav } .adopt a: hover { fona krāsa: burlywood }

1. darbība: Izpildiet šīs komandas, lai atjauninātu krātuves, pievienotu nepieciešamos krātuves un konfigurētu datorā PPA iespējamai instalēšanai:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Nospiediet ievadīšanas taustiņu, lai akceptētu PPA papildinājumu, un pēc tam pēc krātuvju atjaunināšanas instalējiet Ansible.

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

2. darbība: Atveriet sava servera failu / etc / hosts un pievienojiet resursdatora nosaukumu un IP adresi.

utt. saimnieki - iespējama nodrošināšana - Edureka1. attēls. Attālo saimnieku pievienošana failam / etc / hosts File - Ansible Provisioning

3. solis: Tā kā Ansible strādā ar bez aģentu arhitektūru, izmantojot SSH, lai sazinātos ar tās saimniekiem, iestatiet ssh atslēgas. Būtībā mums ir viens serveris un viens resursdators. Mēs kontrolējam resursdatoru ar savu serveri un tādējādi serverī izveidojam publisku ssh-atslēgu un kopējam to resursdatora mašīnā. Serverī izpildiet šādu komandu:

$ ssh-keygen

Jums tiks piedāvāts ievadīt faila nosaukumukur esvēlaties saglabāt atslēgu un arī aicināt izveidot paroli, lai piekļūtu ģenerētajai atslēgai, kas nav obligāta. Pēc noklusējuma publiskā atslēga tiek saglabāta .ssh / id_rsa.pub failā un privātā atslēga tiek saglabāta .ssh / id_rsa.

2. attēls - izveidot ssh atslēgu - iespējama nodrošināšana

kas ir lielie dati

Tagad šai ģenerētajai atslēgai ir jābūt jūsu resursdatorā. Atslēgu var kopēt resursdatorā divējādi: vai nu manuāli kopēt resursdatorā, vai arī izmantot komandu ssh-copy-id. Šajā gadījumā es to nokopēšu, izmantojot komandu ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Piezīme. Pirms izpildāt šo komandu, pārliecinieties, vai spējat ievadīt savu resursdatoru.

4. solis: Konfigurēt Ansible resursdatorus. Atveriet failu / etc / ansible / hosts un pievienojiet resursdatora nosaukumu. Tas mainīsies atkarībā no jūsu resursdatoru un serveru skaita. Jums var būt arī vairāk nekāviens serverisšeit.

3. attēls. Attālo saimnieku pievienošana krājuma failā - iespējama nodrošināšana

5. darbība: Pārbaudiet, vai jūsu mitinātāji ir gatavi. Izpildiet šo komandu, jums vajadzētu iegūt līdzīgu izvadi.

$ ansible -m ping visus

4. attēls. Pārbaudiet attālā resursdatora statusu - iespējama nodrošināšana

6. solis: Tagad mūsu Ansible ir gatavs, padarīsim vidi gatavu vietnes izvietošanai. Apache, MySql un PHP instalēšanai mēs izmantosim vienu Ansible playbook. Apskatīsim to.

Piezīme. Ja esat iesācējs, apskatiet to šo emuārs, kurā paskaidrots, kā rakstīt lugu.

--- # LAMP steka iestatīšana - saimniekdatori: host1 uzdevumi: - nosaukums: Pievienot ppa repozitoriju kļūt: jā apt_repository: repo = ppa: ondrej / php - nosaukums: Instalēt lampas kaudzīti: jā apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql stāvoklis: pašreizējā atjauninājumu kešatmiņa: jā - nosaukums: start apache servera kļūda: jā serviss: nosaukums: apache2 stāvoklis: sākts iespējots: jā - nosaukums: sākt mysql pakalpojumu kļūt: jā pakalpojumi: nosaukums: mysql stāvoklis: ieslēgts iespējots: jā - nosaukums: izveidot mērķa direktorijas failu: ceļš = / var / www / html stāvoklis = direktorija režīms = 0755 - nosaukums: izvietot index.html kļuva: jā kopija: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Šeit, kā redzat, mums ir 6 uzdevumi, katrs uzdevums veic noteiktu funkciju.

  • Pirmais uzdevums pievieno krātuvi, kas nepieciešama MySQL un PHP instalēšanai.
  • Otrais uzdevums instalē apache2, MySQL-server, PHP un PHP-MySQL.
  • Trešais un ceturtais uzdevums sāk Apache un MySQL pakalpojumu.
  • Piektais uzdevums izveido mērķa direktoriju resursdatorā un
  • Visbeidzot, sestais uzdevums izpilda failu index.html, tas paņem failu no servera mašīnas un kopē to resursdatorā.

Izpildiet šo atskaņošanas grāmatu ar šādu komandu:

$ ansible-playbook lamp.yml -K

Līnijas kļūt: jā playbook stāsta, ka tā ir jāizpilda kā root, un tāpēc, izpildot komandu, tā pieprasīs sudo paroli.

5. attēls. Izpildiet Ansible Playbook - Ansible Provisioning

Tagad jūs varat ieiet resursdatora mašīnā un pārbaudīt, vai vietne ir mitināta.

6. attēls - Vietnes mitināšana vietnē Localhost - Ansible Provisioning

Tagad tā ir vietne, kas tiktu izvietota visos resursdatoros, kas mijiedarbojas ar serveri (mūsu gadījumā mums bija tikai viens resursdators), bet tas pats būtu iespējams pat 100 attālajiem saimniekiem.

Tas mūs noved pie Ansible Provisioning emuāra beigām. Ja jums šķiet, ka šis raksts ir noderīgs, skatiet vietni ' piedāvā Edureka. Tas aptver visus rīkus, kas ir padarījuši IT nozari gudrāku.

Vai mums ir jautājums? Lūdzu, ievietojiet to vietnē un mēs sazināsimies ar jums.