Viikko 3 – Palvelinten hallinta Muotteja sekä Jinjaa

Viikot rullaavat ja uusia tehtäviä tulee.

Tällä kertaa käymme läpi muotteja, sekä Jinjaa

Tehtävät löytyvät kurssin sivulta – Terokarvinen.com Palvelinten-Hallinta

Tässä harjoituksessa käytän salt masterina digitaloceanin palvelinta, joka toimi myös viime harjoituksessa masterina.

Minion koneena toimii xubuntu, joka pyörii livetikulta.

Digitaloceanissa on ubuntu palvelin 16.04.3 x64, ohje tämän laittamiseen löytyy vanhemmasta artikkelista Viikko 4, Virtuaalipalvelimen hallintaa ja testailu tai Digitaloceanin sivuilta: Initial Server Setup Digitalocean

Käytän minion koneessa xubuntu-16.04.4-desktop-amd64.iso, mikä on ajettu usbtikulle UNetBootilla

Specsit minion koneesta
Tehtävät

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.

Luettavaa: Karvinen 2018: SaltStack Get Started [official tutorial]: SaltStack Configuration Management: JinjaManage files.   Make a Million of Those – Jinja Templating Salt States.  Karvinen 2018: Name Based Virtual Hosts on Apache – Multiple Websites to Single IP Address.

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.

 

Asennetaan tarvittavat paketit ja tehdään sitten tehtäviä.

Jos olet seurannut viikkojen tehtäviä, meillähän on asennettuna salt-master digitaloceanin palvelimella.

Salt-Masterin asennuksessa ei tarvitse ihmetellä kummempia. Ajetaan komento.

sudo apt-get update
sudo apt-get install -y salt-master

Jolloin saamme salt-masterin asennettua palvelimelle tai tietokoneelle, johon haluat tämän masterin asentaa. Itselläni se on tuolla palvelimella, jonka osoite ei muutu.

Asennetaan nyt salt-minion toiseen tietokoneeseen, missä näitä komentoja suoritetaan. Käytän itse HP EliteBook 8440p, tarkemmat tiedot löytyvät ylempänä “Specsit minion koneesta” spoilerin alapuolelta.

sudo apt-get update
sudo apt-get install -y salt-minion

Jotta tämä minion kone saa yhteyden master koneeseen, meidän täytyy muuttaa minion konfiguraatio tiedostoa polussa /etc/salt

sudoedit /etc/salt/minion

Lisätään tänne muutama rivi


Koska käytän livetikulta tätä xubuntua, en ole määrittänyt tiettyä tietokoneen nimeä. Laitan sen manuaalisesti minion tiedostoon “id” muuttujalla.

Käynnistetään tuo salt-minion service uudelleen

sudo systemctl restart salt-minion.service

Nyt jos vaihdamme salt-master koneelle / palvelimelle, meidän pitäisi nähdä tämä tietokone, jonka juuri konfiguroimme komennolla.

sudo salt-key

Kyllä, senhän me näemme. Hyväksytään vain tuo “mokka”

sudo salt-key -a mokka

Nyt meillä on yhteys tuohon koneeseen master koneelta ja voimme lähettää komentoja siihen.

Mennään tehtäviin…

 

B) Tehtävän tarkoituksena on tehdä SLS tila-tiedosto, joka laittaa muuttujan tiedostoon.

 

SLS tila-tiedostot täytyvät olla kansiossa “/srv/salt/” masterilla. Jos tätä salt kansiota ei ole, se täytyy luoda /srv kansion alapuolelle.

Luodaan “salt/” kansion alapuolelle kansio “keep”

sudo mkdir keep

Tässä tehtävässä laitan hosts tiedostoon muuttujan mikä vaihtuu perunaksi.

Luodaan keep kansioon tiedosto init.sls

sudoedit init.sls

ja laitetaan sen sisälle seuraavan näköinen pätkä tekstiä.

 

Sekä “hosts” tiedosto, mihin lisätäänrivi. Hosts tiedosto on kopioitu “/etc/hosts” tiedostosta.

127.0.0.1 {{ file }}.example.com

Nyt jos ajamme tämän tilan, näemme, että tämä rivi lisätään, sekä apache2 asentuu.

Nyt jos menemme osoitteeseen peruna.example.com, meidän pitäisi nähdä apachen aloitussivu.


ja sehän näkyy!

Tehtävä B valmis.

 

 

 

