Kompiuterių administravimas su Ansible

2018 balandžio 28 d. Asmeniniai projektai

Būdamas tinklapių programuotojas (pagrinde) jau porą metų neturiu savo kompiuteriuose LAMP stack’o (taip vadinamas derinys su programine įranga: apache + php + mysql). Ne dėl to, kad PHP programuoju retai, bet tiesiog naujosios technologijos pakeitė požiūrį į kaip turi būti konfigūruojama darbo aplinka.

Iš esmės LAMP’ą pakeitė Docker. Tinklaraštyje galima rasti straipsnių kaip pasikeisti LAMP’ą į Docker arba kaip kai kuriuos elementus pakeisti su juo, pavyzdžiui rašiau apie Mysql paleidimą su Docker.

Tačiau anksčiau ar vėliau kiekvienas IT žmogus susidurs su ta pačia problema kurią reikės išspręsti - naujas kompiuteris ar serveris.

Man, turinčiam 4 kompiuterius ir 3 serverius diegimas ir konfigūravimas rankiniu būdu užimtų per daug laiko.

Todėl jau labai seniai sistemų automatizavimą atlieku su Ansible. Kaip visada tokias konfigūracijas būtinai paviešinu savo Github profilyje. Taip ir Ansible konfigūracijas galima rasti Github platformoje.

Iš esmės turint viename kompiuteryje Ansible paketus aš galiu pilnai sutvarkyti kitas mašinas.

Ansible diegimas

Ansible įdiegti galima iš paketų valdiklio. Atitinkamai viena iš šių komandų:

sudo apt-get install ansible   # Ubuntu
sudo aptitude install ansible  # Debian
sudo yum install ansible       # Centos
sudo dnf install ansible       # Fedora
sudo brew install ansible      # Jeigu esi turtingas

Ko gali reikėti naujuose serveriuose / kompiuteriuose

Sąrašas būtų begalinis, todėl pademonstruosiu kaip atrodo realus diegimas / konfigūravimas.

Jeigu dirbčiau su diagiakalbyste reikalaujančiais projektais, tai norėčiau visų kalbų sistemoje palaikymo. Jas įdiegčiau taip:

ansible-playbook -i 12.34.54.78, locales.yml

Kur 12.34.54.78 yra IP adresas. Kablelis reikalingas atskirti „inventorių“ nuo mašinos adreso. Apie tai čia nerašysiu - reikėtų atskiro straipsnio. Komandos gale paduodu konfigūracinį failą kurį esu išdirbęs ir kuriame yra instrukcijos surašytos lokalių diegimui, priklausomai nuo to kokią OS turite.

Priminsiu, kad šį ir kitus failus galite rasti mano Ansible Github repozitorijoje.

Praktiniai pavyzdžiai

Noriu, kad nauja mašina turėtų mano namų katalogo konfigūracijas:

ansible-playbook -i $IP, dotfiles.yml

Reikia įdiegti docker ir docker-compose? Paskaitykite abiejų diegimo instrukcijas - belekiek darbo. O čia, tik viena komanda:

ansible-playbook -i $IP, docker.yml
ansible-playbook -i $IP, docker-compose.yml

Tingite tvarkyti Python Pillow palaikymą visiem failų formatams? Ranka darant sutvarkyti be StackOverflow - neįmanomas darbas. Bet su viena Ansible komanda:

ansible-playbook -i $IP, pil.yml

Reikia įrankių programavimui? Priklausomai nuo to kokia kalba dirbate:

ansible-playbook -i $IP, ruby_dev.yml
ansible-playbook -i $IP, python_dev.yml
ansible-playbook -i $IP, php_dev.yml
ansible-playbook -i $IP, javascript_dev.yml

Šis ir daugiau konfigūracijų yra mano Ansible konfigūracijų Github repozitorijoje. Išmėginkite, pasitobulinkite pagal savo poreikius ir liaukitės švaistyti laiką neautomatizuotoms problemoms spręsti.

Serverių atnaujinimas (video)

Kai Nagios’as praneša, kad vienas ar kitas serveris turi programinės įrangos atnaujinimų, kuriuose ištaisytos saugumo problemos, atnaujinu juos su Ansible:

Serverių atnaujinimas su Ansible

Jeigu svarstote automatizuoti savo kompiuterių ir serverių priežiūrą - Ansible tikrai rekomenduoju.