Научете за Ansible Playbook за автоматизиране на задачите

Научете за Ansible Playbook за автоматизиране на задачите.


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

Какво е Ansible Playbook?

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

Например, може да бъде толкова просто, колкото да изпълнявате поредица от команди на различни сървъри в последователност и да рестартирате тези сървъри по ред. Или може да бъде толкова сложно, колкото внедряването и предоставянето на стотици виртуални машини в публичен и частен облак, включително тяхното балансиране на натоварването, наблюдение, настройки на мрежата.

Език на Playbook

Playbooks са прости файлове, написани в YAML код.

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

По-долу е примерен YAML файл за инсталиране на mysql:


– име: Инсталирайте MySQL
домакини: geekflare-mysql-service
задачи:
– име: Инсталирайте MySQL
действие: $ ansible_pkg_mgr pkg = mysql-server state = инсталиран
– име: Добавете Python MySQL DB
действие: $ ansible_pkg_mgr pkg = python-mysqldb state = инсталиран

Основи за отговори на Playbook

Тази част от статията обхваща основните концепции Ansible, за да разберете повече за Ansible Playbook.

Домакини и потребители

Отговорните нужди са насочени към машините в инфраструктурата, на която играта трябва да се разгръща от плейбука Ansible. Домакините се добавят към инвентаризацията на Ansible чрез техните IP адреси. Хостовете са списък на една или повече групи или модели на хост, разделени с двоеточие. В remote_user се съдържа името на потребителския акаунт.


– хостове: ProdServers
remote_user: geekflare

Променливи

Променливите ви позволяват да променяте начина, по който се изпълнява игра. Те могат да се използват почти навсякъде в книгата за възпроизвеждане и могат да бъдат наследени от инвентар, изрично зададен по време на изпълнение, открит в началото на изпълнение на игра. Можете да определите име на променлива с помощта на букви, цифри и подчертаване, но тя трябва да започва само с буква.

Например, port_01 е валидна променлива, докато 01_post е невалидна променлива. Ето пример за променливи в Ansible Playbook:

Варс:
http_port: 80
max_clients: 200

Материални запаси

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

Можете също да посочите променлива като част от списъка с инвентара. В крайна сметка запасите са списък на нещата, които искате да автоматизирате.

[Уебсървъри]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Задачи

Играе в изпълними задачи за изпълнение на тетрадки. Задачата е отговорна за стартиране на отговорни модули. В даден момент може да се изпълнява само една задача и задачите се изпълняват в последователен ред. Задачите им са написани на YAML, което е доста английски като език.

Например: инсталирайте името на пакета, актуализирайте име на софтуер и т.н. По-долу е даден пример за задача в плейбука Ansible за инсталиране на httpd:

задачи:
– име: Инсталирайте httpd пакет
yum: име = httpd състояние = най-ново

Дръжки

Манипулаторите са специален вид задачи.

Те могат да бъдат задействани от задача и се изпълняват веднъж в края на играта. Използва се за изпращане на известия, ако има промяна в конфигурационния файл, например услуга за уведомяване, за да стартира apache, след като се инсталира. Синтаксисът „известяване“ се използва за обработване на обаждания. По-долу е даден пример на манипулатор за рестартиране на апаш:


– домакини: всички
задачи:
– име: уверете се, че apache е в най-новата версия
yum: име = httpd състояние = най-ново
уведомява:
– рестартирайте апаш
– име: уверете се, че apache работи (и го активирайте при стартиране)
услуга: име = httpd състояние = стартирано активирано = да
товарачи:
– име: рестартирайте апаш
услуга: име = httpd състояние = рестартирано

Създайте и стартирайте първата си книга с отговори

Нека ви кажа как да напиша играчка. Всяка книга за възпроизвеждане започва с три тирета (-) в горната част.

Първото нещо, което споменавате в Ansible Playbook, е хост машините, на които искате да стартирате играта.

Тогава можете да споменете променливи, като събирате факти; тогава можете да споменете различните задачи, които искате да изпълнявате. Сега не забравяйте, че задачата се изпълнява в същия ред, в който сте ги написали. Например, искате да инсталирате софтуер А първо, а след това софтуер B, уверете се, че първата задача, написана в плейбука, ще бъде инсталирането на софтуер A, а следващата задача може да инсталира софтуер B.

След това имаш манипулатори в долната част. Манипулаторите също са задачи, но разликата е, че за изпълнение на манипулаторите се нуждаете от някакъв вид задействания в списъка със задачи, за да стартирате манипулатори..

Нека ви покажа как да създадете ansible playbook за инсталиране и стартиране на nginx на хост и да го стартирате.

Създайте .yml файл, в който ще поставите своите YAML кодове за създаване на ansible playbook.

gedit nginx.yml

Поставете следния YAML код в този файл и го запазете.


– хостове: клиент
судо: да
Варс:
– server_port: 8080

задачи:
– име: Инсталира nginx уеб сървър
apt: pkg = nginx state = инсталиран update_cache = true
уведомява:
– стартирайте nginx

товарачи:
– име: стартирайте nginx
услуга: име = nginx състояние = стартирано

Горепосоченият YAML файл започва с хостове, искам да пусна тази плейбука на клиентската машина (Клиент). IP адресът на клиента вече е записан във / etc / ansible / hosts файл.

Следващият ред позволява изпълнението на задачите с привилегии sudo.

Тогава съм дефинирал server_port като променлива в тази игра.

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

И накрая, написах мениджър за стартиране на nginx на клиентската машина.

Сега, когато вече сте ясни с YAML кодовете в ansible playbook, нека да го пуснем. По-долу е синтаксисът за стартиране на ansible playbook:

ansible-playbook file_name.yml

Сега ще пусна ансибула, който създавам, за да инсталирам и да стартирам nginx.

[Имейл защитен]: / home / geekflare # ansible-playbook nginx.yml

ИГРАЙТЕ [Клиент] ************************************************ ********************

ЗАДАЧА [Събиране на факти] *********************************************** ************
добре: [node1]

ЗАДАЧА [Инсталира nginx уеб сървър] ********************************************* ****

променен: [node1]

РЪЧЕН РЪЧНИК [старт nginx] ********************************************** ******
добре: [node1]

PLAY RECAP ************************************************** *********************
node1: ok = 3 променено = 1 недостъпно = 0 неуспешно = 0 пропуснато = 0 спасено = 0 игнорирано = 0

Изпълнете командата по-долу, за да проверите дали nginx сървърът е инсталиран и стартиран правилно от ansible playbook.

[Имейл защитен]: / home / geekflare # ps waux | grep nginx
корен 3021 0.0 0.0 77676 1516? Ss 15:27 0:00 nginx: главен процес / usr / sbin / nginx -g демон на; master_process на;

заключение

Ставаше дума за плейбука Ansible. Надявам се тази статия да ви е помогнала да научите как можете да създадете и пуснете игрална книга Ansible. Вижте това курс, ако искате да научите разширени теми в Ansible, включително роли, Jinja2, търсене, филтър, персонализирани модули.

ЕТИКЕТИ:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map