SaltStack: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Vjertsal (talk | contribs)
Vjertsal (talk | contribs)
 
(93 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''':


'''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 and ja teismoodi tootmises. Kuigi ma ei avalda sellest artiklis te võite teha selle kasutades salt-i "environments" konfiguratsiooni.
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" samuti kasutatakse üldiselt "stati"-de jaoks mis rakenduvad kõikidele süsteemidele.
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" need on vaja lihtsalt lisada file_roots konfiguratsionisse.
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 157: Line 156:
     - /salt/states/dev
     - /salt/states/dev


===== 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 "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:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
#pillar_roots:
#base:
#- /srv/pillar
'''Asenda:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
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:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
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:[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
==== 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.[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:
student@desktop:~$ sudo -i
=====  Salt master-i sihmärgi  IP muutmine =====
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
'''Leia:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
#master: salt
'''Asenda:'''[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
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:[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
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.[http://bencane.com/2013/09/03/getting-started-with-saltstack-by-example-automatically-installing-nginx/]
===== Ava võtmete nimekirja Salt masteri peal =====
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]


==== Seadistan pillar_roots ====
Raport mis minion tagastas minu masterile:


Kuigi see artikkel ei avalda [http://docs.saltstack.com/topics/pillar/ "pillars"] I highly suggest configuring the pillar_roots directories as well. I have found that pillars are extremely useful for reusing state configuration and reducing the amount of unique state configurations.
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 179: 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://docs.saltstack.com/

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://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