ќбсудим вашу задачу в Telegram - чате?

ћерион Ќетворкс

7 минут чтени€

—ейчас существует очень много различных программ, которые помогают правильно настроить то или иное программное обеспечение. ƒл€ того, чтобы программа эффективно работала, необходимо воспользоватьс€ реальной или виртуальной машиной. “акже, имеет смысл воспользоватьс€ программным окружением Vagrant, которое поставл€етс€ вместе с программой Ansible после покупки лицензии. ѕрежде чем приступать непосредственно к настройке программы, необходимо узнать, что это вообще такое и какие функции выполн€ет.


„то такое программа Ansible и дл€ чего она нужна?

ƒанна€ программа нужна дл€ того, чтобы управл€ть различными программными конфигураци€ми дл€ того, чтобы разрабатывать приложени€ на €зыке Python. Ansible представл€ет собой список программ, объединенных в пакет дл€ управлени€ специальными конфигураци€ми. Ѕлагодар€ данному пакету программ можно настраивать те или иные удалЄнные машины и управл€ть ими на большом рассто€нии. Ќа сегодн€шний день настройка программы Ansible осуществл€етс€ путЄм изучени€ пособи€ по следующим главам:

  1. ѕрежде всего, специалисты обучают новичка работе с установщиком. ѕри этом, нужно будет установить программу Ansible вместе с утилитой под названием Vagrant.
  2. ƒалее идет полное изучение так называемого файла инвентаризации.
  3. ѕосле того, как файл инвентаризации был настроен и как следует изучен пользователем, необходимо перейти к непосредственному сбору факторов, переменных, copy и shell. ¬сЄ это нужно установить и настроить, дабы не возникало никаких проблем, св€занных с дальнейшей эксплуатацией пакета Ansible дл€ настройки удалЄнных машин.
  4. ѕосле этого осуществл€етс€ процесс, в который входит детальна€ настройка нескольких хостом.
  5. Ќемаловажным этапом идЄт настройка плейбуков.
  6. ¬ качестве примера стоит вспомнить настройку кластера через Apache, который включает в себ€ поэтапный балансировщик уровн€ нагрузки на удалЄнную машину.
  7. ѕосле того, как все предыдущие 6 шагов были совершены, необходимо перейти к откату и изучению ошибок.
  8. — каждым запуском ошибок должна становитс€ всЄ меньше, что приведет к формированию паттерна действий системы.
  9. ”становка программы Ansible завершаетс€ установкой и настройкой ролей каждого узла.
—ама по себе, данна€ программа (один из вариантов графического интерфейса) выгл€дит так: ќдин из вариантов GUI Ansible
¬ чЄм заключаетс€ настройка программы Ansible на практике?

”тилита Ansible работает в проталкивающимс€ режиме. ќн включает в себ€ использование всех настроек главной машины, с которой и осуществл€ютс€ все наработки и разработки узлов. ќсновна€ машина т€нет определенные узлы и ветки, осуществл€€ поэтапную постепенную нагрузку системы вместе с ее настройкой.


 акие пакеты и модули нужны дл€ работы утилиты Ansible?

 ак показала практика, дл€ работы данной утилиты достаточно иметь следующие типы модулей:

  • ћодуль под названием jinja2
  • ¬спомогательный модуль типа yaml

—ледует сказать, что прежде чем устанавливать данную программу, необходимо пон€ть, что она работает исключительно на Linux и его дистрибутивах.  ак правило, самыми попул€рными дистрибутивами Linux дл€ работы программы Ansible €вл€ютс€ Ubuntu или дебиан. „ерез командную строку нужно запустить соответствующую команду, котора€ отправить запросы на запуск установщика Ansible. ¬нутри нужно будет найти соответствующие пакеты, которые потом должны быть переписанные в командную строку. ѕосле того, как программа Ansible было установлена, нужно будет постепенно перейти к установке дополнительной утилиты, которое было упом€нута выше. ƒанна€ утилита носит название Vagrant.


 ак правильно установить Vagrant на Linux систему?

¬ качестве основной среды дл€ установки данной программы лучше всего использовать так называемую виртуальную машину. ¬иртуальна€ машина нужна дл€ того, чтобы не нагружать основную систему и создать дополнительную среду дл€ Vagrant. —ам по себе, процесс установки данной программы включает в себ€ скачивание следующего софта:

  • Ќепосредственно сама виртуальна€ машина или Virtualbox.
  • ¬ том случае, если после установки Virtualbox не возникло никаких проблем, стоит перейти к поиску ещЄ 1 немаловажной программы под названием Ruby. ≈сли речь идЄт о современных дистрибутивах Linux, таких, как Debian или Ubuntu, то стоит с уверенностью сказать, что программа уже имеетс€ в системе. ≈сли же € говоритс€ о старых верси€х Ubuntu или Debian, то нужно будет перейти на файлообменники и скачать Ruby на свой персональный компьютер.
  • «авершающим этапом установки €вл€етс€ скачивание на персональный компьютер ещЄ 1 немаловажной программы под названием Vagrant 1.1+. ≈е можно найти на официальном сайте.

