Palvelinten Hallinta: Harjoitus 4 raportti

Tässä postauksessa raportoin Tero Karvisen Palvelinten Hallinta-kurssin tehtävää 4.

Käyttämäni tietokoneen speksit on:

  • Emolevy: Asus Prime z270-K -emolevy
  • Corsair Vengeance LPX DDR4 3000 MHz 16 Gt (2 x 8 Gt) -muistit
  • Intel i5 7600k -prosessori
  • 525 Gt Crucialin MX300 SSD
  • Asus GeForce 1060 6GB DDR5 -näytönohjain
  • Xubuntu 16.04.3 x64 livetikulta

Oman Xubuntun saat ladattua täältä.

Koneella pyöritän myös paria Ubuntu 16.04-virtuaalikonetta Vagrantilla jotka toimivat minioneina.

Salt – master

Asennetaan masterilla tarvittavat ohjelmat ja lisätään yksi rivi masterin conffitiedostoon turhien varoituksien poistamiseksi

$ sudo apt-get update
$ sudo apt-get install vagrant virtualbox salt-master
$ sudoedit /etc/salt/master
            ↓
...
file_ignore_glob: []

Tehdään minionkoneet seuraavalla vagrantfilellä. (http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine)

# Thanks to Tero Karvinen for the vagrantfile
# http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine

Vagrant.configure(2) do |config|
 config.vm.box = "bento/ubuntu-16.04"

config.vm.define "slave01" do |slave01|
 slave01.vm.hostname = "slave01"
 end

config.vm.define "slave02" do |slave02|
 slave02.vm.hostname = "slave02"
 end
end

Tsekataan ip myöhempää käyttötarkoitusta varten ja sen jälkeen koneet päälle

$ hostname -I
$ vagrant up

Salt – minions

Mennään koneeseen sisään

$ vagrant ssh slave01

Asennetaan salt-minion ja conffataan se kuntoon

$ sudo apt-get update
$ sudo apt-get install -y salt-minion
$ sudoedit /etc/salt/minion

...
master: ip.os.oi.te
id: orja1

Viimeiseksi käynnistetään salt-minion uudelleen ja toistetaan sama prosessi toisella orjalla. Sen id:ksi annoin orja2.

$ sudo systemctl restart salt-minion

Salt – avaimet ja testaus

Hyväksytään avaimet

$ sudo salt-key -A

orjat.png

Testataan yhteys minioneihin

$ sudo salt '*' test.ping

testping.png

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

b) Tee kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummalekin orjalle mene eri tieto.

Tehdään ihan perus helloworld-versio.

/srv/salt/

Aloitetaan tekemällä tarvittavat hakemistot

$ sudo mkdir /srv/salt

Tehdään hello-hakemisto ja sinne init.sls

$ sudo mkdir /srv/salt/hello
$ cd /src/salt/hello
$ sudoedit init.sls

/tmp/hello.txt:
  file.managed:
    - source: salt://hello/hello.txt
    - template: jinja
    - context:
      finglish: {{ pillar['hello'] }}

Sitten hello.txt

$ sudoedit hello.txt

This is a test file.

{{ finglish }}

Tehdään vielä hyvän maun vuoksi top.sls-tiedosto

/srv/salt/$ sudoedit top.sls

base:
  '*':
    - hello

/srv/pillar/

Tehdään /srv/pillar-hakemisto

$ sudo mkdir /srv/pillar

Tehdään sinne top.sls-tiedosto

$ sudoedit top.sls
        
base:
  orja1:
    - hello1
  orja2:
    - hello2

Nyt orja1 saa siis pillarin hello1 ja orja2 saa pillarin hello2, jos tarvittava muuttuja löytyy niiden sisältä.
Tehdään hello1 ja hello2.

$ sudoedit hello1.sls

hello: Hello world!

$ sudoedit hello2.sls

hello: Hei maailma!

Testaus

$ sudo salt '*' pillar.items #tsekkasin ensin että toimivathan pillarit
$ sudo salt '*' state.highstate
$ sudo salt '*' cmd.run 'cat /tmp/hello.txt'

pillaritems.png

statehighstate1.png

cathello.png

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

c) Tee kahdella orjalla esimerkki, jossa toinen orja saa muuttujan pilarista ja toinen käyttää oletusarvoa (pillar.get).

Nyt tekee kikkailla mieli vähän enemmän, eli ei muokata jo valmista hello-tilaa, vaan tehdään uusi.

/srv/salt/

Aloitetaan tekemällä uudelle tilalle hakemisto ja init.sls

$ sudo mkdir software
$ cd software
$ sudoedit init.sls
         ↓
install_software:
  pkg.installed:
    - name: {{ salt['pillar.get']('special', 'cmatrix') }}

Listätään software top.sls-tiedostoon

/srv/salt/$ sudoedit top.sls

base:
  '*':
    - hello
    - software

/srv/pillar/

Muokataan top.sls

$ sudoedit top.sls
          
base:
  orja1:
    - hello1
    - special
  orja2:
    - hello2

Tehdään special.sls

$ sudoedit special.sls

special: multitail

Testi

$ sudo salt '*' state.highstate
vikahomma.png
Kaikki toimii !

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Lähteet

https://docs.saltstack.com/en/latest/topics/tutorials/pillar.html#parameterizing-states-with-pillar

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s