Palvelinten Hallinta
Configuration Management Systems - Palvelinten Hallinta - Spring 2021
Haaga-Helia ammattikorkeakoulu
ICT4TN022-3011 - Kevät 2021
Opettajana: Tero Karvinen
Harjoitus 1 - Hello Salt! - 04.04.2021
Harjoituksessa käytetty välineistö:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041
Oracle VM virtualBox, versio 6.1.18
Debian-live-10.8.0-amd64-xfce+nonfree
Tehtävä A
a) Asenna Salt ja siihen uusi orja. Voit tehdä ne esimerkiksi uudelle virtuaalikoneelle, niin pääset kokeilemaan puhtaalta pöydältä.
Master ja Minion
Seurataan Tero Karvisen 'Salt Quickstart' ohjetta: Salt Quickstart – Salt Stack Master and Slave on Ubuntu Linux. Tässä ohjeessa asennetaan master ja minion samalle koneelle.
Aloitetaan asentamalla master ja minion
$ sudo apt-get install salt-master -y
$ sudo apt-get install salt-minion -y
Tässä virtuaalikoneessa ei ole palomuuria asennettuna, jos olisi, avaisimme portit 4505/tcp ja 4506/tcp master koneesta, jotta minion saisi siihen yhteyden.
Tarkistetaan koneen osoite
$ hostname -I
$ sudoedit /etc/salt/minion
Ja kuten aina muutosten jälkeen, käynnistetään minion uusiksi
$ sudo systemctl restart salt-minion.service
$ sudo salt-key -A
$ sudo salt '*' cmd.run 'whoami'
Tehtävä B
b) Tee saltille idempotentti hei maailma (siis tiedostosta, foo.sls)
file.managed
Seurataan Tero Karvisen 'Salt States – I Want My Computers Like This' ohjetta: https://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this/
Tehdään saltille oma kansio ja sen sisään hello kansio
$ sudo mkdir -p /srv/salt/hello/
$ sudoedit /srv/salt/hello/init.sls
/tmp/hello.txt:
file.managed:
- source: salt://hello/hello.txt
$ sudoedit /srv/salt/hello/hello.txt
$ sudo salt '*' state.apply hello
Tehtävä D
Kerää tietoa koneesta saltin avulla (grains.items)
grains.items
$ sudo salt '*' grains.items|less
Tämän avulla saamme paljon tieto minion koneesta
Tehtävä E
Kokeile jotain toista tilaa kuin file.managed. Tärkeitä ovat pkg.installed, file.managed, service.running, file.symlink, user.present, group.present. Ohjeita saa esim "sudo salt '*' sys.state_doc pkg.installed|less"
pkg.installed
Tehdään käsky asentaa tulimuuri. Aloitetan tekemällä uusi kansio nimeltään ufw, salt kansion sisälle.
$ sudo mkdir -p /srv/salt/ufw
ufw:
pkg.installed
$ sudo salt '*' state.apply ufw
Tehtävä F
Vapaaehtoinen: Laita Salt Master palvelimelle, joka näkyy Internetiin. Silloin orjat saavat siihen yhteyden tulimuurin läpi, ei-julkisista (NAT) osoitteista ja vaikkapa virtuaalikoneista.
Master pilvessä
Luodaan pilvikone 'linux palvelimet' kurssilla tehtyjen oppien mukaan, Johan Lindell - Harjoitus 4 - Julkinen palvelin Kirjaudutaan pilvikoneeseen ja asennetaan siihen salt-master. Tarkastetaan osoite ja otetaan se talteen. Vaihdetaan minion koneeseen tuo uusi osoite.
$ sudoedit /etc/salt/minion
$ sudo systemctl restart salt-minion.service
$ sudo salt-key -A
$ sudo salt '*' cmd.run 'whoami'
Minion did not return. [No response]
Ei toimi, googltataan tuo error viesti ja avataan linkki joka parhaiten kuvaa ongelmaa
https://stackoverflow.com/questions/35458952/salt-minion-returns-no-response-after-being-acceptedRatkaisuehdotuksena on tarkastaa minionin status ja edetä sen mukaan, tehdään se
$ sudo service salt-minion status|less
Apr 04 19:39:43 testikone108 salt-minion[9782]: If you are confident that you are connecting to a valid Salt Master, then remove the master public key and restart the Salt Minion.
Apr 04 19:39:43 testikone108 salt-minion[9782]: The master public key can be found at:
Apr 04 19:39:43 testikone108 salt-minion[9782]: /var/lib/salt/pki/minion/minion_master.pub
Lisäys: Olimme tätä samaa konetta käyttäneet aikaisemmissa tehtävissä ja tämän koneen mielestä sen master on vielä se itse. Joten tiedämme syyn miksi tämä error viesti tulee ja voimme poistaa tuon vanhan masterin avaimen turvallisesti.
$ sudo rm /var/lib/salt/pki/minion/minion_master.pub
$ sudo systemctl restart salt-minion.service
$ sudo salt '*' cmd.run 'whoami'
Minion vastasi, yhteys siis toimii kotikoneella olevan minionin ja pilvessä olevan masterin välissä.
Harjoitus 2 - Package-File-Service - 11.04.2021
Harjoituksessa käytetty välineistö:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041
Oracle VM virtualBox, versio 6.1.18
Debian-live-10.8.0-amd64-xfce+nonfree
Tehtävä A
a) Demonin asetukset. Säädä jokin demoni (asenna+tee asetukset+testaa) package-file-service -rakenteella. Tunnilla asennettiin Apache vaihdetulla oletussivulla, joten tee jotain muuta). Voit esimerkiksi asentaa SSH-palvelimen tai tehdä jotain muuta Apachella. Ensin käsin: muista tehdä ja raportoida asennus ensin käsin, vasta sitten automatisoiden.
Nginx käsin
Tähän asti on käytetty tehtävissä paljon Apachea, joten tälläkertaa kokeilemme Nginx nimistä webpalvelin ohjelmaa. Ensin tehdään asennus käsin.
Aloitetaan päivittämällä paketinhallinta ja asennetaan Nginx.
$ sudo apt-get install nginx -y
Varmistetaan että toimii
$ firefox 'localhost'
"If you see this page, the nginx web server is successfully intalled and working."
Muutetaan tuo sivu
$ echo testi |sudo tee /var/www/html/index.nginx-debian.html
Nyt sivulla näkyy ainoastan teksti "testi"
Poistetan nginx
$ sudo apt-get purge nginx
Test Master-Minion
Edetään askel kerrallaan, jos yrittäisimme laittaa kaiken kerrallaan toimimaan niin jossain olisi varmasti virhe ja tämän virheen etsiminen olisi hyvin vaikeeta. Koneeseen on jo asennettu Salt master ja minion aikaisemmassa tehtävässä. Niiden toiminta takastetaan ennenkuin aloitamme tehtävä teon.
$ sudo salt '*' cmd.run 'whoami'
Tehdään saltin sisälle oma kansio nimeltään nginx ja sinne init.sls tiedosto. Tiedostoon lisätään aluksi vain komento kopioida txt tiedosto, näin varmistamme minionin ja masterin toimivuuden.
$ sudo mkdir -p /srv/salt/nginx
$ cd /srv/salt/nginx
$ sudoedit init.sls
/tmp/testi.txt:
file.managed:
- source: salt://nginx/testi.txt
Luodaan edellä mainittu nginx.txt tiedosto ja kirjotetaan sinne sisään, "testi"
$ sudoedit testi.txt
Sitten onkin jo aika suorittaa ensimmäinen testi
$ sudo salt '*' state.apply nginx
Tarkastetaan onko tiedosto olemassa
$ sudoedit /tmp/testi.txt
Kuten halusimme, kopioitiin txt tiedosto sisältöineen. Nyt kun tiedämme että ohjelma toimii niin voimme siirtyä eteenpäin.
Minion install Nginx
Seuraavaksi muutetaan init.sls tiedostoa niin että se asentaa nginx ohjelmiston
nginx:
pkg.installed
Ja testiin:
$ sudo salt '*' state.apply nginx
Ilmeisesti tuo aikaisempi nginx poistamien ei ollut onnistunut, koska se on vielä asennettuna. Varoitusteksti tuli myös:
Warnings:
The following package(s) are "virtual package" names: nginx.
These will no longer be supported as of the Fluorine release.
Please update your SLS file(s) to use the actual package name.
Pieni googletus ehdottaa tilalle nginx-full pakettia, joten muutetaan init.sls tiedostoa hieman:
nginx-full:
pkg.installed
Ja testiin:
$ sudo salt '*' state.apply nginx
Ei erroria, näyttää paremmalta
Minion change front page
Seuraavaksi lisäämme init.sls tiedostoon komennon kopioda masterin index.html tiedoston sisältö minionin index.nginx-debian.html tiedostoon
Tehdään tuo edellä mainittu index.html tiedosto salt/nginx kansioon
$ sudoedit index.html
Testiin
$ sudo salt '*' state.apply nginx
Muuten toimi, mutta korjataan vielä index.html tiedostoon UTF-8 kuntoon ja ajetaan uudestaan.
Muutos onnistui ja sivu on toiminnassa.
Tehtävä B
b) Uusi ohjelma. Asenna + tee asetukset + testaa jokin sovellus, jota ei ole käsitelty tunnilla. Asenna ensin käsin, ja käytä sen jälkeen find-komentoa etsiäksesi muuttuneet tiedostot.
MariaDB käsin
Asennetaan mariadb ja käynnistetään se
sudo apt-get install mariadb-client mariadb-server -y sudo mysql_secure_installationKirjaudutaan sisään ja luodaan tietokanta 'testi'
sudo mariadb -u root
CREATE DATABASE testi;
GRANT ALL ON testi.* TO testi@localhost IDENTIFIED BY 'hfk4-OPSEC-78xe';
exit
Minion install MariaDB
Aloitetaan taas tekemällä mariadb kansio jonka sisälle init.sls tiedosto
Muuttuneet tiedostot
Katsotaan mihin tiedostoihin tuli muutoksia
$sudo find -printf "%T+ %p\n"|sort
Tehtävä C
c) Aja jokin tila paikallisesti ilman master-slave arkkitehtuuria. Tutki debug-tulostetta. 'sudo salt-call --local state.apply hellotero -l debug'
Master ja Minion
Testataan tuo aikaisempi nginx.sls,
$ sudo salt-call --local state.apply nginx -l debug
Harjoitus 3 - Versionhallinta - 16.04.2021
Harjoituksessa käytetty välineistö:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041
Oracle VM virtualBox, versio 6.1.18
Debian-live-10.8.0-amd64-xfce+nonfree
Github
Tämä tehtävä löytyy kokonaisuudessaan GitHubista, osoitteessa https://github.com/johanlindellgit/githubharkka
Lisätty kuvat:Harjoitus 4 - Uusi komento - 23.04.2021
Harjoituksessa käytetty välineistö:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041.928
Oracle VM virtualBox, versio 6.1.18
Debian-live-10.8.0-amd64-xfce+nonfree
Tehtävä A
a) Hei komento! Tee järjestelmään uusi "hei maailma" -komento ja asenna se orjille Saltilla. Liitä raporttiisi 'ls -l /usr/local/bin/' tulosteesta ainakin se rivi, jolla näkyy uuden komentotiedostosi oikeudet. Vinkkejä: tee shell script, joka tulostaa "hei maailma". Kokeile ensin käsin, sitten automatisoi. Luonteva paikka paketinhalllinnan ulkopuolelta asennetuille ohjelmille on /usr/local/bin/. Katso myös 'salt-call --local sys.state_doc file.managed'. Muista (aina ja kaikessa mitä teet tietokoneella) testata lopputulos. Hyvä testi on mahdollisimman lähellä sitä, mitä käyttäjä tekisi.
Hei maailma
Master koneelle tehdään 'heippa' tiedosto, jonka sisälle kirjotetaan komento echo "Hei Maailma"
. Tämän jälkeen siirretään tuo tiedosto kansioon /usr/local/bin/
. Muutetaan myös tuon tiedoston käyttöoikeuksia niin, että kaikilla on oikeus ajaa se, mutta ei tietenkään saa muuttaa sen sisältöä.
$ nano heippa
$ sudo mv heippa /usr/local/bin/
$ sudo chmod 755 /usr/local/bin/heippa
Tehtävänannon mukaan varmistetaan vielä tiedoston käyttäjä oikeudet.
ls -l /usr/local/bin/
-rwxr-xr-x
Viimeinen x tarkoittaa että kaikilla on ainoastaan execute oikeudet, se riittää.
Sitten tietenkin varmistetaan tuon toiminta,
$ heippa
Salt
Nyt kun tiedämme että scripti toimii niin voimme siirtyä saltin avulla sen siirtämiseen minioneille. Tehdään salttiin uusi kansio, heippa, jonka sisälle tehdään init.sls tiedosto
$ sudo mkdir -p /srv/salt/heippa
$ sudoedit /srv/salt/heippa/init.sls
Init tiedoston sisälle kirjotetaan komento kopioda tuo 'heippa' tiedosto minionin /usr/local/bin/ kansioon. Varmistetaan myös että oikeudet menevät oikein jotta minionin käyttäjät voivat komentoa käyttää
/usr/local/bin/heippa:
files.managed:
- source: salt://heippa/heippa
- mode: "0755"
Tuo 'heippa' tiedosto pitää kopioida tuohon saltin kansioon, tehdään se
$ sudo cp /usr/local/bin/heippa /srv/salt/heippa
Varmistetaan että minion on hereillä
$ sudo salt '*' cmd.run 'whoami'
Ajetaan salt
$ sudo salt '*' state.apply heippa
Kirjaudutaan minionille ja testataan
$ heippa
Vastauksena tulostuu "Hei Maailma", eli komento toimii.
Tehtävä B
b) whatsup.sh. Tee järjestelmään uusi komento, joka kertoo ajankohtaisia tietoja; asenna se orjille. Vinkkejä: Voit näyttää valintasi mukaan esimerkiksi päivämäärää, säätä, tietoja koneesta, verkon tilanteesta...
Tietoja koneesta
Ensin valitaan mitä tietoja halutaan että ohjelma näyttää. Edetään samalla kaavalla kuin edellisen tehtävän kanssa, tehdään tiedosto, siirretään se /usr/local/bin/ kansioon, muutetaan oikeuden ja testataan käsin kunnes lopputulos on miellyttävä
Tehdään taas uusi kansio salttiin nimeltä whatsup ja siirretään tämä tiedosto sinne. Tehdään myös init.sls tiedosto
/usr/local/bin/whatsup:
file.managed:
- source: salt://whatsup/whatsup
- mode: "0755"
Ajetaan salt
$ sudo salt '*' state.apply whatsup
Kirjaudutaan minionille ja testataan
$ whatsup
Tiedot tulostuivat oikein
Tehtävä C
c) hello.py. Tee järjestelmään uusi komento Pythonilla ja asenna se orjille. Vinkkejä: Hei maailma riittää, mutta propellihatut saavat toki koodaillakin. Shebang on "#!/usr/bin/python3". Helpoin Python-komento on: print("Hei Tero!")
Python käsin
Täysin sama kaava alussa kuin edellisissäkin, tehdään ja testataan ensin käsin.
Aluksi pelkkä print("hello"), toimivuuden testamiseksi
Seuraavaksi jotain hieman monimutkaisempaa
#!/usr/bit/python3
import datetime
x = datetime.datetime.now()
print("Today is " + x.strftime("%A"))
Tulostaa
"Today is Friday"
Onko minionilla python3?
Emme voi tietää onko minionilla python3 asennettuna, se pitää siis asentaa, jos ei jo ole asennettuna
python3:
pkg.installed
Testaan tuon toimivuus ensin
$ sudo salt '*' state.apply hello
Toimii, siirretään hello.py saltin hello kansioon ja siirretään hello.py minionille
$ sudo cp /usr/local/bin/hello.py /srv/salt/hello/
python3:
pkg.installed
/usr/local/bin/hello:
file.managed:
- source: salt://hello/hello.py
- mode: "0755"
$ sudo salt '*' state.apply hello
Siirto onnistui, ja kuten tähänkin asti, tarkastetaan minionilla toiminta
Toimii! "Today is Friday".
Tehtävä D
d) Laiskaa skriptailua. Tee kansio, josta jokainen skripti kopioituu orjille. Vinkki: 'salt-call --local sys.state_doc file.recurse'. Kun tämä on valmis, on todella helppoa laittaa orjille mikä tahansa yhden tiedoston shell script, Python-ohjelma, Perl-ohjelma, Go-binääri tai muu yhden binäärin ohjelma.
Tehtävä E
e) Intel. Etsi kolme loppuprojektia joltain vanhalta kurssitoteutukselta. Kuvaile projektit tiiviisti ja linkitä alkuperäiseeen raporttin. Vinkkejä: Loppuprojekteja löydät etsimällä opiskelijoiden raportteja vanhoilta kursseilta ja selailemalla sivuja, joilta ne löytyivät. Raportteja löytyy vanhojen kurssitotetusten kommenteista. Ja tietysti kannattaa silmäillä listaa sieltä täältä, niin näet eri projektit kuin muut. Voi hakea myös Googlella ja DuckDuckGolla.
Linux käyttövalmiiksi + Masteriksi GitHubista
Ville Wilkman teki modulin joka tekee uuden Linux asennuksen käyttövalmiiksi asentamalla ohjelmia ja muuttamalla asetuksia. Master koneelle tarkoitetussa modulissa asennetaan ohjelmina muunmuassa Apache2, Ssh ja Salt master. Minionille on oma moduli joka muokkaa asetukset ja asentaa minionin. Moduli on hyvin tehty ja kertoo hyvin mitä seuraavaksi tapahtuu.
https://wilkmanv.wordpress.com/miniprojekti/
Salt mini-project
Irene Kunnari n Salt master on yhteydessä seitsemään minioniin jossa jokaisessa on eri käyttöjärjestelmä. Hänen modulinsa asentaa jokaiselle käyttöjärjestelmälle Saltin avulla eri ohjelman. Tämä projekti on erittäin meilenkiintoinen ja näyttää miten monipuolinen Salt ohjelmisto on.
https://irenekunnari.wordpress.com/salt-mini-project/
MiniProjekti
Joakim Saras teki modulin helpottaaksenn linuxin asennusta ja projektien tekoa githubin avulla. Ensimmäinen osio asentaa Saltin, gitin, pythonin ja dropboxin, sekä muokkaa Salt-minionin asetukset yhdistämään automaattisesti Salt-masteriin.
https://sarasj.home.blog/2019/05/14/oma-projekti-github-dropbox-installaatio-tiedostot/
Tehtävä F
e) Lukua, ei luottamusta. Kokeile yhtä kohdassa d-Intel löytämääsi modulia koneella. Tämä on infraa koodina, joten luottamusta ei tarvita. Voit lukea koodista, mitä olet ajamassa.
Toisen tekemä moduli
Päätin asenta Joakim Saraksen tekemän modulin,
https://sarasj.home.blog/2019/05/14/oma-projekti-github-dropbox-installaatio-tiedostot/
Aloitin ohjeiden mukaan,
$ wget https://raw.githubusercontent.com/JoakimSaras/srv/master/salt/setuppi.sh
Tarkastetaan tietenkin mitä tuo setuppi.sh tiedosto sisältää
$ nano setuppi.sh
Ymmärrän sisällön ja mitään vaarallista ei ole, jatketan
$ bash setuppi.sh
Ensimmäisen osion asennus onnistui
Seuraava vaihde
$ wget https://raw.githubusercontent.com/JoakimSaras/srv/master/salt/run2.sh
Tarkastetaan taas tietenkin mitä tuo run2.sh tiedosto sisältää
$ nano run2.sh
$ bash run2.sh
Toisen osion osalta en pääse käsiksi 'saras' repositioon ilman käyttäjänimeä ja salasanaa. reposition on joko poistettu tai laitettu yksityiseksi. En myöskään pääse kokeilemaan itse dropbox uploaderia.
Harjoitus 5 - Aikajana - 3.5.2021
Harjoituksessa käytetty välineistö:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041.928
Oracle VM virtualBox, versio 6.1.22
Debian-live-10.8.0-amd64-xfce+nonfree
Tehtävä A
a) Captain obvious. Linuxissa on paketinhallinta, joten ohjelmien asentaminen on yksinkertaista. Tee tila, joka asentaa 10 suosikkiohjelmaasi paketinhallinnasta. Tässä a-kohdassa voit jättää ohjelmat oletusasetuksille.
Kymmenen ohjelman asennus
Aloitetaan valitsemalla kymmenen ohjelmaa ja asennetaan ne ensin käsin.
$ sudo apt-get update
$ sudo apt-get install
handbrake
libreoffice
vlc
ufw
gimp
python3
timeshift
kdenlive
obs-studio
lyx
Testataan että kaikki ohjelmat asentui ja toimii
Tehdään sama saltin avulla
$ sudo mkdir /srv/salt/top10
$ cd /srv/salt/top10
$ sudoedit init.sls
Testiin
$ sudo salt '*' state.apply top10
Kaikki asentui kuten piti
Tehtävä B
b) Sammakko ja skorppioni. Lisää Microsoftin pakettivarasto ja asenna Visual Studio Code.
VSCode käsin
Seurataan ohjetta osoitteesta https://linuxize.com/post/how-to-install-visual-studio-code-on-debian-10/ ,
$ sudo apt install software-properties-common apt-transport-https curl
$ curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
$ sudo apt update
$ sudo apt install code
Tarkastetaan toiminta
$ code
VSCode Saltin avulla
Tehtävä C
c) CSI Pasila. Tiedostoista saa aikajanan 'cd /etc/; sudo find -printf '%T+ %p\n'|sort|tail'.
Anna esimerkki aikajanasta
Selitä jokainen kohta komennosta, jolla aikajana tehdään. Vinkki: '%T+' löytyy 'man find' kohdasta printf.
Aja jokin komento, joka muuttaa järjestelmän yhteisiä asetustiedostoja
Ota uusi aikajana ja etsi muutos sieltä
Onko samalla hetkellä muutettu yhtä vai useampaa tiedostoa?
Selitykset
$ sudo find -printf '%T+ %p\n'|sort|tail
find
komento etsiä tiedostojaprintf
tulostaa tuloksen%T
näyttää ajan%p
näyttää tiedoston nimen\n
rivin vaihtosort
lajittelee ajat järjestykseen tail
näyttää listat viimeiset tuloksetMuutetaan hostname tiedostoa ja tarkastetaan näkyyykö muutokset haulla.
Kyllä näkyy ja ainoastaan yhtä tiedostoa on muutettu
Harjoitus 6 - Windows - 10.05.2021
Rauta ja softa
Tehtävää varten käytän erillisiä master ja minion koneita, master sijaitsee DigitalOceanin pilvessä ja Minion on kotikoneella, Oraclen VM VirtualBoxissa.
Master
DigitalOcean Droplet
Prosessori: 1vCPU
Muisti: 1GB
Käyttöjärjestelmä: Debian10
Minion:
Lenovo L580, ostettu 2018
Prosessori: Intel Core i7-8550U
Muisti: 16GB
Käyttöjärjestelmä: Windows 10 Pro, 64bit, versio 2004, OsBuild 19041.928
Oracle VM VirtualBox, versio 6.1.22
VM
Muisti: 4GB
Käyttöjärjestelmä: Windows 10 Home, 64bit, versio 20H2, OsBuils 19042.
Salt minion, versio 3003
Tehtävä A
a) Kokeile Saltia Windowsissa.
Rauta ja softa
Tehtävää tehdessä seurasin ohjeita sivustoilta https://github.com/rikurikurikuriku/Palvelinten-hallinta/wiki/H5-Aikajana#b-windows-pakettivarasto-ja-vs ja http://terokarvinen.com/2018/control-windows-with-salt/
VSCODE käsin
Aloitetaan asentamalla vscoden käsin minion koneelle, suoritin asennuksen osoitteesta https://code.visualstudio.com/ download linkistä.
Asennus onnistui ja ohjelma käynnisty.
Poistetaan vscoden asennus
Salt minionille
Ladataan windowsille salt minon ohjelma sivustolta https://docs.saltproject.io/en/latest/topics/installation/windows.html valitaan 'Python3 AMD64: Salt-Minion-3003-AMD64-Setup.exe'
Ohjelman asennuksen yhteydessä annetaan masterin IP, joka saadaan masten koneen terminaalissa käskyllä $ hostname -l
.Kirjoitetaan tuo IP kohtaan 'Master IP or Hostname', 'Minion Name:' kohtaan annetaan koneelle tunnistettava nimi.
Salt on nyt asennettu ja pyörii taustalla.
Master kuntoon
Siirrytään masterin pariin, asennetaan salt-master, jos se ei ole jo asennettu
$ sudo apt-get install salt-master
tarkistetaan ja hyväksytään uudet avaimet, täällä pitäisi odottaa tuo aikaisempi windows hyväksymistä
$ sudo salt-key
$ sudo salt-key -A
tarkistetaan että onko sielä kukaan
$ sudo salt '*' cmd.run 'whoami'
Vastaus tuli, jatketaa.
Tehdään salttiin kansio nimeltä vscode ja sinne init.sls tiedosto.
$ sudo mkdir -p /srv/salt/vscode
$ sudoedit /srv/salt/vscode/init.sls
init.sls tiedostoon kirjoitetaan käsky tehdä tiedosto nimellä testi.txt käyttäjän 'Johan' kotihakemistoon, näin voidaan tarkastaa toimiiko tiedostojen siirto minionin ja masterin välissä.
C:\Users\Johan\Documents\testi.txt:
file.managed
Ajetaan tuo käsky saltilla
$ sudo salt '*' state.apply vscode
Onnistui, tarkistetaan vielä minion puolelta onko paketti todellakin sielä
Kyllä on
Minon install vscode
Nyt kun tiedämme että yhteys minioniin toimii ja saamme tehtyä muutoksia, on aika siirtyä vscoden pariin. Ohjeissa kerrotaan että windows repositiot pitää ensin asentaa ja niitä varten tehdä erillinen win kansio salttiin. Myös kansion oikeudet pitää muuttaa niin että saltilla on niihin kirjoitusoikeus. Tätä varten pitää olla Git asennettu.
$ sudo apt-get -y install git
$ sudo mkdir /srv/salt/win
$ sudo chown root.salt /srv/salt/win
$ sudo chmod ug+rwx /srv/salt/win
$ sudo salt-run winrepo.update_git_repos
$ sudo salt -G 'os:windows' pkg.refresh_db
Tämän jälkeen päivitetään init.sls tiedostoa, vaihdetaan sinne käsky asentaa vscode
vscode:
pkg.installed
Ajetaan taas vanha tuttu komento:
$ sudo salt '*' state.apply vscode
Ohjelma asentui, ainakin saltin mukaan. Tarkastetaan vielä Windowsin puolelta.
Toimii kuten pitää!