ƒальнейшим этапом будет создание работающего файла виртуальной машины.  оманда, запускающа€ программу в виртуальной машине, выгл€дит таким образом: Ђvagrant upї. ѕосле ее активации процесс запуститс€ и можно переходить к другим шагам. ƒл€ некоторых систем потребуетс€ получить права суперпользовател€ или ввести Root ключ. ≈го нужно заранее узнать у администратора или вспомнить, если речь идЄт о домашнем персональном компьютере. ¬ виртуальной машине нужно будет добавить соответствующие ключи SSH, дабы продолжить процесс. ѕроцесс будет запущен спуст€ несколько минут после того, как соответствующие команды будут введены. ѕрограмма взаимодействует следующим образом:

‘ункциональна€ схема Ansible

ƒальнейшим этапом будет создание файла inventory. ƒл€ того, чтобы создать соответствующий файл, необходимо прописать в нЄм следующие команды.

host0.example.org ansible_ssh_host=192.168.33.10 ansible_ssh_user=root
host1.example.org ansible_ssh_host=192.168.33.11 ansible_ssh_user=root
host2.example.org ansible_ssh_host=192.168.33.12 ansible_ssh_user=root

—ледует сказать, что строка под названием Ђansible_ssh_hostї содержит в себе уникальный адрес IP хоста. ≈го должен знать каждый человек, который устраивает полную настройку системы.

«авершающим этапом всех манипул€ций, которые были приведены выше, €вл€етс€ полна€ проверка путем вписывани€ соответствующих строк кода в командную строку. ѕервым делом нужно будет выполнить следующую команду:

ansible -m ping all -i step-01/hosts

ѕри первых этапах проверки Ansible пытаетс€ запустить модуль под названием ping. ¬ том случае, если программа работала верно, то и результат будет выгл€деть следующим образом:

 host0.example.org | success >> {
    "changed": false,
    "ping": "pong"
}

host1.example.org | success >> {
    "changed": false,
    "ping": "pong"
}

host2.example.org | success >> {
    "changed": false,
    "ping": "pong"
}

≈сли данного кода нет, то что-то не так и необходимо будет искать решение проблемы на сторонних ресурсах.  онсультирование со специалистом поможет избежать проблем в будущем. ¬сЄ, узлы настроены и теперь можно переходить к дальнейшим действи€м.


 ак правильно настраивать отдельные узлы, использу€ основную машину?

ƒл€ того, чтобы узлы могли взаимодействовать между собой, необходимо воспользоватьс€ одноимЄнной командой ansible. ѕосле того, как она была введена, узлы будут взаимодействовать между собой и передавать друг другу определенные массивы зашифрованной информации.


 ак запустить много хостов, если использовать всего лишь одну команду?

»спользование одной команды дл€ запуска нескольких узлов €вл€етс€ очень важной вещью в создании качественно работающих систем. ≈сли в одну систему были собраны определЄнные машины под управлением одной и той же операционной системы, то стоит ввести следующую команду, так как вс€ информаци€ будет собрана на одну машину, с которой эта сама€ команда и была введена.

ansible -i step-02/hosts -m shell -a 'uname -a' host0.example.org

≈сли всЄ было правильно сделано, то все хосты должны дать следующий вывод касательно своего статуса:

host1.example.org | success | rc=0 >>
DISTRIB_RELEASE=12.04

host2.example.org | success | rc=0 >>
DISTRIB_RELEASE=12.04

host0.example.org | success | rc=0 >>
DISTRIB_RELEASE=12.04

 аждый элемент будет подсвечен, а также будет передан его статус. ƒл€ того, чтобы получить гораздо больше информации касательно того или иного элемента, нужно вести другую команду с модулем setup. ƒанный модуль собирают гораздо больше информации с каждого узла, точно также передава€ ей на основную платформу. ¬ качестве примера ответа будет следующа€ конструкци€:

"ansible_facts": {
    "ansible_all_ipv4_addresses": [
        "192.168.0.60"
    ],
    "ansible_all_ipv6_addresses": [],
    "ansible_architecture": "x86_64",
    "ansible_bios_date": "01/01/2007",
    "ansible_bios_version": "Bochs"
    },
    ---snip---
    "ansible_virtualization_role": "guest",
    "ansible_virtualization_type": "kvm"
},
"changed": false,
"verbose_override": true

¬ыводы можно сокращать дл€ того, чтобы получать более простые конструкции, однако их суть останетс€ прежней.


ќсобенности архитектуры программы Ansible

јрхитектура Ansible включает в себ€ следующие разнообразные модули:

  • ћодуль Cloud позвол€ет управл€ть публичными или частными облаками от таких компаний, как Amazon, Azure , Docker, Openstack и другие;
  • Command делает выполнение консольных команд максимально простым и отлаженным;
  • Monitoring занимаетс€ мониторингом всех данных.

“акже, сюда можно включить еще множество различных модулей дл€ правильной работы удаленных машин. », как мы уже говорили, Ansible работает исключительно на дистрибутивах Linux и не содержит в себе протоколов дл€ работы с Windows или Mac OS. ќсновными дистрибутивами дл€ работы Ansible €вл€ютс€ Debian и Ubuntu. ”дачи вам в освоении мира DevOps!


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: