Tämä raportti on osa Tero Karvisen k2020 Palvelinten hallinta-kurssia. Tässä harjoituksessa luodaan erilaisia salt-tiloja ja moduleja.
Luon yhteensä 6 erilaista modulia. Kaikki modulit luodaan kansiossa /srv/salt/.
1) Tekstitiedoston hallinta
Aloitin yksinkertaisella tekstitiedoston luonnilla /tmp/-kansioon. Aloitin tiedostonhallinnasta ja tein kansion, jonne sijoittaa tarvittavat tiedostot mkdir textfile
Loin kansioon textfile.sls– ja textfile.txt-tiedostot.

Käynnistin salt-tila sudo salt '*' state.apply textfile
ja katsoin luotiinko tiedosto kohdekansioon.


2) Käyttäjän hallinta
Haluan luoda uuden käyttäjän saltilla. Tein ensin kansion sudo
mkdir adduser
Loin kansioon tiedoston init.sls. KIrjoitin salt-tilan, joka luo käyttäjän john sekä käyttäjän kotihakemiston

Ajoin tilan sudo salt '*' state.apply adduser

Tila ajettiin onnistuneesti. Katsoin oliko uusi käyttäjä luotu kotihakemistoon.

3) SSH-server
SSH-palvelimen asennus ja asetukset package-file-service-rakenteella. Aloitin pelkällä pakettiasennuksella, koska halusin kopioida config-tiedoston asennuksesta. Loin tiedoston sshd.sls. Tämän jälkeen ajoin tilan sudo salt '*' state.apply sshd

Kopioin asennetun sshd_config-tiedoston salt-kansioon sudo cp
/etc/ssh/sshd_config /srv/salt/
Lisäsin sshd.sls-tiedostoon file-service-funktiot

Muokkasin salt-kansiossa sshd_config-tiedoston porttiasetukseksi 8888

Ajoin lopullisen tilan

Testasin kirjautumista omalle hostille ssh -p 8888 markus@192.168.37.5

SSH-palvelin kuunteli porttia 8888 ja yhteys onnistui.
4) Graafisen ohjelman asennus: Audacity
Audacity on avoin audio-ohjelma, joka on asennettavissa suoraan Ubuntun paketinhallinnasta. Ensiksi asensin ohjelman käsin sudo apt-get install audacity
.
Uusi kansio sudo mkdir audacity
, Lisäsin kansioon init.sls-tiedoston. Tein ensin pelkän pkg.installed-tilan, ajoin tilan sudo salt '*' state.apply audacity
ja testasin asentuiko ohjelma.

Conf-tiedosto sijaitsee ~/.audacity-data/audacity.cfg. Kopioin conf-tiedoston sudo cp ~/.audacity-data/audacity.cfg /srv/salt/audacity/
.
Kirjoitin package-file rakenteen.

Ajoin tilan

Virhe. Parent directory not present. Tila ei löydä isäntä-tiedostoa audacity.cfg. Yritin muuttaa tiedostoa .txt-muotoon tai siirtää isäntätiedostoa samalla päivittäen init.sls-tiedostoa. Testasin muutoksia ajamalla tilan aina uudelleen. Ongelma ei kuitenkaan ratkennut.
5) Web-selaimen hallinta: Firefox
Ubuntulle on valmiiksi asennettuna Firefox-webselain. Asetustiedosto sijaitsee /etc/firefox/syspref.js. Loin tilan, joka asentaa Firefoxin orjakoneelle sekä muuttaa kotisivun haluamakseni.
Loin suolakansion firefox sekä init.sls-tiedoston. Lisäsin tiedostoon package-file-rakenteen.

Kopioin asetustiedoston suolakansioon sudo cp -r /etc/firefox/syspref.js /srv/salt/firefox/
. Kokeilin tiedoston muokkailua ja lopulta lisäsin tiedostoon rivin, joka määrää selaimen aloitussivun.
pref("browser.startup.homepage", "http://www.terokarvinen.com");

Avasin selaimen orjakoneella ja kotisivu oli muuttunut haluamakseni http://www.terokarvinen.com/. Muutos näkyi myös Firefoxin graafisessa asetusvalikossa.

6) Package-File-Service: Sysstat
Olin aiemmassa Linux-palvelimet-kurssini raportissa Prosessinhallinta ja kuormitus asentanut käsin sysstat-monitorointityökalun. Nyt halusin asentaa ohjelman package-file-service-rakenteella ja tehdä asetukset saltilla.
Aloitin paketin asennuksesta. Tein uuden kansion mkdir sysstat
. Lisäsin kansioon init.sls-tiedoston, jonne kirjoitin pkg.installed-funktion. Tämän jälkeen ajoin tilan sudo salt '*' state.apply sysstat

Tiesin, että sysstat-konfiguroidaan /etc/default/sysstat-tiedostossa. Kopioin luodun tiedoston salt-hakemistoon sudo cp /etc/default/sysstat /srv/salt/sysstat/

Sysstat laitetaan toimimaan muuttamalla asetustiedostosta ENABLED=”true”.
Lisäsin init.sls-tiedostoon file.managed-funktion, joka hakee mastertiedoston ja yhdistää sen orjan asetustiedostoon.

Ajoin taas tilan sudo salt '*' state.apply sysstat

Virhe: sysstat-tiedostomuoto vaikeuttaa asioita. Muutin tiedoston teksitiedostoksi sudo mv sysstat sysstat.txt

Ajoin tilan uudestaan


Asetus oli muuttunut kohdetiedostossa. Seuraavaksi sysstat täytyi käynnistää. Lisäsin vielä init.sls-tiedostoon service.running-funktion

Ajoin jälleen tilan

Testataan asennus. Kysyin sysstatilta CPU:n statuksen.

Sysstat toimii oikein!
Lähteet:
http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example
http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port
https://docs.saltstack.com/en/master/ref/states/all/salt.states.user.html
https://manual.audacityteam.org/man/preferences.html#portable
http://terokarvinen.com/2016/firefox-system-wide-settings-etcfirefoxsyspref-js