Ansible Roles - konečný způsob, jak rozmotat své příručky

Tento blog Ansible Roles hovoří o tom, jak se role používají k tomu, aby byly složité příručky čitelné a znovu použitelné s ukázkou nastavení MEAN Stack.

Ansible nám umožňuje automatizovat správu konfigurace systémů a přidávat libovolný počet klientů, jak si přejeme. Přemýšleli jste někdy, jak složité to může být? Přemýšleli jste někdy, jak dlouho a matoucí mohou být knihy? Jak Ansible stále působí, že to vypadá jako vánek? Využívá koncept Ansible Roles a o tom si v tomto blogu povíme.

Pokrytá témata:





Pokud chcete ovládat DevOps, ' samozřejmě by byla vaše volba.

Úvod do možných rolí

Ansible Role je koncept, který se zabývá spíše nápady než událostmi. Je to v podstatě další úroveň abstrakce, která se používá k organizování příruček. Poskytují kostru pro nezávislou a opakovaně použitelnou sbírku proměnných, úkolů, šablon, souborů a modulů, které lze automaticky načíst do příručky. Playbooks jsou sbírkou rolí. Každá role má specifické funkce.



Vysvětlím to na příkladu. Předpokládejme, že chcete, aby vaše hrací kniha plnila 10 různých úkolů na 5 různých systémech, použili byste k tomu jednu příručku? Ne, používání jediné příručky může způsobit, že je matoucí a náchylný k omylům. Místo toho můžete vytvořit 10 různých rolí, kde každá role bude plnit jeden úkol. Pak vše, co musíte udělat, je zmínit název role v příručce, abyste je mohli volat. V tomto blogu se dozvíte, jak používat role dále.

Opakovaná použitelnost možných rolí

Možné role jsou na sobě nezávislé. Výkon jedné role nezávisí na ostatních, a proto mohou být znovu použity. Tyto role můžete dokonce upravit a přizpůsobit podle svých požadavků. To snižuje náš úkol přepsat celou část kódu pokaždé, když to potřebujeme, a tím se zjednodušuje naše práce.

Vraťme se k předchozímu příkladu. Napsali jste 10 rolí a nyní je musíte použít 5 pro další sadu zajišťování. Píšete znovu celý scénář? Ne, těchto 5 rolí stačí znovu použít tak, že je zavoláte v této nové příručce. V případě potřeby můžete také provést úpravy, ale nakonec by vám to ušetřilo spoustu času.



Řekněme, že musíte napsat scénář pro nastavení zásobníku LAMP. Musíte vytvořit 4 role, každou pro vytváření Linuxu, Apache, MongoDB a PHP. V budoucnu, pokud chcete další scénář pro nastavení LAMP stacku a WordPressu, vytvoříte znovu nové role pro LAMP stack a WordPress? Ne! Můžete jednoduše znovu použít starší role (používané pro LAMP stack) a navíc vytvořit novou roli pro WordPress.

Začínáme s vizuálním studiem

Role adresářová struktura

Pomocí Ansible Roles očekávejte, že soubory budou v určité struktuře souborů. Nejvíce matoucí částí používání rolí je porozumění hierarchii souborů. Ansible poskytuje funkci nazvanou Ansible Galaxy, která vám pomůže hrát s rolemi. Už víme, kde je náš Ansible na Ubuntu (/ etc / ansible). Už jste někdy viděli adresář s názvem role pod / etc / ansible? Tento adresář existuje přesně z tohoto důvodu. V tomto adresáři vytvoříte různé role.

Adresář bude vypadat takto:

Strom - Možné role - Edureka

Roli můžete vytvořit pomocí ansible-galaxy příkaz init uvnitř / etc / ansible / role.

$sudoansible-galaxy init

Uvidíte, že by byly vytvořeny i další adresáře rolí.

Tyto adresáře jsou úkoly, obslužné rutiny, výchozí hodnoty, vars, soubory, šablony a meta a soubor README.mdsoubor.

Úkoly - Obsahuje hlavní seznam úkolů, které má role vykonat. Toobsahujesoubor main.yml pro tuto konkrétní roli.

Manipulátory - Obsahuje obslužné rutiny, které mohou být použity touto rolí nebo dokonce kdekoli mimo tuto roli.

Výchozí nastavení - Obsahuje výchozí proměnné, které bude tato role používat.

Jehož - Tento adresář se skládá z dalších proměnných, které bude role používat. Tyto proměnné lze definovat v příručce, ale je dobrým zvykem je definovat v této části.

Soubory - Obsahuje soubory, které lze nasadit touto rolí. Obsahuje soubory, které je třeba odeslat hostitelům při konfiguraci role.

Meta - Definuje metadata pro tuto roli. V zásadě obsahuje soubory, které vytvářejí závislosti rolí.

Každý úkol adresář musí sestávat z main.yml soubor, kde je zapsán skutečný kód pro danou roli.

Pojďme nyní pochopit fungování nebo role s ukázkou instalace MEAN Stack.

jak předat odkazem v Javě

Demo: Instalace MEAN Stack pomocí možných rolí

Ukážu, jak nainstalovat MEAN Stack pomocí Ansible Roles pouhým provedením jedné jediné příručky. Budeme mít tři role: 1) Předpoklady instalace, 2) Instalace MongoDB a 3) Instalace NodeJS. Předpokládám, že už jste nainstaloval Ansible a vytvořil spojení server-klient na Ubuntu . Začněme hrát s Ansible Roles.

Krok 1 - Přejděte do adresáře / etc / ansible / role a vytvořte role pro předpoklady, MongoDB a NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init předpoklady $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Nyní byste ve svém adresáři rolí měli vidět tři role.

Krok 2 - Napište main.yml pro předpoklady, které nainstalují Git.

$ cd prerequisites / tasks / main.yml --- - name: Install git apt: name: git state: present update_cache: yes

Krok 3 - Napište main.yml pro roli MongoDB

$ cd /mongodb/tasks/main.yml --- - název: MongoDB - import veřejného klíče apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - název: MongoDB - přidat úložiště apt_repository: název souboru: '/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 &'

Krok 4 - Napište main.yml pronodejsrole

$ cd nodejs / tasks / main.yml --- - název: Node.js - získat skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Nastavit oprávnění ke spuštění souboru skriptu: path:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Spustit prostředí instalačního skriptu:' {{var_node}} / nodejs.sh '- name: Node.js - Odebrat soubor instalačního skriptu: path:' {{var_node}} / nodejs.sh 'state: absent - name: Node.js - Install Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Install bower and gulp globally npm: name = {{item}} state = present global = yes with_items : - altánek - polknutí

Krok 5 - Napište svůj hlavní scénář

$ cd /etc/ansible/mean.yml --- - hostitelé: uzly remote_user: ansible become: yes become_method: sudo vars: # během instalace uzlu je potřeba proměnná var_node: / tmp role: - předpoklady - mongodb - nodejs

Nyní, když jsme definovali role pro instalaci předpokladů, M.ongoDB a NodeJs, nasadíme je. Spusťte příručku pomocí následujícího příkazu.

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

Jak vidíte, všechny úkoly byly provedeny a jejich stav se změnil. To znamená, že změny v příručce byly použity na váš server i na hostitele. Nastavení MEAN Stack je jen jedním příkladem. Pomocí Ansible Roles můžete nastavit doslova cokoli a všechno.

Tím se dostáváme na konec blogu Ansible Roles. Pokud vám tento článek připadá užitečný, podívejte se na ' nabízí Edureka. Pokrývá všechny nástroje, které zlepšily IT průmysl.

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