PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL планета в Ansible Galaxy

Ansible Galaxy е просто най-лесният начин да намерите вече написани роли на Ansible, да създадете и споделяте вашите роли и да скочите в галактиката от съдържание на Ansible!

=====================Съобщение в праймтайм! =====================

FOSDEM PGDay 2016 ще се проведе на 29 януари преди FOSDEM, което е най-голямото събитие с отворен код в Европа, а PostgreSQL Devroom ще бъде на 31 януари във FOSDEM в Брюксел.

Ако се интересувате от управление на конфигурация, оркестрация на сървъри, автоматично внедряване (затова четете тази публикация в блога, нали?) и ви харесва да работите с PostgreSQL (със сигурност) на AWS (по избор), тогава може да искате да се присъедините към моята беседа „Управление на PostgreSQL с Ansible“ на 29 януари, 12:30-13:20.

Моля, проверете невероятния график и за двете събития! Надявам се да се видим в Брюксел тази седмица!

=====================Съобщение в праймтайм! =====================

Здравейте, Ansible Galaxy!

Ansible има мощна общност, която ги прави още по-мощни. Разработчиците, които допринасят за Ansible, се радват да допринасят, а потребителите, които използват Ansible за собствените си системи, с удоволствие го използват.

Съдържанието на Ansible, което споменават на своята уеб страница, е основно роли на Ansible. Нека продължим с ролите в тази публикация в блога и се опитаме да разберем какво означава ролята на Ansible и какви са разликите между ролите, наръчниците и задачите.

Какво е Ansible Role?

Абсолютно трябва да използвате роли. Ролите са страхотни. Използвайте роли. Роли! Казахме ли го достатъчно? Ролите са страхотни.

Преди да говорим за ролите, нека си спомним дефиницията на задача и игра в терминологията на Ansible.

Задача

Задачите са отговорни за извикването на модул със специфичен набор от параметри.

Можете да прочетете предишната ми публикация в блога, за да научите повече за модулите на Ansible и да проверите модулите на Ansible Postgres с примери.

Всяка задача Ansible съдържа име, модул, който да бъде извикан, параметри на модула и по избор пред/пост условия. Те ни позволяват да извикваме Ansible модули и да предаваме информация на последователни задачи.

Задачата по-долу извиква файловия модул, като предоставя 4 параметъра.


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

Той гарантира, че 3 условия са верни:

  • /var/lib/postgresql съществува като директория
  • собственикът на /var/lib/postgresql е „postgres“
  • групата на /var/lib/postgresql е „postgres“

Ако не съществува, Ansible създава директорията и присвоява собственик и група. Ако само собственикът е различен, Ansible го прави „postgres“.

Наръчник

Учебниците съдържат пиеси, а пиесите съдържат задачи. Задачите извикват модули и могат (по избор) манипулатори на тригери (изпълни веднъж, изпълни в края) .

Сега можем да разгледаме един много прост пример за игра по-долу:


- 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

В тази книга имаме две пиеси:

Първата игра гарантира, че всички виртуални машини са готови и работят на localhost. Той зарежда променливи по подразбиране от YAML файлове с име postgresql.yml и aws.yml. Можете да мислите за тези файлове като за конфигурационни файлове за роли и учебници на PostgreSQL и AWS (в нашия пример), тъй като можете да видите, че и двете пиеси използват тези файлове за променливи по подразбиране. Тази игра извиква задача provide.yml, която съдържа задачи за настройка на инфраструктурата.

Второто възпроизвеждане гарантира, че всички необходими PostgreSQL зависимости са готови и работи на postgres сървъри, които са дефинирани във файла с инвентара. Тази игра извиква задача postgresql.yml, която съдържа задачи за настройка на PostgreSQL.

Ако искате да видите пълната книга, можете да проверите моето хранилище и да го допринесете, за да го подобрим.

За да разберете по-добре концепцията на плейбета, можете да разгледате примерни учебници, които се предлагат в Ansible docs.

Нека се върнем към разговора за ролите. В Ansible;

  • Книги организиратзадачи
  • Роли организирайтеигрови книги

Представете си, че имаме много независими ресурси за управление (например уеб сървъри, PostgreSQL сървъри, регистриране, наблюдение, AWS). Поставянето на всичко в една книга може да доведе до неподдържано решение.

За да намалим тази сложност, ролите ни помагат с:

Разделяне на задачите на много по-малки учебници

Това ни позволява да се съсредоточим върху ресурсите, независимо. Това го прави по-лесен за поддръжка и отстраняване на грешки. Също така ще бъде много по-лесно да разберете структурата.

Повторно използване на конфигурации, файлове, шаблони, задачи

По този начин можем лесно да споделяме тези компоненти между учебниците, без да пренаписваме отново и отново.

Обработване на зависимостите на плейбук

Когато изпълняваме роля, можем да сме сигурни, че всички предпоставки са изпълнени за тази роля.

Тук можете да видите графика на зависимостта и съответната структура на директория с роли:

Роли на PostgreSQL в Ansible Galaxy

Докато пишех тази публикация в блога, имаше 146 роли, които се превръщат в резултат на postgresql и postgres филтърно търсене.

Аз лично предлагам да проверите няколко от тези роли и да ги използвате във вашите архитектури, ако са достатъчно добри и отговарят на вашите нужди; ако не са, регистрирайте се в Ansible Galaxy и създайте свои собствени роли.

Приятно хакване!

За повече информация относно Ansible:

  • Разгледайте техните добре написани документи.
  • Гледайте видеоклип за бърз старт на Ansible, който е наистина полезен урок.
  • Следвайте техния график за уебинари, в списъка има някои страхотни предстоящи уебинари.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете стойности от първия и последния ред за група

  2. Как правилно да вмъкна няколко реда в PG с node-postgres?

  3. Урок за PostgreSQL за начинаещи – всичко, което трябва да знаете за PostgreSQL

  4. Какъв тип клеймо за дата да избера в PostgreSQL база данни?

  5. django test app error - Получих грешка при създаването на тестовата база данни:разрешението е отказано за създаване на база данни