Tehtävien lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/
a) Hello templates! Tee muotilla esimerkkitiedosto, jossa on muuttujien (esim grains) arvoja
Aloitetaan tekemällä tiedot kansio /srv/salt hakemistoon. Luodaan tähän kansioon kaksi eri tiedostoa, init.sls ja käyttis.txt.
$ sudo mkdir /srv/salt/tiedot
$ sudo nano /srv/salt/käyttis.txt
$ sudo nano /srv/salt/init.sls


Seuraavaksi ajetaan tämä moduuli.
$ sudo salt ‘*’ state.apply tiedot

Tämän luo /tmp kansioon tietoja.txt tiedoston, joka sisältää kaiken käyttis.txt tiedostosta, joten /tmp/tietoja.txt näyttää seuraavalta:

b) Message of the Day. Sisäänkirjautuessa näytetään päivän viesti. Lisää päivän viestiin tietoa ympäristöstä käyttäen muotteja. Sopiva tiedosto on /etc/motd.
Aloitetaan luomalla MOTD tiedosto /srv/salt hakemistoon.
$ sudo nano /srv/salt/motd
Tähän teidostoon kirjoitetaan, mitä halutaan sanoa bannerissa.

Seuraavaksi muokataan sshd.sls tiedostoa ja luodaan sinne tila (file.managed), jonka avulla pystytään hallitsemaan motd tiedostoa, joka löytyy /etc/motd hakemistosta.
$ sudo nano sshd.sls

Tämän jälkeen muokataan myös sshd_config tiedostoa. Tässä tiedostossa vaihdetaan PrintMotd kohdan perään yes (aikaisemmin perässä oli no).
$ sudo nano sshd_config

Tämän jälkeen ajetaan sshd.sls moduuli muutaman kerran.
$ sudo salt ‘*’ state.apply sshd.sls


Seuraavaksi testataan toimivuus kirjautumalla SSH:n avulla minionille.
$ ssh make@192.168.10.52 -p 8888

c) Bash. Tee bashiin asetuksia Saltilla. Ensin käsin, vasta toimivaa automatisoidaan. Muista testata lopputulos käyttäjän näkökulmasta.
Lähdetään vaihtamaan promptin väriä. Lähteenä: https://vitux.com/how-to-customize-ubuntu-bash-prompt/
Tehdään ensin käsin mitä ollaan tekemässä, jonka jälkeen voidaan tehdä pysyviä muutoksia. Esimerkiksi vaihdetaan väriä punaiseksi.
$ PS1=”\[\033[31m\]\u@\h:\w$ “

Tällä saadaan testattua konkreettisesti, mitä ollaan muokkaamaassa, ennen kuin tehdään pysyviä muutoksia /.bashrc tiedostoon.
Testin jälkeen voidaan tehä muutoksia saltin avulla. Ensin tehdään oma kansio bashille /srv/salt kansioon, johon luodaan init.sls tiedosto. Tämän lisäksi kopioidaan /.bashrc juuri luomaamma kansioon, jotta file.managed tilan käyttö onnistuu.
$ mkdir /srv/salt/bash
$ sudo cp /home/make/.bashrc /srv/salt/bash/edit
$ sudo nano /srv/salt/bash/init.sls

Tämän jälkeen ajetaan moduuli.
$ sudo salt ‘*’ state.apply bash

Nyt voidaan tehdä muutoksia promptiin käyttämällä salttia. Eli mennään tekemään muutoksia bashin konfiguraatio tiedostoon.
$ sudo nano /srv/salt/bash/edit

Vaihdetaan tuohon “01;32m” kohtaan “0;31m”, jolloin sadaan punainen väri. Tämän jälkeen ajetaan moduuli.
$ sudo salt ‘*’ state.apply bash

Tämän jälkeen suljetaan terminaali ja aukaistaan uudestaan, jolloin nähdään lopputulos.

d) Nginx. Tee nginx-weppipalvelimeen asetuksia Saltilla. Voit esimerkiksi tehdä uuden site:n, niin että etusivu vaihtuu. Kun nginx on todennäköisesti sinulle uusi palvelin, tässä tehtävässä on siis ensin laaja osuus valita sopiva asetus nginx:lle ja saada se toimimaan käsin. Vasta toimivaa, käsin kokeiltua kannattaa automatisoida. Muista lopputuloksen testaus käyttäjän näkökulmasta.
Olen aikaisemmassa tehtävässä asentanut Nginx webpalvelimen ja muuttanut kotisivua hiukan, joten tehdään muita muutoksia. Lähtökohta on seuraava:

Tehdään muutos, jolla localhostia hakemalla pääsee index.nginx-debian.html sivulle ja hakemalla koneen ip-osoitetta päästään toiselle sivustolle.
Aluksi luodaan html tiedosto /var/www/html -kansioon. Tämän jälkeen tehdään html -sivusta halutunlainen (käytin tässä vanhaa sivustoa, jonka olen aikaisemmin tehnyt) , jonka jälkeen kopiodaan se /srv/salt kansioon.
$ sudo nano /var/www/html/koti-index.html
$ sudo cp /var/www/html/koti-index.html /srv/salt/nginx/
Kopioinnin jälkeen lisätään init.sls tiedostoon uusi file.managed tila, joka hallitsee juuri luotua sivustoa.

Tämän jälkeen on aika muokata nginx.conf tiedostoa. Tähän lisätään serveristä seuraavanlaiset tiedot.
$ sudo nano /srv/salt/ngnix.conf

Tämän jälkeen ajetaan Nginx moduuli muutaman kerran.
$ sudo salt ‘*’ state.apply ngnix

Lopuksi testataan. Haetaan ensin localhostia

Ja sitten IP-osoitteella (192.168.10.52).

Kuten huomataan, homma toimii!
x) Vapaaehtoinen: poista kaikki ylimääräinen motd:sta niin, että vain oma viestisi näkyy.
Käydään muokkaamassa /etc/pam.d/sshd tiedostoa. Tästä tiedostosta kommentoidaan vain pois motd.dynamic kohta, jolloin kaikki ylimääräinen poistuu motd:sta.
$ sudo nano /etc/pam.d/sshd

Testataan muutosta käyttämällä ssh yhteyttä.
$ ssh make@192.168.10.52 -p 8888

Lähteet:
https://vitux.com/how-to-customize-ubuntu-bash-prompt/
http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states