Palvelinten hallinta (2018) H3

Kurssin kolmannen tunnin kotiläksyt löytyvät Tero Karvisen kotisivuilta.

h3

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.

==========================================================================

Ympäristö: Toteutan tehtävän AWS ympäristössä käyttäen heidän pilvipalvelin-koneita (EC2). Luodaan kaksi virtuaalikonetta, ja yhdistyn näihin koneisiin omalta koneeltani SSH tunnelin avulla. Virtuaalikoneiden käyttöjärjestelmänä toimii Ubuntu Server 16.04 LTS (HVM)

(HVM = hardware virtual machine) 

Yhdistän kaksi EC2 virtuaalikonetta toisiinsa SALT yhteydellä käyttäen kurssin ensimmäisen kotiläksyn ohjeita.

Kaikki kirjoittamani tiedostot löytyy GitHub sivuiltani.

b)

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

Tarkoitus on siis luoda tiedosto Saltin avulla Masterista Minionille. Tiedoston osa-sisältö/sisältö tulee sls- tiedostosta.

Luon aluksi sls tiedostolle kansion master koneessa:

$ sudo mkdir -p /srv/salt/jinja-demo

$ sudoedit /srv/salt/jinja-demo/init.sls

Screen Shot 2018-04-16 at 10.07.22

Master siis luo minion koneeseen tiedoston kohteeseen /tmp/jinja-demo/demo.txt. Tiedosto haetaan master koneen saltin alakansiosta jinja-demo /srv/salt/jinja-demo. Saltille kerrotaan myös että alkuperäinen tiedosto on jinja tiedosto ja että kaikki {{text}} – merkityt kohdat korvataan tekstillä joka on annettu sls -tiedostossa.

Nyt luodaan tuo demo.txt tiedosto

$ sudoedit /srv/salt/jinja-demo/demo.txt

Screen Shot 2018-04-16 at 10.00.30.png

Pyydetään masteria ajamaan kyseinen state minoneille.

$ sudo salt ”*” state.apply jinja-demo

Screen Shot 2018-04-16 at 10.08.29.png

Minioni ilmoittaa että muutos tehty onnistuneesti. Tarkistetaan vielä tämä minioni koneesta.

$ cat /tmp/jinja-files/demo.txt

Screen Shot 2018-04-16 at 10.09.40.png

c)

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

Muokkaan b) kohdan sls -tiedostoa tätä varten.

$ sudoedit /srv/salt/jinja-demo/init.sls

 

Screen Shot 2018-04-16 at 10.29.58.png

Tiedoston luonnissa otin esimerkkiä Tero Karvisen sivulta. Lisäsin siis tiedostoon for-loopin joka luo kolme tiedostoa: banana.txt, apple.txt ja tomato.txt. Salt hakee nämä tiedostot /srv/salt/jinja-demo/default.txt.

 

 

Luon alkuperäisen tiedoston:

$ echo ”This file is called {{ filename }}” | sudo tee /srv/salt/jinja-demo/default.txt

Ajetaan kyseinen tila taas sisään:

$ sudo salt ”*” state.apply jinja-demo

Screen Shot 2018-04-16 at 10.33.03.png

Sain vastaukseksi että tiedostot ovat luotu. Tarksitetaan vielä lopputulos minioni koneelta:

Screen Shot 2018-04-16 at 10.34.25.png

d)

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.

Luon uuden kansion masterissa tätä tehtävää varten.

$ sudo mkdir /srv/salt/sshd/

$ sudoedit /srv/salt/sshd/init.sls

Screen Shot 2018-04-16 at 11.08.25.png

State pyytää minioneita asentamaan SSH- paketin, mikäli tätä ei ole vielä asennettu. Tämän jälkeen korvataan sshd_config tiedosto minioni koneesta /etc/ssh/sshd_config. Ja käynnistetään lopuksi sshd uudestaan jos sshd_config tiedostossa tapahtuu muutos.

Luodaan tuo sshd_config tiedosto master koneessa, jonka salt hakee sitten.

$ sudoedit /srv/salt/sshd/sshd_config

Hain netistä sshd_config alkuperäs version ja liitin sen tiedostooni. Muutin vain ”port” kohtaa.

Screen Shot 2018-04-16 at 11.14.19.png

Ajoin staten minioneihin

$ sudo salt ”*” state.apply sshd

Sain vastaukseksi että minioniin tehtiin muutokset. Tarkistan vielä kyseiset muutokset suoraan minion koneesta.

Screen Shot 2018-04-16 at 11.16.48

Portti on muuttunut ja uusi arvo saatu sls tiedostosta.

e)

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.

Valitsin kurssin kotisivujen kommentti kentästä Oliver Lahden sivun. Päätin kokeilla tilaa joka löytyy ”Using Jinja to edit the content of a single file” ala puolelta.

16

(Kuva on Oliverin sivuilta lainattu)

Oliverin tila kirjoittaa xubuntu- käyttäjän kotihakemistoon uuden tiedoston tekstitesti.txt. Tiedoston source löytyy /srv/salt/text hakemiston alta nimellä text.txt. Tiedoston template on määritelty jinjaksi ja contextin arvo on ”world: everybody”

Oliver luo aluksi minioni koneelle tiedoston:

s25

(Kuva on Oliverin sivuilta lainattu)

Idea on siis muokkaa olemassa olevaa tiedostoa Jinjan avulla. ”Hello world” -> ”Hello everybody”

Kokeilen Oliverin tilaa, mutta koska minionillani ei ole xubuntu nimistä käyttäjää, muutan sls -tiedostossa xubuntu -> ubuntu.

Luodaan aluksi minionissa tiedosto joka muutetaan tilassa:

$ nano /home/ubuntu/tekstitesti.txt

 

Screen Shot 2018-04-16 at 11.52.40.png

Seuraavaksi luodaan init.sls tiedosto text hakemiston alle.

$ sudo mkdir /srv/salt/text/

$ sudoedit /srv/salt/text/init.sls

Screen Shot 2018-04-16 at 11.45.08.png

Tämän jälkeen luodaan source tiedosto

$ echo ”Hello {{ world }}, this is a test!” | sudo tee /srv/salt/text/text.txt

Screen Shot 2018-04-16 at 11.48.08.png

Ajetaan tila minioneille

$ sudo salt ”*” state.apply text

 

Screen Shot 2018-04-16 at 11.53.52.png

Minioni ilmoittaa että tiedosto on päivitetty. Tarkistetaan vielä tiedosto minioni koneesta.

Screen Shot 2018-04-16 at 11.56.23.png

Kuvasta huomaa että sama tiedosto on muuttunut ja tila toimii niin kuin pitääkin.

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s