H3 Jinja & States

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:

jinjaphpsiv

Ajettuani tilan komennolla sudo salt ‘*’ state.apply lamp, tulos näytti seuraavalta.

tulosjinjaselaintervehdys

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

Tilan ajo onnistui, jolloin luotiin kansio testit sekä tekstitiedostot eka, toka ja kolmas.

eka

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.

portinmuunnos

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:

Screenshot_2018-04-16_15-01-55

hosts tiedostoon täytyi lisätä rivi 127.0.0.1 mopo.example.com.

Tiedostoon init.sls kirjoitettiin seuraavaa:

inint

Tilan ajon tulos näytti seuraavalta:

mopotulos

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.mopopsiv

Lähteet: Miko Lähdesmäki, Jami Jernvall, Tero Karvinen

Advertisements

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 )

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 )

Connecting to %s