Palvelinten hallinta H3: Jinja, SSH

Tein harjoituksen maanantaina 16.4.2018 klo 13:00-15:00 ja klo 16:00-18:30. Käytin kahta Lenovon läppäriä: Z500 ideapad ja T440p ThinkPad. Käytin molemmissa Xubuntun 16.04 LTS USB-livetikulta.

Tehtävänanto Tero Karvisen sivuilta (http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-4-ti-5-ke-5-loppukevat-2018-5p):

“a) Opiskele yllä aikataulussa olevat artikkelit. Noissa artikkeleissa opetetaan ne asiat, joilla läksyt saa tehtyä. Tätä lukutehtävää ei tarvitse raportoida. Luettava materiaali on kunkin tapaamiskerran kohdalla.

b) Tiedosto muotista: tee yksinkertainen SLS-tilatiedosto, joka laittaa muuttujan tiedostoon. Käytä jinjan kontekstimuuttujaa (template: jinja, context: …).

c) SLS tilaa Jinjalla: tee yksinkertainen SLS-tilatiedosto, joka käyttää for-in -silmukaa. Voit esimerkiksi tehdä kolme tiedostoa silmukalla. (Tässä tehtävässä siis käytetään jinjaa vain SLS-tiedoston sisällä, älä sotke samaan esimerkkiin tekstitiedostojen sisällön muuttamista.)

d) SSH-demonin portti: tee tila, joka asentaa SSH-demonin valittuun porttiin. Käytä portin valintaan Jinjaa, siten että sshd_config:issa “Port:”-kohdan arvo tulee Jinjan muuttujasta.

e) Kokeile jonkun toisen opiskelijan tekemää Salt-tilaa. Kokeiltava tila voi olla mistä vain harjoituksesta. Opiskelijoiden raportteja ja koodeja löydät tämän sivun perästä kommenteista.”

Tässä harjoituksessa pohjana on käytetty Tero Karvisen oppituntia 11.4.2018 Palvelinten hallinta -kurssilla sekä hänen nettisivujaan: http://terokarvinen.com/.

Alkusäätö

Toinen kone toimi sekä masterina että minionina ja toinen pelkästään minionina.

Tein seuraavat toimenpiteet molemmille koneille:
Näppäimistön kieli suomeksi “setxkbmap fi“, salasanan asetus “passwd” ja päivitykset “sudo apt-get update“.

Siirryin masteriin:
sudo apt-get -y install salt-master salt-minion“. Seuraavaksi loin masterille kansion: “sudo mkdir -p /srv/salt“. Muokkasin minion tiedostoa, jotta saisin otettua yhteyden masteriin: “sudoedit /etc/salt/minion” Tarkistin vielä ip-osoitteen “hostname -I” ja laitoin tuonne tiedostoon seuraavat: “master: 192.168.0.103” ja seuraavalle riville “id: jaana1“. Tallensin ja käynnistin uudelleen minionin: “sudo systemctl restart salt-minion.service“. Kokeilin toimivuutta: “sudo salt-key -A” ja siellä oli yksi hyväksymätön avain. Hyväksyin sen “y” ja Enter. Testasin: “sudo salt ‘*’ cmd.run hostname -I“. Onnistui, sain näkyviin ip-osoitteen, mutta myös hyödyttömät glob-varoitukset. Halusin poistaa ne: “sudoedit /etc/salt/master” ja sinne lisäsin rivin: “file_ignore_glob: []“. Tallensin ja kokeilin uudestaan tuota ip-osoitetta. Nyt jäi turhat varoitusrivit pois.

Minion:
Toisella koneella hain salt-minionin: “sudo apt-get -y install salt-minion“. Muokkasin taas tuota minion-tiedostoa “sudoedit /etc/salt/minion” ja laitoin ensimmäiselle riville “master: 192.168.0.103” ja toiselle “id: thinkpad“. Tallennus ja minionin uudelleenkäynnistys: “sudo systemctl restart salt-minion.service“.

Master:
sudo salt-key -A” ja siellä oli hyväksymättömissä avaimissa tuo thinkpad. Hyväksyin ja kokeilin taas tuota “sudo salt ‘*’ cmd.run hostname -I“:

alku_testi1

b) tee yksinkertainen SLS-tilatiedosto

Master:
Menin salt-kansioon: “cd /srv/salt/” ja tein sinne uuden kansion: “sudo mkdir hello“. Sitten “sudoedit hello/helloperson.txt“. Kirjoitin sinne “Hello {{ person }}!” ja tallensin. Seuraavaksi uusi sls-tiedosto: “sudoedit hello/init.sls“. Käytin lähteenä Tero Karvisen artikkelia http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states, sillä en ihan ulkoa muistanut, miten tuo init.sls tiedosto piti kirjoittaa. Siitä tuli tämän näköinen:

jinja1

Tallensin ja kokeilin: “sudo salt ‘*’ state.apply hello“:

jinja2

Kävin masterin koneella “cat /tmp/helloperson.txt” katsomassa, että sinne oli ilmestynyt tuo tiedosto ja sinne sisältöä. Tein saman minionina toimivalla koneella:

jinja3

c) SLS tila Jinjalla: tee yksinkertainen SLS-tilatiedosto, joka käyttää for-in -silmukkaa

Tarkoituksena oli siis luoda kolme tiedostoa for-in -silmukalla. Käytin taas lähteenä Tero Karvisen artikkelia: http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states.

Master:
Menin salt-kansioon: “cd /srv/salt/” ja loin uuden kansion: “sudo mkdir tiedostot“. Sitten “sudoedit tiedostot/elaimet.txt” ja kirjoitin rivin: “Tämä on {{ tiedosto }}!” Tallensin ja “sudoedit tiedostot/init.sls“:

