sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL Planeta v Ansible Galaxy

Ansible Galaxy je jednoduše nejjednodušší způsob, jak najít již napsané role Ansible, vytvořit a sdílet své role a skočit do galaxie obsahu Ansible!

====================Oznámení v hlavním vysílacím čase! =====================

FOSDEM PGDay 2016 se bude konat 29. ledna před FOSDEM, což je největší evropská open source událost, a PostgreSQL Devroom se bude konat 31. ledna na FOSDEM v Bruselu.

Pokud vás zajímá správa konfigurace, orchestrace serveru, automatizované nasazení (proto čtete tento blogový příspěvek, že?) a rádi pracujete s PostgreSQL (pro jistotu) na AWS (volitelně), pak se možná budete chtít připojit k mé přednášce „Správa PostgreSQL pomocí Ansible“ 29. ledna, 12:30-13:20.

Podívejte se prosím na úžasný harmonogram obou akcí! Doufám, že se tento týden uvidíme v Bruselu!

====================Oznámení v hlavním vysílacím čase! =====================

Ahoj Ansible Galaxy!

Ansible má silnou komunitu, díky které jsou ještě mocnější. Vývojáři, kteří přispívají do Ansible, rádi přispívají a uživatelé, kteří Ansible používají pro své vlastní systémy, jej rádi používají.

Obsah Ansible, na který odkazovali na své webové stránce, jsou v podstatě role Ansible. Pokračujme rolemi v tomto blogovém příspěvku a pokusme se pochopit, co role Ansible znamená a jaké jsou rozdíly mezi rolemi, příručkami a úkoly.

Co je to ansible role?

Rozhodně byste měli používat role. Role jsou skvělé. Používejte role. Role! Řekli jsme to dost? Role jsou skvělé.

Než budeme mluvit o rolích, připomeňme si definici úkolu a příručky v terminologii Ansible.

Úkol

Úlohy jsou zodpovědné za volání modulu se specifickou sadou parametrů.

Můžete si přečíst můj předchozí příspěvek na blogu, kde se dozvíte více o modulech Ansible, a podívejte se na moduly Ansible Postgres s příklady.

Každá úloha Ansible obsahuje název, modul, který má být vyvolán, parametry modulu a volitelně předběžné/následné podmínky. Umožňují nám volat moduly Ansible a předávat informace po sobě jdoucím úkolům.

Úloha níže vyvolá souborový modul poskytnutím 4 parametrů.


- name: Ensure the data folder has right ownership
  file: path="/var/lib/postgresql" state=directory owner=postgres group=postgres

Zajišťuje, že jsou splněny 3 podmínky:

  • /var/lib/postgresql existuje jako adresář
  • vlastníkem /var/lib/postgresql je „postgres“
  • skupina /var/lib/postgresql je „postgres“

Pokud neexistuje, Ansible vytvoří adresář a přiřadí vlastníka a skupinu. Pokud se liší pouze vlastník, Ansible z něj udělá „postgres“.

Příručka

Playbooky obsahují hry a hry obsahují úkoly. Úkoly volají moduly a mohou (volitelně) manipulátory spouště (spustit jednou, spustit na konci) .

Nyní se můžeme podívat na velmi jednoduchý příklad příručky níže:


- name: Ensure all virtual machines are ready
  hosts: 127.0.0.1
  connection: local
  vars_files: # load default variables from YAML files below
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/provision.yml' # load infrastructure setup tasks

- name: Ensure all required PostgreSQL dependencies ready
  hosts: postgresql-all # manage all PostgreSQL servers
  sudo: yes
  sudo_user: root
  vars_files:
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/postgresql.yml' # load PostgreSQL setup tasks

V této příručce máme dvě hry:

První hraní zajišťuje, že všechny virtuální stroje jsou připraveny a fungují na localhost. Načte výchozí proměnné ze souborů YAML s názvem postgresql.yml a aws.yml. Tyto soubory si můžete představit jako konfigurační soubory pro role PostgreSQL a AWS (v našem příkladu) a playbooky, protože můžete vidět, že obě hry používají tyto soubory pro výchozí proměnné. Tato hra volá úlohu provide.yml, která obsahuje úlohy nastavení infrastruktury.

Druhé přehrání zajišťuje připravenost všech požadovaných závislostí PostgreSQL a funguje na serverech postgres, které jsou definovány v souboru inventáře. Tato hra volá úlohu postgresql.yml, která obsahuje úlohy nastavení PostgreSQL.

Pokud byste chtěli vidět celou příručku, můžete se podívat na můj repozitář a přispět k jeho vylepšení.

Pro lepší pochopení konceptu příručky se můžete podívat na ukázkové příručky navržené v dokumentu Ansible.

Vraťme se k povídání o rolích. V Ansible;

  • Příručky organizovat úkoly
  • Role organizovat příručky

Představte si, že máme spoustu nezávislých zdrojů ke správě (např. webové servery, servery PostgreSQL, protokolování, monitorování, AWS). Umístění všeho do jediné příručky může vést k neudržitelnému řešení.

Ke snížení této složitosti nám role pomáhají:

Rozdělení úkolů do mnohem menších příruček

To nám umožňuje soustředit se na zdroje nezávisle. To usnadňuje údržbu a ladění. Také bude mnohem snazší porozumět struktuře.

Opětovné použití konfigurací, souborů, šablon, úkolů

Tímto způsobem můžeme snadno sdílet tyto komponenty mezi playbooky, aniž bychom je museli znovu a znovu přepisovat.

Zvládání závislostí příručky

Když vykonáváme roli, můžeme si být jisti, že jsou pro tuto roli splněny všechny předpoklady.

Zde můžete vidět graf závislostí a odpovídající strukturu adresářů rolí:

Role PostgreSQL v Ansible Galaxy

Zatímco jsem psal tento blogový příspěvek, bylo 146 rolí, které se střídaly jako výstup postgresql a postgres filtrovat vyhledávání.

Osobně doporučuji zkontrolovat několik těchto rolí a použít je ve vašich architekturách, pokud jsou dostatečně dobré a vyhovují vašim potřebám; pokud nejsou, přihlaste se do Ansible Galaxy a vytvořte si vlastní role.

Šťastné hackování!

Další informace o Ansible:

  • Podívejte se na jejich dobře napsané dokumenty.
  • Podívejte se na video rychlého startu Ansible, které je opravdu užitečným návodem.
  • Řiďte se plánem jejich webinářů, na seznamu je několik skvělých nadcházejících webinářů.

  1. Přístup k souborovému DSN z Java

  2. SQLite MAX

  3. Jak získat čtvrtletní datum v Oracle?

  4. Rychlý způsob, jak zjistit počet řádků tabulky v PostgreSQL