Ansible Provisioning: Chytřejší a snadnější způsob zajišťování

Tento blog Ansible Provisioning poukazuje na jednu z nejužitečnějších funkcí Ansible. Ukazuje, jak nastavit zásobník LAMP a hostit wensite na Ubuntu.

Prvním krokem v automatizaci jakéhokoli provozního životního cyklu aplikace je automatizace zajišťování infrastruktury. Zřizování je nepříjemný proces nastavení konfigurací, přidělení paměti, místa na disku atd., Než je skutečně použijete. Podívejme se, jak to Ansible Provisioning zjednodušuje a zrychluje.

Většina rozsáhlých nasazení vyžaduje, abyste měli stejné nastavení prostředí na více systémech.Jak to tedy děláte? Spouštět stejnou sadu příkazů na stovce systémů ručně ?? Nahh .. To je příliš stará škola. V tom jsou stroje dobří, ne lidé. Co kdybych vám řekl, že tento dlouhý a nudný proces lze provést pouhým provedením jediné příručky Ansible?O tom si v tomto blogu povíme - Ansible Provisioning.





Témata jsou:

Pokud chcete ovládat DevOps, ' Samozřejmě by měla být vaše volba.



Co je to možné?

DevOps je kultura, kde je automatizaci dána opravdu vysoká priorita. Když mohou existovat nástroje pro automatizaci nasazení a procesu testování, proč nemít nástroje pro správu a zajišťování konfigurace. Existuje milion způsobů, jak být chytřejší, a používání Ansible je jedním z nich. Je to jeden z nejpoužívanějších nástrojů.

Ansible používá knihy založené na YAML, kterým může porozumět i začátečník. Ke komunikaci se svými klienty používá architekturu bez agentů, která nezahrnuje žádný nástroj třetí strany, který by měl být nainstalován na klientský počítač, a místo toho používá připojení založená na SSH. Protože je to automatizační nástroj, pojďme zjistit, co může automatizovat.

Co může Ansible Automate?

Pojmenujte fázi vývojového cyklu a Ansible vám s ní pomůže, ať už jde o správu konfigurace, zajišťování, orchestraci, nepřetržité doručování, zabezpečení nebo dokonce nasazení aplikací. Ansible spojuje pracovní postup vývojového cyklu do platformy pro automatizaci bez agenta jednoho agenta.



  1. Zajišťování: Je nutné vytvořit vhodné prostředí pro život aplikace / softwaru. Ansible poskytuje způsob automatizace prostředí vytvořeného pro existenci aplikace.
  2. Správa konfigurace: Provádějte širokou škálu konfiguračních úkolů, jako jsou služby start / stop, změna konfigurace systému, zařízení nebo aplikace atd.
  3. Nasazení aplikace: Automatizujte definici nasazení pomocí Ansible a spravujte nasazení pomocí Možná věž . Díky tomu je celý aplikační cyklus od výroby po nasazení efektivní a spravovatelný.
  4. Kontinuální dodávka: Vytváření a správa kanálu nepřetržité integrace / nepřetržitého doručování může být těžkopádné. To je místo, kde Ansible zakročí a usnadní vývojářům život.
  5. Zabezpečení a dodržování předpisů: Práce s projekty vždy stanoví hranice a je integrována do bezpečnostních zásad společnosti. Automatická integrace zásad zabezpečení do nasazení může usnadnit dodržování zásad.
  6. Orchestrace: Celý projekt je kolekce mnoha různých instancí, které mají jinou konfiguraci. Ansible sloučí a spravuje tyto různé instance jako celek.

Potřeba možného zajišťování

Jak již bylo zmíněno dříve, první krok kautomatizace provozního životního cyklu aplikacípřipravuje prostředí, tj. zajišťování. Velká nasazení vyžadují více hostitelů, kteří mají přesně stejnou konfiguraci. Po zřízení jednoho hostitele, jaké jsou šance, že dalších 10 hostitelů získáte přesně stejné konfigurace, pokud se to provede ručně? Kolik času také strávíte opakováním stejného úkolu? To je místo, kde Ansible přichází do našich služeb. Stovky hostitelů můžete zřídit pouhým provedením jedné příručky. Kouzlo? Haha! Ne, pouze evoluce v automatizaci.

