Palvelinten hallinta, H1: SaltStack

Tein harjoitusta ke 28.3.2018 klo 17:00-21:10. Käytin Lenovon ideapad Z500 -läppäriä, jossa käytin Xubuntu 16.04 LTS -muistitikkua. Käytin myös harjoituksen viimeisessä osassa Ubuntun 16.04 LTS -versiota. Tein harjoituksen siis yhdellä koneella, joten sama kone toimi sekä masterina että minionina (slave).

 

Harjoituksen ohjeistus:

“a) Lue virallisesta Salt Getting Started Guide -kirjasta luvut Understanding SaltStack (noin 8 alasivua) ja SaltStack Fundamentals (6 alasivua, ei tarvitse asentaa demoympäristöä) ja SaltStack Configuration Management: Functions (1 alasivu). (Tätä lukutehtävää ei tarvitse raportoida).

b) Silmäile Laineen 2017 varastossa olevia salt -asetuksia. (Tätä lukutehtävää ei tarvitse raportoida).

c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

d) Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.

e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).”

Tämä ohjeistus lötyy Tero Karvisen sivuilta: http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p

Pohjana Tero Karvinen 2018: Palvelinten hallinta -kurssi, http://terokarvinen.com.

c) Asenna Salt Master ja Slave

Avasin koneen tikulta, joten kävin vaihtamassa näppäimistön kielen suomeksi: “setxkbmap fi” ja asetin salasanan: “passwd“. Tämän jälkeen “sudo apt-get update“.

Tästä eteenpäin aloin seurata Tero Karvisen ohjetta Saltin asennukseen: http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux

Olin jo tehnyt tuon päivityksen, joten siirryin suoraan seuraavaan komentoon: “sudo apt-get -y install salt-master“. Sitten “hostname -I“, jotta olisin saanut ip-osoitteen. Tässä vaiheessa ruutu näytti kuitenkin tyhjää ja tajusin, etten ollut yhdistänyt konetta nettiin. Tein siis sen nopeasti ja tein nuo aiemmat komennot uudestaan. Sain ip-osoitteeksi: 192.168.0.101.

Tämän jälkeen asensin minionin: “sudo apt-get -y install salt-minion“. Tämän jälkeen menin komennolla “cd /etc/salt/” hakemistoon. Tarkisin vielä “ls“-komennolla, että sieltä löytyi sekä master että minion. Sitten “sudoedit minion” ja sinne laitoin seuraavat tiedot:

saltminion_1

Tähän siis tarvittiin masterin ip-osoite sekä minionin yksilöivä id. Tallennus: “Ctrl+x” ja “y” + enter.

Tämän jälkeen piti uudelleenkäynnistää minion: “sudo systemctl restart salt-minion.service“. Seuraavaksi piti masterilla hyväksyä minionin avain: “sudo salt-key -A” ja “Y” + enter. Nyt pitäisi pystyä antamaan esimerkiksi jokin komento. Testaus: “sudo salt ‘*’ cmd.run ‘hostname -I’“:

saltminion_2

Noista warning-kohdista ei tässä tapauksessa ainakaan tarvinnut välittää.

d) tila (state)

Käytin tähänkin Tero Karvisen ohjetta: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Ensin piti luoda kansio: “sudo mkdir -p /srv/salt/” Tämän jälkeen “sudoedit /srv/salt/firewall.sls“. Käytin lähdekoodina: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/firewall.sls

saltstate3

Tallensin ja kokeilin toimintaa antamalla komennon: “sudo salt ‘*’ state.apply firewall“. Tämä ei kuitenkaan toiminut ja sain seuraavanlaiset ilmoitukset:

saltstate_1

Ajattelin aluksi, että virhe olisi ollut siinä, etten ollut luonut tiedostossa olevia user.rules ja user6.rules tiedostoja. Loin ne siis ja käytin seuraavia lähdekoodeja: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/firewall/user.rules ja https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/firewall/user6.rules

Menin siis ensin “cd /etc/salt” ja sinne loin uuden kansion: “sudo mkdir firewall/“. Sitten “cd firewall” ja “sudoedit user.rules” ja “sudoedit user6.rules“. Käytin yllä olevia lähdekoodeja ja tallensin molemmat. Uudestaan “sudo salt ‘*’ state.apply firewall“, mutta ei vieläkään toiminut. Sain lopulta korjattua ongelman muokkaamalla tuota firewall.sls -tiedostoa niin, että lisäilin sinne välilyöntejä viimeiselle riville. Kopioidessa se ei jostain syystä ollut niitä pitänyt siellä, joten siitä myös virheilmoitusta tuli. Kokeilin uudestaan antaa tuon sudo salt… -komennon ja nyt toimi:

saltstate_2

e) Kerää laitetietoja koneilta saltin grains-mekanismilla

Käytin uudestaan tuota c-kohdassa käyttämääni Tero Karvisen artikkelia ja annoin komennon “sudo salt ‘*’ grains.items“. Sain pitkän listan kaikenlaisia tietoja. Näyttäisi olevan esimerkiksi bios julkaisupäivä (11/16/2012) sekä bios versio. IP-osoitekin löytyi sekä kernelistä tietoa. Kokeilin sitten tuota “sudo salt ‘*’ grains.items|less“, mutta siitäkin tuli pitkä lista tietoa. Se näytti myös tuon minionin id:n (jaana) ja masterin ip-osoitteen. Lisäksi löytyi koneen valmistaja (Lenovo) ja käyttöjärjestelmän tietoja (os:ubuntu, os_family: debian, osarch: amd64, oscodename: xenial…). Kokeilin vielä tuota “sudo salt ‘*’ grains.item virtual” ja sain käsittääkseni ilmoitukseksi, että kyseessä on fyysinen kone (?).

f) Säädä saltilla jotain pientä

Sammutin koneen ja otin muistitikun irti. Käynnistin koneen uudestaan (koneessa on Ubuntu 16.04 LTS) ja asensin saltin edellä olevan c-kohdan mukaisesti.

Testasin sitä tuonne “sudo salt ‘*’ cmd.run ‘hostname -I‘” asti (tuloksena oli sama ip-osoite kuin ylempänäkin). Testasin seuraavia komentoja:

salt_cmd_1

Muokkaus to 29.3.2018:

Huomasin Tero Karvisen sivuilla uuden ohjeen (http://terokarvinen.com/2018/quick-fix-for-useless-salt-warning-add-file_ignore_glob-to-etcsaltmaster), jolla sai nuo turhat varoitukset pois. Avasin siis koneen ja terminaalin. Komento: “sudoedit /etc/salt/master” ja sinne lisäsin rivin: “file_ignore_glob: []“. Testasin uudelleen komentoja:

salt_cmd_2

Lähteet

Lähteet löytyvät tekstistä sitä mukaa, kun niitä on käytetty.

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Connecting to %s