Skip to content

Latest commit

 

History

History
236 lines (134 loc) · 7.92 KB

h3.md

File metadata and controls

236 lines (134 loc) · 7.92 KB

Mikä? Kotitehtävä palvelinten hallinta -kurssille.

Vagrantin ajo Windowsilla Lenovo IdeaPad 1 14" R5-7520U:lla läppärillä.

Kotitehtävä 3: Demoni

x) Lue ja tiivistä.

Karvinen 2018: Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port

Konfiguraation hallintajärjestelmällä voi kontrolloida monia demoneita. Paketti-tiedosto-järjestelmällä on tähän järjestys:

  1. Asenna sovellus
  2. Korvaa konfiguraatiotiedosto
  3. 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
  1. pkg.installed varmistaa, että OpenSSH -palvelin on asennettuna.

  2. file.managed määrittää että tiedostoa /etc/ssh/sshd_config hallitaan Saltin sshd_config -tiedoston mukaisesti.

  3. 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.)

Saltin ohjeet tilafunktioille pkg, file ja service

  1. pkg:llä voi hallinnoida paketteja

    • pkg.installed asentaa paketin
    • pkg.purged poistaa paketin
    • pkgs:llä pystyy asentaa monta pakettia kerrallaan
  2. 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
  3. 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)

a) Apache easy mode. Asenna Apache, korvaa sen testisivu ja varmista, että demoni käynnistyy.

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

image

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.

image

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

image

Kuva 3. Lokaalisti

image

Kuva 4. Minionin ajo

image

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:

  1. OpenSSH -palvelimen asennuksen varmistuksen.
  2. Tiedosto /etc/ssh/sshd_config päivittyy /srv/salt/sshd_config mukaisesti.
  3. Palvelu käynnistyy uudelleen, jos /srv/salt/sshd_config -tiedostoon tulee muutoksia.

image

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.

image

Kuva 6. SSHD konfiguraatiotiedosto

Sen jälkeen ajoin tilan minionilla

sudo salt '*' state.apply

image

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?

image

Kuva 8. Porttivastaus

(Karvinen 2018)

c) Oma moduli

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:

  1. Luodaan käyttäjä jade ja sille kotihakemisto /home/jade.
  2. Varmistetaan apache2:n lataus.
  3. 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).

image

Kuva 9. netin init.sls

Ajoin muutokset komennolla

sudo salt '*' state.apply netti

image

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

image

Kuva 11. Tiedoston muokkaus normikäyttäjänä

image

Kuva 12. Muokattu sivu

Lähteet

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.