петак, 19 априла, 2024
Слободни професионалац

Ансибл (1. део)

Аутор: Стефан Ножинић

Увод

Администрација кућног система никад није представљала проблем. Све што сте икада требали да урадите јесте покоје ажурирање и инсталацијu потребног софтвера. Када треба радити администрацију озбиљнијих система као што су то бројни сервери, ту се већ прелази у други домен комплексности. Овде је намерно употребљена множина јер се жели нагласити да је реч о више сервера које треба одржавати. Током времена су развијени многи алати за овакав менаџмент. Доста таквих алата је захтевало инсталацију специфичног софтвера на све сервере како би се они могли спојити са главним рачунаром преко којег је администратор управљао читавом групом сервера. Ово је на први поглед изгледало сасвим прихватљиво, али се временом показало као погрешно. Софтвер је постајао све комплекснији и имао је све више грешака. Ово је касније администраторима направило више проблема него што су имали пре.

Ансибл (Ansible) је један од ретких и квалитетних софтверских решења које је често коришћено и које омогућава лаку аутоматизацију одржавања више сервера. Поред тога, он не захтева знање неког скрипт-језика за неке основне ствари и не захтева инсталацију на свим серверима, јер уместо својих агената на сваком серверу, он повезује главни сервер и остале преко SSH (енг. Secure Shell) протокола. Ансибл користи језик за конфигурацију који је једноставан и може се савладати без много учења. Ово омогућава администраторима да се фокусирају на проблеме који се тичу саме стратегије одржавања система уместо на куцање кода.

Због ове једноставности у конфигурацији, Ансибл могу користити програмери, менаџери, системски администратори и људи осталих врста професија. Конфигурацију је лако писати, читати, али и одржавати после неког времена.

Дакле, да сумирамо, Ансибл нам омогућава да контролишемо своје сервере са једног рачунара. Ако нам треба инсталација базе података на десет сервера, нема проблема – Ансибл нам то омогућава путем једноставне конфигурације, и то можемо урадити са нашег лаптоп рачунара макар били и километрима далеко од тих сервера. Важно је само да имамо SSH приступ тим серверима.

Инсталација

Ансибл је подржан у скоро свакој дистрибуцији. Тако постоје пакети за Убунту, Дебиан, Арчлинукс, Џенту и остале велике дистрибуције. У случају да не постоји пакет за вашу дистрибуцију, Ансибл можете преузети и инсталирати помоћу алатке pip. Препоручујемо, ако имате времена и воље, да у том случају направите пакет за вашу дистрибуцију, проследите то заједници и тиме будете део развојног тима слободног софтвера. Нема боље сатисфакције за једног Линукс корисника, зар не?

Ако, којим случајем, наиђете на проблем током инсталације, или не знате уопште како да инсталирате Ансибл на ваш рачунар, можете нас контактирати путем наше електронске поште која вам је, надамо се, до сада већ позната – libre [et] lugons [dot] org.

Још мало увода

Пре него што кренемо са основама, треба појаснити како Ансибл комуницира са осталим рачунарима. Ансибл користи SSH протокол да комуницира са осталим серверима преко којег им говори које команде извршавају. SSH, као што вероватно знате, може се користити да се спојите на удаљени сервер помоћу шифре или помоћу кључа (RSA / DSA). Ансибл омогућава оба начина, али такође и, поред употребе SSH протокола, конекцију на chroot, lxc, jail или локално.

Ваше удаљене сервере наводите у посебном фајлу тако да Ансибл тачно зна коме треба да приступи.

Први пример

Сада, када имамо мало предзнања о томе шта Ансибл ради и чему конкретно служи, можемо се бавити техничким стварима и погледати како то да конкретно искористимо у пракси.

Претпоставимо да имамо три сервера са следећим адресама: 192.168.1.3, а.homе.net, b.homе.nет и да те сервере желимо да администрирамо одједном.

У фајлу /etc/ansible/hosts наводимо адресе тих сервера у сваком реду посебно на следећи начин:

192.168.1.3
a.home.net
b.home.net

Претпоставља се да имате приступ тим серверима преко SSH протокола, односно да имате њихове кључеве (у овом примеру претпостављамо да желимо користити кључеве уместо шифре).

Сада можемо „пинговати” све наше сервере наведене у горе описаном фајлу.

ansible all -m ping

Ансибл ће се повезати на удаљене сервере користећи корисничко име са вашег система одакле покрећете Ансибл. Ово је могуће променити, али то нећемо објашњавати у овом тексту. Ако вас занимају конкретно неки детаљи, можете нас контактирати.

Ако смо установили да све до сада ради како смо очекивали, можемо покренути команду на свим серверима на следећи начин:

ansible all -a "/bin/echo hello"

Једноставно, зар не?

За крај

Треба нагласити да је Ансибл много више од покретања команди на више рачунара. Праву моћ овог алата тек желимо да вам покажемо, али, као што знате, не можемо толико тога да ставимо у један чланак. Треба оставити простора и за друге теме. Оно што можемо да вам обећамо јесте да ћемо се потрудити да у наредним текстовима о овом алату дамо што више примера и занимљивих информација. Надамо се да ћете и ви убудуће некоме преносити сјајне утиске о овом алату као што ми сада преносимо вама.

Ако имате неко питање, предлог, занимљивост или, пак, желите да нам укажете на технички или било какав други пропуст, контактирајте нас на libre [et] lugons [dot] org и ми ћемо дати све од себе да будемо још бољи.