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
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: Jinja. Manage 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.