SaltStack: Difference between revisions
(67 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
====Mis on SaltStack ja milleks seda kasutada?==== | ====Mis on SaltStack ja milleks seda kasutada?==== | ||
SaltStack(edasi lihtsalt Salt)lubab uut lähenemist suurte infrastuktuuride administreerimiseks.Piisavalt lihtne et paigaldada loetud minutitega,piisavalt skaleeruv et hallata kümneid tuhandeid servereid ja piisavalt kiire et suhelda nendega sekunditega. | SaltStack(edasi lihtsalt Salt)lubab uut lähenemist suurte infrastuktuuride administreerimiseks.Piisavalt lihtne et paigaldada loetud minutitega,piisavalt skaleeruv et hallata kümneid tuhandeid servereid ja piisavalt kiire et suhelda nendega sekunditega[http://docs.saltstack.com/]. | ||
Selles süsteemis võib eraldada järgmised võtme võimalused: | Selles süsteemis võib eraldada järgmised võtme võimalused:[http://blog.niyakiy.com/2013/11/saltstack.html] | ||
<ul> | <ul> | ||
<li>Teenuste konfiguratsiooni haldus mitme serverite peal üheaegselt</li> | <li>Teenuste konfiguratsiooni haldus mitme serverite peal üheaegselt</li> | ||
Line 24: | Line 24: | ||
</ul> | </ul> | ||
<br> | <br> | ||
Salt arhitektuur on väga lihtne - on olemas üks(või grupp) Salt master node-id,mille külge ühendavad Salt minion-id mis on paidaldatud teie kõikide serverite peal.Kui teile vaja natuke edasijõudnud fuktsionaalsuse siis teile läheb vaja installerida Salt syndic pakki. | Salt arhitektuur on väga lihtne - on olemas üks(või grupp) Salt master node-id,mille külge ühendavad Salt minion-id mis on paidaldatud teie kõikide serverite peal.[http://sc0rp1us.blogspot.com/2013/04/saltstack.html]Kui teile vaja natuke edasijõudnud fuktsionaalsuse siis teile läheb vaja installerida Salt syndic pakki[http://ubuntu-tutorials.com/2013/03/01/install-salt-stack-on-ubuntu-lts/] | ||
==Töö eesmärk== | ==Töö eesmärk== | ||
Line 37: | Line 37: | ||
==Põnimõisted== | ==Põnimõisted== | ||
'''Salt master''' - See on keskne server mille külge on ühendatud kõik Salt minion-id.Käsud käivitatakse Salt minionide peal ja Salt master-i kaudu ja Salt minion-id tagastavad andmed tagasi salt-masterile(kui ei ole ümbersuunatud [http://docs.saltstack.com/ref/returners/index.html "returner"-iga]).Ta on käivitatud salt-master programmiga. | '''Salt master''' - See on keskne server mille külge on ühendatud kõik Salt minion-id.Käsud käivitatakse Salt minionide peal ja Salt master-i kaudu ja Salt minion-id tagastavad andmed tagasi salt-masterile(kui ei ole ümbersuunatud [http://docs.saltstack.com/ref/returners/index.html "returner"-iga]).Ta on käivitatud salt-master programmiga.[http://docs.saltstack.com/topics/configuration.html] | ||
'''Salt minion''' - on potentsiaalseid sajad tuhanded serverid mis võivad olla päritud ja kontrollitud Salt masteri poolt. | '''Salt minion''' - on potentsiaalseid sajad tuhanded serverid mis võivad olla päritud ja kontrollitud Salt masteri poolt.[http://docs.saltstack.com/topics/configuration.html] | ||
==Labori keskkond== | ==Labori keskkond== | ||
Line 69: | Line 69: | ||
Viimased Salt Stack pakid on saadaval PPA-s. | Viimased Salt Stack pakid on saadaval PPA-s. | ||
Järgmised sammud näitavad kuidas lisada PPA ja installerida Salt Stack pakid: | Järgmised sammud näitavad kuidas lisada PPA ja installerida Salt Stack pakid:[http://ubuntu-tutorials.com/2013/03/01/install-salt-stack-on-ubuntu-lts/] | ||
sudo apt-get install python-software-properties | sudo apt-get install python-software-properties | ||
Line 75: | Line 75: | ||
sudo add-apt-repository -y ppa:saltstack/salt | sudo add-apt-repository -y ppa:saltstack/salt | ||
Altenatiiviks,ku eelnevad käsud ei toimi,käsitsi lisa repositooriumi ja importi PPA võti järgmiste käskudega: | Altenatiiviks,ku eelnevad käsud ei toimi,käsitsi lisa repositooriumi ja importi PPA võti järgmiste käskudega:[http://docs.saltstack.com/topics/installation/ubuntu.html] | ||
echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee /etc/apt/sources.list.d/saltstack.list | echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee /etc/apt/sources.list.d/saltstack.list | ||
Line 89: | Line 89: | ||
Salt masteri pakki me installerime Ubuntu Server 12.04 LTS peale. | Salt masteri pakki me installerime Ubuntu Server 12.04 LTS peale. | ||
Selleks käivitame käsu: | Selleks käivitame käsu:[http://docs.saltstack.com/topics/installation/ubuntu.html] | ||
sudo apt-get install salt-master | sudo apt-get install salt-master | ||
Line 97: | Line 97: | ||
Salt masteri pakki me installerime Ubuntu Desktop 13.04 peale. | Salt masteri pakki me installerime Ubuntu Desktop 13.04 peale. | ||
Selleks käivitame käsu: | Selleks käivitame käsu:[http://docs.saltstack.com/topics/installation/ubuntu.html] | ||
sudo apt-get install salt-minion | sudo apt-get install salt-minion | ||
Line 103: | Line 103: | ||
== Salt konfigureerimine == | == Salt konfigureerimine == | ||
Kõik configuratsiooni failid on paigaldatud /etc/salt kaustas ja nimetatud nagu vastavat komponendid, /etc/salt/master ja /etc/salt/minion. | Kõik configuratsiooni failid on paigaldatud /etc/salt kaustas ja nimetatud nagu vastavat komponendid, /etc/salt/master ja /etc/salt/minion.[http://docs.saltstack.com/topics/configuration.html] | ||
==== Salt masteri konfigureerimine ==== | ==== Salt masteri konfigureerimine ==== | ||
Line 111: | Line 111: | ||
sudo nano /etc/salt/master | sudo nano /etc/salt/master | ||
Vaikimisel Salt kuulab portidel 4505 ja 4506 kõikide kasutajaliideste peal (0.0.0.0). Selleks et siduda Salt teatud IP-ga, tuleb /etc/salt/master faili muuta järgnevalt: | Vaikimisel Salt kuulab portidel 4505 ja 4506 kõikide kasutajaliideste peal (0.0.0.0). Selleks et siduda Salt teatud IP-ga, tuleb /etc/salt/master faili muuta järgnevalt:[http://docs.saltstack.com/topics/configuration.html] | ||
'''Leia''':[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | |||
# The address of the interface to bind to | # The address of the interface to bind to | ||
#interface: 0.0.0.0 | #interface: 0.0.0.0 | ||
'''Asenda järgnevalt:''' | '''Asenda järgnevalt:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
# The address of the interface to bind to | # The address of the interface to bind to | ||
interface: teie_ip_aadres | interface: teie_ip_aadres | ||
Line 127: | Line 126: | ||
Kõik salt-i poliisid või "states" peavad kuskil elama. Ja file_roots kaust on koht kus "states" asuvad diski peal.Selle artikli jaoks me paneme kõike /salt/states/base | Kõik salt-i poliisid või "states" peavad kuskil elama. Ja file_roots kaust on koht kus "states" asuvad diski peal.Selle artikli jaoks me paneme kõike /salt/states/base | ||
kausta. | kausta.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
'''Leia:''' | '''Leia:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
#file_roots: | #file_roots: | ||
Line 135: | Line 134: | ||
#- /srv/salt | #- /srv/salt | ||
'''Asenda järgnevalt:''' | '''Asenda järgnevalt:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
file_roots: | file_roots: | ||
Line 141: | Line 140: | ||
- /salt/states/base | - /salt/states/base | ||
Ei ole kõik "states" on samasugused, vahepeal te soovite et pakid oleksid konfigureeritud ühtemoodi arenduses | Ei ole kõik "states" on samasugused, vahepeal te soovite et pakid oleksid konfigureeritud ühtemoodi arenduses ja teismoodi tootmises. Kuigi ma ei avalda sellest artiklis te võite teha selle kasutades salt-i "environments" konfiguratsiooni.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
Igal salt masteril peab olema "base environment", see on kasutatud et hoida top.sls fail mis defineerib mis salt-i "state"-id rakendub teatud minions-ide vastu.Samuti "base environment" | Igal salt masteril peab olema "base environment", see on kasutatud et hoida top.sls fail mis defineerib mis salt-i "state"-id rakendub teatud minions-ide vastu.Samuti "base environment" kasutatakse üldiselt "state"-ide jaoks mis rakenduvad kõikidele süsteemidele.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
Näiteks, mulle meeldib "screen" käsk ja ma tahan et ta oleks installitud kõikide masinate peal mis ma haldan. Selleks et seda teha ma lisan "screen state" "base environment"-i juurde. | Näiteks, mulle meeldib "screen" käsk ja ma tahan et ta oleks installitud kõikide masinate peal mis ma haldan. Selleks et seda teha ma lisan "screen state" "base environment"-i juurde.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
Selleks et lisada "enviroments" | Selleks et lisada "enviroments" on vaja lihtsalt lisada file_roots konfiguratsionisse.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
'''Lisan development enviroment:''' | '''Lisan development enviroment:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
file_roots: | file_roots: | ||
Line 159: | Line 158: | ||
===== Seadistan pillar_roots ===== | ===== Seadistan pillar_roots ===== | ||
Kuigi see artikkel ei avalda infot [http://docs.saltstack.com/topics/pillar/ "pillars"]-idest ma väga soovitan konfigureerida "pillar_roots" kaustat samuti. Ma ledsin et "pillars"-id on väga kasulikud selleks " | Kuigi see artikkel ei avalda infot [http://docs.saltstack.com/topics/pillar/ "pillars"]-idest ma väga soovitan konfigureerida "pillar_roots" kaustat samuti. Ma ledsin et "pillars"-id on väga kasulikud selleks "state"-ide korduvkasutuseks ja vähendab unikaalsete "state"-ide osakaalu.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
'''Leia:''' | '''Leia:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
#pillar_roots: | #pillar_roots: | ||
Line 168: | Line 167: | ||
'''Asenda:''' | '''Asenda:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
pillar_roots: | pillar_roots: | ||
base: | base: | ||
- /salt/pillars/base | - /salt/pillars/base | ||
===== Taaskäivita Salt master-i teenust ===== | ===== Taaskäivita Salt master-i teenust ===== | ||
Selleks et configuratsiooni faili /etc/salt/master muutused jõustunud,meil on vaja teha Salt master teenusele restarti: | Selleks et configuratsiooni faili /etc/salt/master muutused jõustunud,meil on vaja teha Salt master teenusele restarti:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
student@ubuntu:~$ sudo service salt-master restart | student@ubuntu:~$ sudo service salt-master restart | ||
Line 190: | Line 187: | ||
sudo -i | sudo -i | ||
Enne ku me liigume salt "minioni"-de konfiguratsiooniga edasi me peame looma file_roots ja pillar_roots kaustad millised me kirjutasime /etc/salt/master faili: | Enne ku me liigume salt "minioni"-de konfiguratsiooniga edasi me peame looma file_roots ja pillar_roots kaustad millised me kirjutasime /etc/salt/master faili:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
root@ubuntu:~# mkdir -p /salt/states/base /salt/pillars/base | root@ubuntu:~# mkdir -p /salt/states/base /salt/pillars/base | ||
==== Salt minioni konfigureerimine ==== | ==== Salt minioni konfigureerimine ==== | ||
Salt minion-i konfigureerimine on isegi lihtsam kui salt master-i. Lihsas ülesseadistuses nagu me teeme selles laboris kõik mis on meile vaja see on seadistada salt master-i IP aadres. | Salt minion-i konfigureerimine on isegi lihtsam kui salt master-i.Lihsas ülesseadistuses nagu me teeme selles laboris kõik mis on meile vaja see on seadistada salt master-i IP aadres.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
Lähme jalle root kasutajaks Ubuntu desktopi peal kuhu me installerisime meie Salt minion: | Lähme jalle root kasutajaks Ubuntu desktopi peal kuhu me installerisime meie Salt minion: | ||
Line 205: | Line 201: | ||
===== Salt master-i sihmärgi IP muutmine ===== | ===== Salt master-i sihmärgi IP muutmine ===== | ||
Ava Salt minion-i konfigaruratsiooni faili: | Ava Salt minion-i konfigaruratsiooni faili:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
root@saltminion:~# nano /etc/salt/minion | root@saltminion:~# nano /etc/salt/minion | ||
'''Leia:''' | '''Leia:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
#master: salt | #master: salt | ||
'''Asenda:''' | '''Asenda:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
master: teie_master-i_ip_aadres | master: teie_master-i_ip_aadres | ||
Line 221: | Line 217: | ||
===== Taaskäivita Salt minion-i teenust ===== | ===== Taaskäivita Salt minion-i teenust ===== | ||
Selleks et configuratsiooni faili /etc/salt/minion muutused jõustunud,meil on vaja teha Salt minion teenusele restarti: | Selleks et configuratsiooni faili /etc/salt/minion muutused jõustunud,meil on vaja teha Salt minion teenusele restarti:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
root@desktop:~# service salt-minion restart | root@desktop:~# service salt-minion restart | ||
salt-minion stop/waiting | salt-minion stop/waiting | ||
salt-minion start/running, process 2839 | salt-minion start/running, process 2839 | ||
==== Minions-ide võtmete vastuvõttmine Salt masteri poolt ==== | ==== Minions-ide võtmete vastuvõttmine Salt masteri poolt ==== | ||
Kohe kui | Kohe kui Salt minion-i teenus on taaskäivitunud minion hakkab proovima suhelda master-iga.Enne kui see võib juhtuda me peame vastuvõtta minions-i võti master-i peal.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
===== Ava võtmete nimekirja Salt masteri peal ===== | ===== Ava võtmete nimekirja Salt masteri peal ===== | ||
Me saame vaadata missugused võtid ootavad vastuvõttmist käivitades salt-key käsku. | Me saame vaadata missugused võtid ootavad vastuvõttmist käivitades salt-key käsku.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | ||
Minu masina puhul: | |||
root@ubuntu:/# salt-key -L | |||
Accepted Keys: | |||
Unaccepted Keys: | |||
desktop.planet.zz | |||
Rejected Keys: | |||
===== Võtta desktop.planet.zz-i võti vastu ===== | |||
Selleks et vastuvõtta destktop.planet.zz-i võti me võime teha seda kahel viisil, labi desktop.planet.zz spetsifilist nime või aktsepteerides kõik võttid mis on ootel.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | |||
'''Aktsepteerida nime järgi:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | |||
root@ubuntu:/# salt-key -a desktop.planet.zz | |||
The following keys are going to be accepted: | |||
Unaccepted Keys: | |||
desktop.planet.zz | |||
Proceed? [n/Y] Y | |||
Key for minion desktop.planet.zz accepted. | |||
'''Aktsepteerida kõike võttmed:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | |||
root@ubuntu:~# salt-key -A | |||
The following keys are going to be accepted: | |||
Unaccepted Keys: | |||
saltminion | |||
Proceed? [n/Y] Y | |||
Key for minion desktop.planet.zz accepted. | |||
== Saadame käsku == | |||
Ühendust Salt minioni ja Salt masteri vahel võib kontrollida käivitades käsku test.ping:[http://docs.saltstack.com/topics/configuration.html] | |||
root@ubuntu:/# salt desktop.planet.zz test.ping | |||
desktop.planet.zz: | |||
True | |||
Kui teil on palju minion-i ja te tahate kontrollida ühendust kõikidega siis tuleb käivitada järgmist käsku:[http://docs.saltstack.com/topics/configuration.html] | |||
root@ubuntu:/# salt '*' test.ping | |||
desktop.planet.zz: | |||
True | |||
'''NB!''' Kuna mul on ainult üks minion siis ta näitabki ainult ühe minioniga ühendust teise testi peale | |||
== Web serveri installerimine Salt minioni peale Salt masteri kaudu == | |||
==== Valmistame Top faili Salt masteri peal ==== | |||
root@ubuntu:~# nano /salt/states/base/top.sls[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/] | |||
'''Sisestame järgmised parameetrid:'''[http://docs.saltstack.com/topics/tutorials/states_pt1.html] | |||
base: | |||
'desktop.planet.zz*': | |||
- webserver | |||
==== Loo sls mooduli ==== | |||
Samas kaustas kus asub top fail, loo tühi fail nimega webserver.sls, mis sisaldab:[http://docs.saltstack.com/topics/tutorials/states_pt1.html] | |||
apache2: # ID deklareerimine | |||
pkg: # state deklareerimine | |||
- installed # funktsiooni deklareerimine | |||
==== Installeri paki apache2 ==== | |||
root@ubuntu:~# salt '*' state.highstate[http://docs.saltstack.com/topics/tutorials/states_pt1.html] | |||
Meie master juhendab kõike sitmärgitud minion-id käivitada '''state.highstate'''. Kui minion täidab käsu ta laeb alla top faili ja üritab sobitada avaldis. Kui ta leiab käsud mis klappivad käskudega mis on masteri moodulites siis ta laeb need alla, compilerib ja täidab.[http://docs.saltstack.com/topics/tutorials/states_pt1.html] | |||
Kui kõik on valmis, minion raporteerib masterile kokkuvõtte kõikidest tegevustest ja muudatustes mis olid tehtud[http://docs.saltstack.com/topics/tutorials/states_pt1.html] | |||
Raport mis minion tagastas minu masterile: | |||
desktop.planet.zz: | |||
---------- | |||
State: - pkg | |||
Name: apache2 | |||
Function: installed | |||
Result: True | |||
Comment: The following packages were installed/updated: apache2. | |||
Changes: libaprutil1-ldap: { new : 1.4.1-3 | |||
old : | |||
} | |||
libapr1: { new : 1.4.6-3ubuntu1 | |||
old : | |||
} | |||
apache2-utils: { new : 2.2.22-6ubuntu5.1 | |||
old : | |||
} | |||
apache2.2-bin: { new : 2.2.22-6ubuntu5.1 | |||
old : | |||
} | |||
apache2-mpm-worker: { new : 2.2.22-6ubuntu5.1 | |||
old : | |||
} | |||
apache2.2-common: { new : 2.2.22-6ubuntu5.1 | |||
old : | |||
} | |||
libaprutil1: { new : 1.4.1-3 | |||
old : | |||
} | |||
apache2: { new : 2.2.22-6ubuntu5.1 | |||
old : | |||
} | |||
libaprutil1-dbd-sqlite3: { new : 1.4.1-3 | |||
old : | |||
} | |||
Summary | |||
------------ | |||
Succeeded: 1 | |||
Failed: 0 | |||
------------ | |||
Total: 1 | |||
== Vaikimisi logi failide asukohad == | |||
==== Salt master-i logi faili asukoht ==== | |||
/var/log/salt/master[http://docs.saltstack.com/ref/configuration/master.html] | |||
==== Salt minion-i logi faili asukoht ==== | |||
/var/log/salt/minion[http://docs.saltstack.com/ref/configuration/minion.html] | |||
==Kokkuvõtte== | |||
Saltstacki installerimine ja konfigureerimine läks kohe esimesest korrast hästi.Mulle meeldis se konfiguratsiooni haldamise süsteem oma lihtsuse poolt.Mis puudutab kiirust,siis veebiserveri installerimine minioni peal võttis kuidagi palju aega minu puhul ja Salstacki arendajate väide,et Salststack töötab väga kiirelt ei leidnud minu jaoks kinnitust.Aga igal juhul ma soovitaks seda süsteemi kasutada kui alternatiiv sellestele tarkvaradele nagu Puppet,CFEngine,Chef sellepärast et Salstack-i sest ta on väga kiirelt installeritav ja lihtsasti konfigureritatav ja kasutatav tarkvara. | |||
==Kasutatud kirjandus== | ==Kasutatud kirjandus== | ||
Line 253: | Line 383: | ||
http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/ | http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/ | ||
http://docs.saltstack.com/topics/tutorials/states_pt1.html | |||
http://docs.saltstack.com/ref/configuration/master.html | |||
http://docs.saltstack.com/ref/configuration/minion.html | |||
[[Category:Linuxi administreerimine]] | [[Category:Linuxi administreerimine]] |
Latest revision as of 20:14, 16 January 2014
Autor:Vjatšeslav Jertsalov
Kuupäev:11.01.2014
Rühm:A32
Sissejuhatus
Mis on SaltStack ja milleks seda kasutada?
SaltStack(edasi lihtsalt Salt)lubab uut lähenemist suurte infrastuktuuride administreerimiseks.Piisavalt lihtne et paigaldada loetud minutitega,piisavalt skaleeruv et hallata kümneid tuhandeid servereid ja piisavalt kiire et suhelda nendega sekunditega[1].
Selles süsteemis võib eraldada järgmised võtme võimalused:[2]
- Teenuste konfiguratsiooni haldus mitme serverite peal üheaegselt
- Kaugelt käskude täitmist mitme serverite peal üheaegselt
- Realajas informatsiooni saamine keskkonnast
- SQL/NoSQL andmebaasidega ühenduse võimalus konfiguratsioni salvestamiseks või saamiseks,käskude taitmise tulemuste ja muu info salvestamiseks
- Seadistamise ja kasutamise lihtsus
- Põhi serverite platformide toetus(Linux/Windows)
- Ta on kirjutatud Python programeerimis keeles,mis idealselt selleks sobib.
Salt arhitektuur on väga lihtne - on olemas üks(või grupp) Salt master node-id,mille külge ühendavad Salt minion-id mis on paidaldatud teie kõikide serverite peal.[3]Kui teile vaja natuke edasijõudnud fuktsionaalsuse siis teile läheb vaja installerida Salt syndic pakki[4]
Töö eesmärk
Teha läbi praktiliselt ja kirjutada juhendid kuidas installerida,seadistada ja kasutada SaltStack-i konfiguratsiooni haldamis süsteemi mis võiks olla alternatiiviks sellistele tarkvaradele nagu Puppet,Chef,CFEngine.
Labori ülesanne püstitus
Installerida SaltStack-master Ubuntu Serveri peale ja SaltStack-minion installerida Ubuntu Desktop-i peale.Konfigureerida neid et nad saaksid ühendust omavahel.Seejärel SaltStack-masteri kaudu käivitada skripti et paigaldada mingi programmi või packgage-i SaltStack-minion-i peale.
NB! Selles laboris ma ei paigalda Salt syndic ja ei kirjuta kuidas seda paigaldada ja seadistada.Lisainfo http://docs.saltstack.com/ref/syndic.html
Põnimõisted
Salt master - See on keskne server mille külge on ühendatud kõik Salt minion-id.Käsud käivitatakse Salt minionide peal ja Salt master-i kaudu ja Salt minion-id tagastavad andmed tagasi salt-masterile(kui ei ole ümbersuunatud "returner"-iga).Ta on käivitatud salt-master programmiga.[5]
Salt minion - on potentsiaalseid sajad tuhanded serverid mis võivad olla päritud ja kontrollitud Salt masteri poolt.[6]
Labori keskkond
Salt master - Ubuntu Server 12.04 LTS 64 bit.
2 adapterid:
eth0 NAT adress 10.0.2.15
eth1 Host-Only address 192.168.56.200
Salt minion - Ubuntu Desktop 13.04 64 bit
2 adapterid:
eth0 NAT adress 10.0.2.15
eth1 Host-Only address 192.168.56.101
Salt Installeerimine
Viimased Salt Stack pakid on saadaval PPA-s.
Järgmised sammud näitavad kuidas lisada PPA ja installerida Salt Stack pakid:[7]
sudo apt-get install python-software-properties sudo add-apt-repository -y ppa:saltstack/salt
Altenatiiviks,ku eelnevad käsud ei toimi,käsitsi lisa repositooriumi ja importi PPA võti järgmiste käskudega:[8]
echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee /etc/apt/sources.list.d/saltstack.list
wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" | sudo apt-key add -
NB! Samad käsud tuleb käivitada Serveri peal kus me tahame paigaldada Salt masteri ja Serveri peal kuhu tahame paigaldada Salt minioni.
Nüüd oleme valmis installerima Salt pakid.
Salt master pakki installerimine
Salt masteri pakki me installerime Ubuntu Server 12.04 LTS peale.
Selleks käivitame käsu:[9]
sudo apt-get install salt-master
Salt minion pakki installerimine
Salt masteri pakki me installerime Ubuntu Desktop 13.04 peale.
Selleks käivitame käsu:[10]
sudo apt-get install salt-minion
Salt konfigureerimine
Kõik configuratsiooni failid on paigaldatud /etc/salt kaustas ja nimetatud nagu vastavat komponendid, /etc/salt/master ja /etc/salt/minion.[11]
Salt masteri konfigureerimine
Selleks et konfigureerida Salt-master meil on vaja muuta /etc/salt/master konfiguratsiooni faili:
sudo nano /etc/salt/master
Vaikimisel Salt kuulab portidel 4505 ja 4506 kõikide kasutajaliideste peal (0.0.0.0). Selleks et siduda Salt teatud IP-ga, tuleb /etc/salt/master faili muuta järgnevalt:[12]
Leia:[13]
# The address of the interface to bind to #interface: 0.0.0.0
Asenda järgnevalt:[14]
# The address of the interface to bind to interface: teie_ip_aadres
Mina asendasin oma Salt masteri Serveri ip aadressiga 192.168.56.200
Stati-de file_root kausta seadistamine
Kõik salt-i poliisid või "states" peavad kuskil elama. Ja file_roots kaust on koht kus "states" asuvad diski peal.Selle artikli jaoks me paneme kõike /salt/states/base kausta.[15]
Leia:[16]
#file_roots: #base: #- /srv/salt
Asenda järgnevalt:[17]
file_roots: base: - /salt/states/base
Ei ole kõik "states" on samasugused, vahepeal te soovite et pakid oleksid konfigureeritud ühtemoodi arenduses ja teismoodi tootmises. Kuigi ma ei avalda sellest artiklis te võite teha selle kasutades salt-i "environments" konfiguratsiooni.[18]
Igal salt masteril peab olema "base environment", see on kasutatud et hoida top.sls fail mis defineerib mis salt-i "state"-id rakendub teatud minions-ide vastu.Samuti "base environment" kasutatakse üldiselt "state"-ide jaoks mis rakenduvad kõikidele süsteemidele.[19]
Näiteks, mulle meeldib "screen" käsk ja ma tahan et ta oleks installitud kõikide masinate peal mis ma haldan. Selleks et seda teha ma lisan "screen state" "base environment"-i juurde.[20]
Selleks et lisada "enviroments" on vaja lihtsalt lisada file_roots konfiguratsionisse.[21]
Lisan development enviroment:[22]
file_roots: base: - /salt/states/base development: - /salt/states/dev
Seadistan pillar_roots
Kuigi see artikkel ei avalda infot "pillars"-idest ma väga soovitan konfigureerida "pillar_roots" kaustat samuti. Ma ledsin et "pillars"-id on väga kasulikud selleks "state"-ide korduvkasutuseks ja vähendab unikaalsete "state"-ide osakaalu.[23]
Leia:[24]
#pillar_roots: #base: #- /srv/pillar
Asenda:[25]
pillar_roots: base: - /salt/pillars/base
Taaskäivita Salt master-i teenust
Selleks et configuratsiooni faili /etc/salt/master muutused jõustunud,meil on vaja teha Salt master teenusele restarti:[26]
student@ubuntu:~$ sudo service salt-master restart salt-master stop/waiting salt-master start/running, process 1581
Loon salt "states" ja "pillars" kaustad
NB! Edasi kõik käsud teme root õigustes:
sudo -i
Enne ku me liigume salt "minioni"-de konfiguratsiooniga edasi me peame looma file_roots ja pillar_roots kaustad millised me kirjutasime /etc/salt/master faili:[27]
root@ubuntu:~# mkdir -p /salt/states/base /salt/pillars/base
Salt minioni konfigureerimine
Salt minion-i konfigureerimine on isegi lihtsam kui salt master-i.Lihsas ülesseadistuses nagu me teeme selles laboris kõik mis on meile vaja see on seadistada salt master-i IP aadres.[28]
Lähme jalle root kasutajaks Ubuntu desktopi peal kuhu me installerisime meie Salt minion:
student@desktop:~$ sudo -i
Salt master-i sihmärgi IP muutmine
Ava Salt minion-i konfigaruratsiooni faili:[29]
root@saltminion:~# nano /etc/salt/minion
Leia:[30]
#master: salt
Asenda:[31]
master: teie_master-i_ip_aadres
Naiteks minu konfiguratsioni puhul ma kirjutan minu Salt master-i ip aadress mis on 192.168.56.200
Taaskäivita Salt minion-i teenust
Selleks et configuratsiooni faili /etc/salt/minion muutused jõustunud,meil on vaja teha Salt minion teenusele restarti:[32]
root@desktop:~# service salt-minion restart salt-minion stop/waiting salt-minion start/running, process 2839
Minions-ide võtmete vastuvõttmine Salt masteri poolt
Kohe kui Salt minion-i teenus on taaskäivitunud minion hakkab proovima suhelda master-iga.Enne kui see võib juhtuda me peame vastuvõtta minions-i võti master-i peal.[33]
Ava võtmete nimekirja Salt masteri peal
Me saame vaadata missugused võtid ootavad vastuvõttmist käivitades salt-key käsku.[34]
Minu masina puhul:
root@ubuntu:/# salt-key -L Accepted Keys: Unaccepted Keys: desktop.planet.zz Rejected Keys:
Võtta desktop.planet.zz-i võti vastu
Selleks et vastuvõtta destktop.planet.zz-i võti me võime teha seda kahel viisil, labi desktop.planet.zz spetsifilist nime või aktsepteerides kõik võttid mis on ootel.[35]
Aktsepteerida nime järgi:[36]
root@ubuntu:/# salt-key -a desktop.planet.zz The following keys are going to be accepted: Unaccepted Keys: desktop.planet.zz Proceed? [n/Y] Y Key for minion desktop.planet.zz accepted.
Aktsepteerida kõike võttmed:[37]
root@ubuntu:~# salt-key -A The following keys are going to be accepted: Unaccepted Keys: saltminion Proceed? [n/Y] Y Key for minion desktop.planet.zz accepted.
Saadame käsku
Ühendust Salt minioni ja Salt masteri vahel võib kontrollida käivitades käsku test.ping:[38]
root@ubuntu:/# salt desktop.planet.zz test.ping desktop.planet.zz: True
Kui teil on palju minion-i ja te tahate kontrollida ühendust kõikidega siis tuleb käivitada järgmist käsku:[39]
root@ubuntu:/# salt '*' test.ping desktop.planet.zz: True
NB! Kuna mul on ainult üks minion siis ta näitabki ainult ühe minioniga ühendust teise testi peale
Web serveri installerimine Salt minioni peale Salt masteri kaudu
Valmistame Top faili Salt masteri peal
root@ubuntu:~# nano /salt/states/base/top.sls[40]
Sisestame järgmised parameetrid:[41]
base: 'desktop.planet.zz*': - webserver
Loo sls mooduli
Samas kaustas kus asub top fail, loo tühi fail nimega webserver.sls, mis sisaldab:[42]
apache2: # ID deklareerimine pkg: # state deklareerimine - installed # funktsiooni deklareerimine
Installeri paki apache2
root@ubuntu:~# salt '*' state.highstate[43]
Meie master juhendab kõike sitmärgitud minion-id käivitada state.highstate. Kui minion täidab käsu ta laeb alla top faili ja üritab sobitada avaldis. Kui ta leiab käsud mis klappivad käskudega mis on masteri moodulites siis ta laeb need alla, compilerib ja täidab.[44]
Kui kõik on valmis, minion raporteerib masterile kokkuvõtte kõikidest tegevustest ja muudatustes mis olid tehtud[45]
Raport mis minion tagastas minu masterile:
desktop.planet.zz: ---------- State: - pkg Name: apache2 Function: installed Result: True Comment: The following packages were installed/updated: apache2. Changes: libaprutil1-ldap: { new : 1.4.1-3 old : } libapr1: { new : 1.4.6-3ubuntu1 old : } apache2-utils: { new : 2.2.22-6ubuntu5.1 old : } apache2.2-bin: { new : 2.2.22-6ubuntu5.1 old : } apache2-mpm-worker: { new : 2.2.22-6ubuntu5.1 old : } apache2.2-common: { new : 2.2.22-6ubuntu5.1 old : } libaprutil1: { new : 1.4.1-3 old : } apache2: { new : 2.2.22-6ubuntu5.1 old : } libaprutil1-dbd-sqlite3: { new : 1.4.1-3 old : }
Summary ------------ Succeeded: 1 Failed: 0 ------------ Total: 1
Vaikimisi logi failide asukohad
Salt master-i logi faili asukoht
/var/log/salt/master[46]
Salt minion-i logi faili asukoht
/var/log/salt/minion[47]
Kokkuvõtte
Saltstacki installerimine ja konfigureerimine läks kohe esimesest korrast hästi.Mulle meeldis se konfiguratsiooni haldamise süsteem oma lihtsuse poolt.Mis puudutab kiirust,siis veebiserveri installerimine minioni peal võttis kuidagi palju aega minu puhul ja Salstacki arendajate väide,et Salststack töötab väga kiirelt ei leidnud minu jaoks kinnitust.Aga igal juhul ma soovitaks seda süsteemi kasutada kui alternatiiv sellestele tarkvaradele nagu Puppet,CFEngine,Chef sellepärast et Salstack-i sest ta on väga kiirelt installeritav ja lihtsasti konfigureritatav ja kasutatav tarkvara.
Kasutatud kirjandus
http://blog.niyakiy.com/2013/11/saltstack.html
http://sc0rp1us.blogspot.com/2013/04/saltstack.html
http://docs.saltstack.com/topics/configuration.html
http://ubuntu-tutorials.com/2013/03/01/install-salt-stack-on-ubuntu-lts/
http://docs.saltstack.com/topics/installation/ubuntu.html
http://docs.saltstack.com/topics/configuration.html
http://docs.saltstack.com/topics/tutorials/states_pt1.html