Demo: Vytvoření zásobníku LAMP a nasazení webové stránky

Předpokládejme, že se pokoušíte nasadit web na 30 systémech, každé nasazení webu bude vyžadovat základní operační systém, webový server, databázi a PHP. K instalaci těchto předpokladů na všech 30 systémů najednou používáme ansible playbook.

V tomto ukázkovém zřizování Ansible vám ukážu, jak zřídit prostředí hostování webových stránek pomocí Ansible. Nainstalujeme zásobník LAMP (Linux, Apache, MySQL a PHP) a poté nasadíme web.

Pro tuto ukázku jsem použil Linux VirtualBox s Ubuntu verze 17.04. Použil jsem dva virtuální stroje, jeden jako můj server, kde je nainstalován Ansible, a druhý stroj funguje jako můj vzdálený hostitel. Začněme nastavením Ansible na serveru.

Vytvořil jsem jednoduchou statickou webovou stránku uloženou ve složce index který má dva soubory, index.html a style.css.

index.html:

  Web využívající HTML a CSS                Přijměte hned        

style.css

* { okraj: 0 polstrování: 0 } záhlaví { obrázek na pozadí: lineární přechod (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url ('puppie.jpg') výška: 100vh velikost pozadí: obal pozice na pozadí: střed } .nav-menu { float: správně styl seznamu: žádný horní okraj: 30px } .nav-menu li { display: inline-block } .nav-menu li a { barva: tyrkysová textová dekorace: žádný polstrování: 5px 20px rodina fontů: 'Verdana', 'sans-serif' velikost písma: 20px } .homebtn a { ohraničení: 1px plná šedá barva pozadí: bílá } .nav-menu li a: hover { ohraničení: 1px plná šedá barva pozadí: bílá } .tagline { pozice: absolutní šířka: 1200px levý okraj: 0 horní okraj: 0 } h1 { barva bílá velikost písma: 50px rodina fontů: 'Verdana', 'sans-serif' zarovnání textu: na střed horní okraj: 275 pixelů } .přijmout { horní okraj: 30px levý okraj: 540 pixelů } .bttn { okraj: 1px bílá polstrování: 10px 30px barva: žlutá rodina fontů: 'Verdana', 'sans-serif' velikost písma: 22px textová dekorace: žádný } .adopt a: hover { barva pozadí: burlywood }

Krok 1: Proveďte následující příkazy k aktualizaci úložišť, přidání požadovaných úložišť a nakonfigurování PPA na vašem počítači pro možnou instalaci:

$ sudo apt-get update $ sudo apt-get nainstalovat software-vlastnosti-společné $ sudo apt-add-repository ppa: ansible / ansible

Stisknutím klávesy Enter přijměte přidání PPA a poté po aktualizaci úložišť nakonec nainstalujte Ansible.

$ sudo apt-get update $ sudo apt-get nainstalovat ansible

Krok 2: Přejděte do souboru / etc / hosts vašeho serveru a přidejte název hostitele a IP adresu hostitele.

atd. hostitelé - Ansible provisioning - EdurekaObrázek 1 - Přidat vzdálené hostitele do souboru / etc / hosts - Ansible Provisioning

jmenné prostory v C ++

Krok 3: Protože Ansible pracuje na architektuře bez agentů, která pomocí SSH komunikuje se svými hostiteli, nastavte klíče ssh. V zásadě máme jeden server a jednoho hostitele. Hostitele ovládáme naším serverem, a proto na serveru vytvoříme veřejný ssh klíč a zkopírujeme jej do počítače hostitele. Proveďte na serveru následující příkaz:

$ ssh-keygen

Zobrazí se výzva k zadání názvu souborukde jáchtěli byste uložit svůj klíč a také vás vyzvat k vytvoření hesla pro přístup ke generovanému klíči, které je volitelné. Ve výchozím nastavení se veřejný klíč uloží do souboru .ssh / id_rsa.pub a soukromý klíč se uloží do souboru .ssh / id_rsa.

Obr. 2 - Vytvořit klíč ssh - možné zřizování

Nyní musí být tento vygenerovaný klíč přítomen ve vašem hostiteli. Kopírování klíče do hostitele lze provést dvěma způsoby, buď ručně zkopírovat do hostitele, nebo použít příkaz ssh-copy-id. V tomto případě to zkopíruji pomocí příkazu ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Poznámka - Před provedením tohoto příkazu se ujistěte, že jste schopni ssh do svého hostitele.

Krok 4: Nakonfigurujte možné hostitele. Přejděte do souboru / etc / ansible / hosts a přidejte název hostitele. To se bude lišit podle počtu hostitelů a serverů, které máte. Můžete také mít více nežjeden servertady.

Obrázek 3 - Přidat vzdálené hostitele do souboru inventáře - možné zřizování

Krok 5: Zkontrolujte, zda jsou vaši hostitelé připraveni. Proveďte tento příkaz, měli byste získat podobný výstup.

$ ansible -m ping vše

Obr. 4 - Zkontrolujte stav vzdáleného hostitele - možné zřizování

Krok 6: Nyní je naše Ansible připravena, připravme prostředí na nasazení webu. K instalaci Apache, MySql a PHP použijeme jedinou příručku Ansible. Pojďme se na to podívat.

Poznámka: Pokud jste začátečník, podívejte se na tento blog, který vysvětluje, jak psát příručku.

--- # Setup LAMP Stack - hosts: host1 tasks: - name: Add ppa repository become: yes apt_repository: repo = ppa: ondrej / php - name: Install lamp stack become: yes apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql state: present update cache: yes - name: start apache server become: yes service: name: apache2 state: started enabled: yes - name: start mysql service become: yes services: name: stav mysql: spuštěno povoleno: ano - jméno: vytvořit cílový soubor adresáře: cesta = / var / www / html stav = režim adresáře = 0755 - název: nasadit index.html se stalo: ano kopie: src: / etc / ansible / index / index.html cíl: var / www / html / index / index.html

Tady, jak vidíte, máme 6 úkolů, každý úkol plní určitou funkci.

  • První úkol přidává úložiště potřebné k instalaci MySQL a PHP.
  • Druhá úloha nainstaluje apache2, MySQL-server, PHP a PHP-MySQL.
  • Třetí a čtvrtý úkol spouští služby Apache a MySQL.
  • Pátý úkol vytvoří cílový adresář v hostitelském počítači a
  • Nakonec šestý úkol provede soubor index.html, vyzvedne soubor ze serveru a zkopíruje jej do hostitelského počítače.

Spusťte tuto příručku pomocí následujícího příkazu:

$ ansible-playbook lamp.yml -K

Čáry stát se: ano v příručce říká, že se musí spouštět jako root, a proto při spuštění příkazu zobrazí výzvu k zadání hesla sudo.

Obr. 5 - Provést Ansible Playbook - Ansible Provisioning

Nyní můžete přejít do hostitelského počítače a zkontrolovat, zda byl web hostován.

Obr. 6 - Hostujte web na Localhostu - možné zřizování

Nyní jde o webovou stránku, která by byla nasazena na všechny hostitele, kteří interagují se serverem (v našem případě jsme měli pouze jednoho hostitele), ale to samé by bylo možné i pro 100 vzdálených hostitelů.

Tím se dostáváme na konec blogu Ansible Provisioning. Pokud vám tento článek připadá užitečný, podívejte se na ' nabízí Edureka. Pokrývá všechny nástroje, díky nimž je IT průmysl chytřejší.

Máte na nás dotaz? Zveřejněte to prosím na a my se vám ozveme.