jinja4

Testasin: “cd” ja “cd /tmp/elaimet/“. Käytin “ls” komentoa, jolloin näin, että sinne oli luotu nuo kolme eri tiedostoa. Vielä “cat hiiri.txt kissa.txt koira.txt“:

jinja5

En alkuksi saanut toisella minionilla testattua tuota, sillä siitä katkesi nettiyhteys. Käynnistin sen siis uudelleen ja tein alkusäädöt ja pääsin siinäkin kokeilemaan. Sielläkin oli nuo kolme tiedostoa.

d) SSH-demonin portti: tee tila, joka asentaa SSH-demonin valittuun porttiin

Tässä tarkoituksena oli käyttää Jinjaa portin valitsemiseen. Aloitin asentamalla SSH:n: “sudo apt-get -y install openssh-server“. Testasin: “ssh xubuntu@localhost“, “yes” + Enter. Sain SSH-yhteyden. Suljin yhteyden “exit“. Kävin katsomassa sshd_config-tiedostoa: “cd /etc/ssh/” ja “ls“. Sitten “sudoedit sshd_config“. Porttina oli 22. Vaihdoin sen 8888. Tallensin ja “sudo systemctl restart sshd.service“. En muistanut, miten piti kirjautua uudella porttinumerolla, joten käytin Tero Karvisen artikkelia lähteenä (http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port). Kokeilin siis: “ssh -p 8888 xubuntu@localhost“. Tuli ilmoitus: “ssh: connect to host localhost port 22: Connection refused“. Edelleen oli siis vanha porttinumero jossain muistissa. Kokeilin seuraavaksi “sudo systemctl restart ssh.service“. Kokeilin uudestaan ottaa SSH-yhteyttä. Sama ilmoitus. Sitten “sudo systemctl restart ssh.socket” ja uudestaan kokeilin. Ei onnistunut vieläkään. Tavallisella tyylillä “ssh xubuntu@localhost” sain avattua SSH-yhteyden. Kokeilin vielä uudestaan uudelleenkäynnistää ssh.servicen ja sitten toimi. Laitoin “exit” ja kokeilin vielä portilla 22: “ssh -p 22 xubuntu@localhost“:

sshd1

Testasin vielä vaihtamalla porttinumeron 2222:

sshd2

Menin salt-kansioon: “cd” ja “cd /srv/salt/“. Tein uuden kansion: “sudo mkdir sshd“. Sitten taas “cd” ja kopioin tuon sshd_config-tiedoston: “sudo cp /etc/ssh/sshd_config /srv/salt/sshd“. Sitten tein seuraavanlaisen tiedoston “sudoedit init.sls“:

sshd4

Testasin: “sudo salt ‘*’ state.apply sshd“. Menin minion-koneelle ja kokeilin: “ssh -p 2222 xubuntu: localhost“:

sshd3 (2)

Seuraavaksi pitäisi lisätä /srv/salt/sshd -kansiossa oleviin tiedostoihin Jinjaa. “sudoedit init.sls“. Katselin täältä taas mallia: http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states.

Tein siitä tämän näköisen:

sshd5

Tallensin ja “sudoedit sshd_config“:

sshd6

Kokeilin: “sudo salt ‘*’ state.apply sshd“. Ilmoitti, että kolme toimintoa (?) onnistui ja kahta muutettiin. Testasin ensin masterin koneella: “ssh -p 8888 xubuntu@localhost“. Annoin salasanan ja sain avattua SSH-yhteyden. Sitten “exit” ja testasin vanhalla portilla: “ssh -p 2222 xubuntu@localhost“:

sshd7

Kävin vielä tuolla init.sls-tiedostossa vaihtamassa portti-kohdan arvon takaisin 2222:ksi. Annoin vielä komennon “sudo salt ‘*’ state.apply sshd” ja kokeilin kirjautua uudella porttinumerolla:

sshd8

e) Kokeile jonkun toisen opiskelijan tekemää Salt-tilaa

 

Päätin kokeilla Joni Mattssonin tekemää taustakuva-tilaa: https://mattssonjoni.wordpress.com/2018/04/09/palvelinten-hallinta-h2/.

Tarkoituksena oli siis saada taustakuva vaihtumaan. Latasin kuvan netistä kotihakemistooni: “wget http:// http://www. hdwallpapers.in/walls/beautiful_landscape_scenery-wide.jpg “.

Laitoin nuo välit tuonne, sillä muuten tähän olisi tullut urlin sijaan kuva. Muutin vielä kuvan nimen: “mv beautiful_landscape_scenery-wide.jpg scenery.jpg“. Sitten menin salt-kansioon: “cd /srv/salt/” ja “sudo mkdir background“. Taas “cd“. Siirsin kuvan background kansioon: “sudo mv /home/xubuntu/scenery.jpg /srv/salt/background/scenery.jpg“. Sitten “sudoedit init.sls“:

background1

Tallennus ja testaus: “sudo salt ‘*’ state.apply background“:

background2

Virheilmoituksia siis riitti. Tarkistin vielä oikeinkirjoituksen ja se oli samanlainen (ainoa ero oli tuo taustakuvani nimi). Kokeilin muuttaa init.sls-tiedoston niin sanotusti oikeaan muotoon:

background4

Annoin taas tuon “sudo salt ‘*’ state.apply background” -komennon:

background3

Nyt jotain ainakin muuttui! Kirjauduin ulos ja takaisin sisään ja taustakuva oli muuttunut:

background5

Kokeilin vielä minion-koneella kirjautua ulos ja sisään ja sielläkin oli taustakuva vaihtunut.

Lähteet

Lähteet on tekstin seassa 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