C) Tehtävän tarkoituksena on tehdä Jinjalla yksinkertainen SLS-tilatiedosto, joka käyttää for-in-silmukkaa.

Rakenteessa on käytetty Tero Karvisen “Make a million of those – Jinja Templating Salt States” postausta apuna.

Luon tänne “/srv/salt” oman kansion tälle tehtävälle, jotta kaikki tiedostot eivät olisi samassa kansiossa sekottamassa.

sudo mkdir bee

Tehdään tänne tila tiedosto “init.sls”

Tässä tilassa luodaan tiedostot “leipa.txt”, “kala.txt”, “mopo.txt” polkuun /tmp/h3/{{ file }} mikä tarkoittaa tiedoston nimeä.
{{ file }} kohtaan tulee siis, tässä tapauksessa jokainen yllä määritetty .txt tiedosto.

Tiedosto minkä sisältö kopioidaan on hopotin.txt
Kansiot sekä tiedostot luodaan.

template: jinja, mikä kertoo että tuon tiedoston sisälle kirjoitetaan jotain.
context: peruna {{ file }} kertoo, mitä tämän contexin sisälle kirjoitetaan, esimerkiksi tässä, jos tekstitiedostossa lukee {{ peruna }} jossain kohdassa, kopioidaan siihen tämän tiedoston nimi.

 

Tehdään tiedosto “hopotin.txt” minkä sisälle laitetaan muuttuja ja mikä toimii pohjana.

sudoedit hopotin.txt

{{ peruna }} toimii tässä contexina. Joten sen tilalle kirjoitetaan tässä tapauksessa tämän tietyn tiedoston nimi. Kohta näette kuvan niin voi selkeentyä tämä selitys.

Katsotaan mitä tapahtuu jos ajamme tämän tilan.

sudo salt 'mokka' state.apply bee

Tämä komento ajaa tilan init.sls kansiosta bee


Nähdään, että tilan ajaminen onnistui ja 3 eri tiedostoa luotiin /tmp/h3 kansioon minion koneelle.

Kuten huomataan, jokaisessa tekstitiedostossa sisällä oleva muuttuja on muuttunut tämän tiedoston nimeksi.

Tehtävä C valmis.

 

 

D) Tehtävän tarkoituksena vaihtaa SSH demonin porttia jinjalla

Luodaan kansio “ssh” “/srv/salt” kansion alapuolelle ja luodaan sinne tiedostot init.sls sekä sshd.config.

sshd.config tiedosto voidaan kopioida ssh asetusten alta.

sudo cp /etc/ssh/sshd_config /srv/salt/ssh

Muokataan tuota tiedostoa.

sudoedit sshd_config


vaihdetaan portin kohdalle  {{ port }}

 

Luodaan nyt tilatiedosto init.sls ja tehdään tarvittavat muokkaukset.

sudoedit init.sls

Testataan ajamalla tämä tila, toimiiko kaikki ihan ok.

sudo salt 'mokka' state.apply ssh

Huomataan että kaikki kohdat menivät onnistuneesti läpi.
Katsotaan minion koneesta, onko ssh yhteys siirtynyt porttiin 7373

Nyt ssh liikenne toimii portin 7373 kautta. Onnistuimme Jes!

Tehtävä D valmis.

 

E) Tehtävän tarkoituksena on kokeilla jonkun toisen opiskelijan tekemää salt-tilaa

Kokeilin Joona Leppälahden tulimuuri tilaa.

Luodaan kansio “tulimuuri”  “/srv/salt” kansion alle

sudo mkdir tulimuuri

Luodaan tänne tiedostot: init.sls, user.rules ja user6.rules

sudoedit init.sls

sudoedit user.rules

sudoedit user6.rules

 

Minion koneelta katsotaan onko tulimuuri päällä

Ajetaan tulimuuri tila ja katsotaan mitä tapahtuu.

sudo salt 'mokka' state.apply tulimuuri

Kaikki onnistui, kolme kohtaa vaihtui, koska tulimuuri oli jo valmiiksi asennettuna.

Nyt jos tarkistamme tulimuurin tilan uudelleen.


näemme että portit 22 sekä 80 on hyväksytty tulimuurista läpi.
Huom! Tällä tulimuurin asetuksella tosin meidän ssh yhteys ei toimisi, koska vaihdoimme ssh:n portin 7373:ksi.

Tehtävä E) valmis.

Leave a Reply