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, който е наистина полезен урок.
- Следвайте техния график за уебинари, в списъка има някои страхотни предстоящи уебинари.