PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Planeta PostgreSQL w galaktyce Ansible

Ansible Galaxy to po prostu najłatwiejszy sposób na znalezienie już napisanych ról Ansible, tworzenie i udostępnianie swoich ról oraz skok do galaktyki treści Ansible!

====================Ogłoszenie o premierze ! =============

FOSDEM PGDay 2016 odbędzie się 29 stycznia przed FOSDEM, największym wydarzeniem open source w Europie, a PostgreSQL Devroom odbędzie się 31 stycznia w FOSDEM w Brukseli.

Jeśli interesuje Cię zarządzanie konfiguracją, orkiestracja serwerów, automatyczne wdrażanie (dlatego właśnie czytasz ten wpis na blogu, prawda?) i lubisz pracować z PostgreSQL (na pewno) na AWS (opcjonalnie), to możesz dołączyć do mojego wykładu „Managing PostgreSQL with Ansible” 29 stycznia, 12:30-13:20.

Sprawdź niesamowity harmonogram obu wydarzeń! Mam nadzieję, że zobaczymy się w Brukseli w tym tygodniu!

====================Ogłoszenie o premierze ! =============

Witaj galaktyko Ansible!

Ansible ma potężną społeczność, co czyni ich jeszcze potężniejszymi. Deweloperzy, którzy współtworzą Ansible, chętnie wnoszą swój wkład, a użytkownicy, którzy używają Ansible do własnych systemów, chętnie z niego korzystają.

Treść Ansible, o której mówili na swojej stronie internetowej, to w zasadzie role Ansible. Kontynuujmy pracę z rolami w tym poście na blogu i spróbujmy zrozumieć, co oznacza rola Ansible i jakie są różnice między rolami, podręcznikami i zadaniami.

Co to jest rola ansibla?

Bezwzględnie powinieneś używać ról. Role są świetne. Używaj ról. Role! Czy powiedzieliśmy to wystarczająco? Role są świetne.

Zanim zaczniemy mówić o rolach, przypomnijmy sobie definicję zadania i poradnika w terminologii Ansible.

Zadanie

Zadania są odpowiedzialne za wywołanie modułu z określonym zestawem parametrów.

Możesz przeczytać mój poprzedni wpis na blogu, aby dowiedzieć się więcej o modułach Ansible i sprawdzić moduły Ansible Postgres z przykładami.

Każde zadanie Ansible zawiera nazwę, moduł do wywołania, parametry modułu i opcjonalnie warunki wstępne i końcowe. Pozwalają nam wywoływać moduły Ansible i przekazywać informacje do kolejnych zadań.

Poniższe zadanie wywołuje moduł plików, dostarczając 4 parametry.


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

Zapewnia, że ​​spełnione są 3 warunki:

  • /var/lib/postgresql istnieje jako katalog
  • właścicielem /var/lib/postgresql jest „postgres”
  • grupa /var/lib/postgresql to „postgres”

Jeśli nie istnieje, Ansible tworzy katalog i przypisuje właściciela i grupę. Jeśli tylko właściciel jest inny, Ansible czyni go „postgresem”.

Poradnik

Playbooki zawierają sztuki, a sztuki zawierają zadania. Zadania wywołują moduły i mogą (opcjonalnie) procedury obsługi wyzwalaczy (uruchom raz, uruchom na końcu) .

Teraz możemy sprawdzić bardzo prosty przykład z poradnika poniżej:


- 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

W tym poradniku mamy dwie sztuki:

Pierwsza gra zapewnia, że ​​wszystkie maszyny wirtualne są gotowe i działają na hoście lokalnym. Ładuje domyślne zmienne z plików YAML o nazwach postgresql.yml i aws.yml. Możesz myśleć o tych plikach jako o plikach konfiguracyjnych dla ról PostgreSQL i AWS (w naszym przykładzie) i playbookach, jak widać, że obie sztuki używają tych plików jako domyślnych zmiennych. Ta gra wywołuje zadanie provision.yml, które zawiera zadania konfiguracji infrastruktury.

Druga gra zapewnia gotowość wszystkich wymaganych zależności PostgreSQL i działa na serwerach Postgres, które są zdefiniowane w pliku inwentarza. Ta gra wywołuje zadanie postgresql.yml, które zawiera zadania konfiguracji PostgreSQL.

Jeśli chcesz zobaczyć pełny podręcznik, możesz sprawdzić moje repozytorium i dodać je, aby było lepsze.

Aby lepiej zrozumieć koncepcję podręcznika, możesz zapoznać się z przykładowymi podręcznikami sugerowanymi w dokumentacji Ansible.

Wróćmy do rozmowy o rolach. W Ansible;

  • Poradniki organizować zadania
  • Role organizować poradniki

Wyobraź sobie, że mamy do zarządzania wiele niezależnych zasobów (np. serwery WWW, serwery PostgreSQL, logowanie, monitoring, AWS). Umieszczenie wszystkiego w jednym podręczniku może skutkować niemożliwym do utrzymania rozwiązaniem.

Aby zmniejszyć taką złożoność, role pomagają nam w:

Dzielenie zadań na znacznie mniejsze podręczniki

Pozwala nam to na samodzielne skupienie się na zasobach. Ułatwia to konserwację i debugowanie. Również znacznie łatwiej będzie zrozumieć strukturę.

Ponowne użycie konfiguracji, plików, szablonów, zadań

W ten sposób możemy łatwo udostępniać te komponenty między podręcznikami, bez przepisywania w kółko.

Obsługa zależności w playbooku

Kiedy wykonujemy rolę, możemy być pewni, że wszystkie warunki wstępne dla tej roli są spełnione.

Tutaj możesz zobaczyć wykres zależności i odpowiednią strukturę katalogów ról:

Role PostgreSQL w Ansible Galaxy

Podczas pisania tego posta na blogu było 146 ról, które są wynikiem postgresql i postgres filtrowanie wyszukiwania.

Osobiście sugeruję sprawdzenie kilku z tych ról i użycie ich w twojej architekturze, jeśli są wystarczająco dobre i spełniają twoje potrzeby; jeśli nie, zarejestruj się w Ansible Galaxy i stwórz własne role.

Miłego hakowania!

Aby uzyskać więcej informacji o Ansible:

  • Sprawdź ich dobrze napisane dokumenty.
  • Obejrzyj krótki film o Ansible, który jest naprawdę pomocnym samouczkiem.
  • Podążaj za ich harmonogramem webinarów, na liście jest kilka fajnych nadchodzących webinariów.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy w danym schemacie istnieje tabela?

  2. Funkcja SUM() w PostgreSQL

  3. Funkcja LEAST() w PostgreSQL

  4. Przechowuj i pobieraj obrazy w Postgresql za pomocą Java

  5. Jak zresetować uruchomioną sumę po osiągnięciu progu?