Vagrantin ajo Windowsilla Lenovo IdeaPad 1 14" R5-7520U:lla läppärillä.
x) Lue ja tiivistä.
Konfiguraation hallintajärjestelmällä voi kontrolloida monia demoneita. Paketti-tiedosto-järjestelmällä on tähän järjestys:
- Asenna sovellus
- Korvaa konfiguraatiotiedosto
- Uudelleenkäynnistä demoni käyttämään uutta konfiguraatiota
Kun sinulla on salt master-minion arkkitehtuuri, tee masterilla tila (sshd.sls) ja konfiguraatiotiedoston pääkopio (sshd_config).
Esimerkkinä OpenSSH-palvelin. Tässä sen tila-tiedosto sshd.sls /srv/salt -hakemistossa:
openssh-server:
pkg.installed
/etc/ssh/sshd_config:
file.managed:
- source: salt://sshd_config
sshd:
service.running:
- watch:
- file: /etc/ssh/sshd_config
-
pkg.installed varmistaa, että OpenSSH -palvelin on asennettuna.
-
file.managed määrittää että tiedostoa /etc/ssh/sshd_config hallitaan Saltin sshd_config -tiedoston mukaisesti.
-
service.running käynnistää palvelimen. Watch tekee automaattisesn uudelleenkäynnistyksen, jos konfiguraatiotiedoston pääkopioon tulee muutoksia.
Sen jälkeen konfiguraatiotiedoston pääkopio sshd_config samassa hakemistossa. Pääkopio löytyy /etc/ssh/ -hakemistosta.
Tämän jälkeen voit laittaa tilan minioneille sekä tarkistaa toimiiko komennoilla:
sudo salt '*' state.apply sshd
nc -vz minion portti
(Karvinen 2018.)
-
pkg:llä voi hallinnoida paketteja
- pkg.installed asentaa paketin
- pkg.purged poistaa paketin
- pkgs:llä pystyy asentaa monta pakettia kerrallaan
-
file:llä voi hallinnoida tiedostoja sekä hakemistoja
- file.managed varmistaa, että tiedosto/hakemisto on jo olemassa ja lataa sen tarvittaessa
- file.absent poistaa tiedoston/hakemiston
- file.symlink tekee symboolisen linkin
-
service:llä voi hallinoida palveluiden tiloja
- service.running varmistaa, että palvelu on käynnissä
- service.dead varmistaa, että palvelu on poissa käynnistä
- enable ottaa palvelun käyttöön kun järjestelmä käynnistyy
(Sphinx & Furo. 2021 - 2024)
Kirjauduin aikasemmin kurssilla tekemääni t001 masteriin ja päivitin paketit. Olin ladannut apachen viime kotiläksyssä niin poistin sen oletus index.html -tiedoston /var/www/html -hakemistosta ja tein tilalle uuden. Katsoin vielä masterin IP:n ja avasin sen selaimessa, jolloin sivuni näkyi.
vagrant ssh t001
sudo apt-get update
sudo apt install apache2 -y
sudo rm /var/www/html/index.html
sudoedit /var/ww/html/index.html
ip -a
Kuva 1. Apache käsintehtynä.
Koska minulla oli jo valmiina /srv/salt/apache kansiossa inits.sls, jossa koodi apachen asennuksen varmistukseen sekä ylhäällä pitämiseen, lisäsin sinne tiedon, että /var/www/html/index.html, päivittyy /srv/salt/apache/index.html mukaan.
Kuva 2. Päivitys
Sitten ajoin tilan lokaalisti ja se toimi, jonka sen jälkeen verkon yli minionilla.
sudo salt-call --local state.apply apache
sudo salt '*' state.apply apache
Kuva 3. Lokaalisti
Kuva 4. Minionin ajo
Kuva 5. Minionin apache -sivu
b) SSHouto. Lisää uusi portti, jossa SSHd kuuntelee. Jos käytät Vagrantia, muista jättää portti 22/tcp auki - se on oma yhteytesi koneeseen. SSHd:n asetustiedostoon voi tehdä yksinkertaisesti kaksi "Port" riviä, molemmat portit avataan. Löydät oikean asetuksen katsomalla SSH:n asetustiedostoa. Nyt tarvitaan service-watch, jotta demoni käynnistetään uudelleen, jos asetustiedosto muuttuu masterilla.
Tein /srv/salt -hakemistoon sshd.sls -tiedoston, jossa määrittelin:
- OpenSSH -palvelimen asennuksen varmistuksen.
- Tiedosto /etc/ssh/sshd_config päivittyy /srv/salt/sshd_config mukaisesti.
- Palvelu käynnistyy uudelleen, jos /srv/salt/sshd_config -tiedostoon tulee muutoksia.
Kuva 5. SSHD.sls tiedosto
Seuraavaksi loin itse sshd_config tiedoston. Koska minulla oli jo OpenSSH ladattuna ennestään, katsoin sen konfiguraatiotiedostoa /etc/ssh/sshd_config ilman kommentteja sekä tyhjiä rivejä komennolla.
grep -v '^#' /etc/ssh/sshd_config | grep -v '^$*
Kopioin sen sisällön ja lisäsin auki portit 22, joka on yhteyteni Vagranttiin sekä portin 8888, jota halutaan testata.
Kuva 6. SSHD konfiguraatiotiedosto
Sen jälkeen ajoin tilan minionilla
sudo salt '*' state.apply
Kuva 7. ajo
Yritin vielä komennolla testata, että onhan portti auki
nc -vz 192.168.88.102 8888
Vastauksessa näkyy, että portti on auki, mutta ei haluttua tekstiä: "Connection to succeeded"!
EDIT: Näin jälkeenpäin ajatellen, olisi varmaan pitänyt testata minionilla, eikä masterilla?
Kuva 8. Porttivastaus
(Karvinen 2018)
Omaksi moduuliksi ajattelin tehdä työpöydän. Verkkosivulle apachella valokuvagallerian, jonne voin laittaa ottamiani valokuvia. Lisäksi discordin, jossa voin jakaa valokuvia kavereilleni sekä Gimpin, jolla voin muokata valokuvia.
d) Virtualhost. Asenna Apache tarjoilemaan weppisivua. Weppisivun tulee näkyä palvelimen etusivulla (localhost). HTML:n tulee olla jonkun käyttäjän kotihakemistossa, ja olla muokattavissa normaalin käyttäjän oikeuksin, ilman sudoa.
Tein /srv/salt -hakemistoon uuuden kansion nimeltä netti ja sinne init.sls -tiedoston. Tiedossa määrittelin:
- Luodaan käyttäjä jade ja sille kotihakemisto /home/jade.
- Varmistetaan apache2:n lataus.
- Tiedoto /var/www/html/index.html, päivittyy /srv/salt/apache/index.html mukaan.
- Käyttäjä ja ryhmä jade omistavat tiedoston.
- Tiedoston käyttöoikeuksille laitoin arvon 644 ( lukeminen kaikille, kirjoitus vain omistajalle).
Kuva 9. netin init.sls
Ajoin muutokset komennolla
sudo salt '*' state.apply netti
Kuva 10. Muutokset läpi
Kirjauduin ulos masterista ja sisään minioniin, jolla vaihdoin käyttäjäksi äskön luodun jaden ja tarkistin, että vaihto onnistui. Sitten vielä muokkasin nanolla index.html -tiedostoa.
exit
vagrant ssh t002
sudo su jade
whoami
nano /var/www/html/index.html
cat /var/www/html/index.html
Kuva 11. Tiedoston muokkaus normikäyttäjänä
Kuva 12. Muokattu sivu
Karvinen 2018: Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port. Luettavissa: https://terokarvinen.com/2018/04/03/pkg-file-service-control-daemons-with-salt-change-ssh-server-port/?fromSearch=karvinen%20salt%20ssh. Luettu 17.11.2024.
Sphinx & Furo: 2021 - 2024. Salt User Guide. Salt states. Luettavissa: https://docs.saltproject.io/salt/user-guide/en/latest/topics/states.html#. Luettu 17.11.2024.