Harjoituksen 3 tehtävänanto:
“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.”
B) SLS-tila Jinja-muottia hyödyntäen
Tein muutoksia lamp.sls tilaan, jotta jokaisen orjakoneen kotisivu tervehtisi uutta käyttäjää tämän omalla id:llä. Aiempaan lamp.sls tilaan lisäsin vain yhden rivin.
Aikaisemmasta harjoituksesta tuttu lamp tila asentaa siis apache2, sekä poistaa apache2-oletussivun ja muuttaa sen käyttäjän omaksi.
Alla otos tilasta
/var/www/html/index.php:
file:
– managed
– source: salt://index.php
– template: jinja
Seuraavaksi muutin index.php tiedostoa seuraavasti:
Ajettuani tilan komennolla sudo salt ‘*’ state.apply lamp, tulos näytti seuraavalta.
C) Jinja silmukka
Tehtävässä käytin apuna tero karvisen jinja saltstate esimerkkiä.
Loin kansion /srv/salt/multi ja sinne tiedoston init.sls
{% for file in [‘eka.txt’, ‘toka.txt’, ‘kolmas.txt’] %}
/tmp/testit/{{ file }}:
file.managed:
– source: salt://multi/testi.txt
– makedirs: True
– template: jinja
– context:
file: {{ file }}
{% endfor %}
Tämän jälkeen tein vielä varsinaisen testi.txt tiedoston
Hei
Tämä on {{ file }} !
Tämän jälkeen ajoin tilan sudo salt ‘*’ state.apply multi ,
jonka jälkeen tulos näytti seuraavalta:
Tilan ajo onnistui, jolloin luotiin kansio testit sekä tekstitiedostot eka, toka ja kolmas.
D) SSH-portin vaihto jinjalla
Salt-masterin roolissa on virtuaalikone, jolta suoritan salt komennot SSH-yhteyden avulla ja kannettava tietokoneeni toimii orjana. Oli mielenkiintoista havaita ettei asetusten säätö (olettaen etteivät säädöt riko yhteyttä) vaikuttanut millään tapaa toiminnallisuuteen, jonka mahdollistaa pull-arkkitehtuuri.
Salt tilaa varten loin kansion /srv/salt/sshd jonka init.sls tiedosto näytti seuraavalta.
openssh-server:
pkg.installed
/etc/ssh/sshd_config:
file.managed:
– source: salt://sshd/sshd_config
– template: jinja
– context:
portinnro: 8888
sshd:
service.running:
– watch:
– file: /etc/ssh/sshd_config
ja sshd_config tiedostoon
# What ports, IPs and protocols we listen for
Port {{ portinnro }}
Protocol 2
Ajettuani tilan sudo salt ‘*’ state.apply sshd sain tulokseksi, että portti muutettiin ja palvelu käynnistettiin uudelleen.
E) Toisen opiskelijan tila
Harjoituksessa kokelin Jami Jernvallin kohdan F tilaa
Jamin tila toteuttaa virtual hostausta, Jamin mallista poiketen tein kansion apache ja sinne tiedostot init.sls vp.conf ja kopioin hosts tiedoston polusta /etc/hosts
vp.conf tiedosto näytti seuraavalta:
hosts tiedostoon täytyi lisätä rivi 127.0.0.1 mopo.example.com.
Tiedostoon init.sls kirjoitettiin seuraavaa:
Tilan ajon tulos näytti seuraavalta:
Koska vp.conf tiedosto viittaa käyttäjän mopo kotisivuun täytyi myös luoda käyttäjä mopo komennolla sudo adduser mopo ja vaihtaa kyseiselle käyttäjälle su mopo.
Seuraavaksi tein kansion /home/mopo/public_html ja kansioon tiedoston index.html ja lopputulos oli seuraava, sivu mopo.example.com toimi.
Lähteet: Miko Lähdesmäki, Jami Jernvall, Tero Karvinen