Viisikko

Add some salt(project) and Voilà

Hello Salt.

Palvelinten hallinta ICI001AS3A-3010

päivä aihe
2024-10-24 w43 Thu Hello Salt. Master-slave, pull -arkkitehtuuri. Komentojen etäsuoritus (cmd.run, pkg.install). Tietojen kerääminen orjista (grains.items). Idempotentti konfiguraatio (foo.sls, top.sls). Esimerkkejä tiloista (file.managed).

Laitteisto

h1 Viisikko. Tehtävät

Aloitin su 27.10 klo 11:30, Käytin koko päivän Saltproject tutustumiseen, kokeiluun sekä raportin tekemiseen.

x) Lue ja tiivistä.

”””

”””

Lähde [1]

”””

The network will have one master, and many slaves. The master prompt below is “master$” and slave “minion” prompt is “slave$”.

Install Master

master$ sudo apt-get -y install salt-master

Install Slave

slave$ sudo apt-get -y install salt-minion

The slave must know where the master is

slave$ sudoedit /etc/salt/minion

”””

Lähde [2]

a) Asenna Debian 12-Bookworm virtuaalikoneeseen.

debianJärjestelmätiedot

Alkutoimet

Päivitykset & Palomuuri

$ apt-get update && sudo apt-get upgrade

$ apt-get install ufw
$ enable ufw

b) Asenna Salt (salt-minion) Linuxille (uuteen virtuaalikoneeseesi).

Debian 12 järjestelmälle tarkoitettu salt järjestelmän voi ladata sivulta https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/debian.html.

Luennolla kerrattiin pakettien latauksen menetelmät. Muistutus että ei saisi kopioida nettisivuilta kommentoja ollenkaan tai käyttää nettisivujen sudokomentoja, ymmärtämättä.

Sivulla näkyy komennot:

mkdir /etc/apt/keyrings

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

Ensimmäinen komento tekee keyrings kansion /etc/apt kansion alle. Seuraava komento lataa ja asentaa url sivulta .gpg tiedoston, jossa on julkinen avainpari. Viimeinen komento lisää salt.list tiedostoon järjestelmäasetuksia. Salt hakee päivitykset ja todentaa yhteyden .gpg tiedoston avaimella.

Päätin että lataan tiedoston manuaalisesti ja lisään itse tekstin salt.list tiedostoon.

Latasin .gpg tiedoston.

Siirsin sen kansioon /etc/apt/keyrings.

Sen jälkeen siirrying kansioon /etc/apt/sources.list.d/ ja siellä tein salt.list tiedoston johon kirjoitin:

deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main

Sen jälkeen asennus:

sudo apt-get install salt-master
sudo apt-get install salt-minion

Tämän jälkeen ajoin komennon sudo salt-call --version, joka tulosti:

salt-call 3007.1 (Chlorine)

c) Viisi tärkeintä. Näytä Linuxissa esimerkit viidestä tärkeimmästä Saltin tilafunktiosta: pkg, file, service, user, cmd. Analysoi ja selitä tulokset.

versio_komento

Yllä näkyvässä kuvassa komento asensi tree tiedoston. Yksityiskohdista näkee, kätetty funktio pkg.installed, aloitusaika 20:32:21, mutta tiivistelmä oli vihreän värinen ja kommentin kohdalla luki että All specified packages are already installed. Olin ajanut komennon aikaisemmin ennen näyttökuvaa. Sitten vielä Succeeded oli 1 ja Failed 0, eli mitään ei vaihtunut, koska tila oli tyydytetty.

file_managed

file_managedwithMSG

Ylläolevassa kuvassa käytin file.managed tilafunktioo, ja loin uuden tiedoston /tmp/simonsFolder, ja /tmp/sayings sisällön kanssa. Tällä kertaa tiivistelmä oli sininen ja Succeeded näytti suluissa (changed=1).

removeFolde

Tässä poistin luomani tiedoston /tmp/simonsFolder

apachefailstart

Seuraavaksi yritin komentaa apachen käynnistettäväksi service funktiota käyttämällä. Tämä ei onnistunut koska en ollut ladannut Apachea.

$ sudo apt-get update
$ sudo apt-get install apache2

apachestart

Tällä kertaa näytti vihreätä, apache2 käynnistyi latauksen jälkeen.

apacheStatus

Kokeilin vielä sammuttaa apachen, tai ottaa pois käytöstä komennolla:

$ sudo salt-call --local -l info state.single service.dead apache2 enable=False

newUser

removeUser

Näissä kahdessa kuvassa näkyy, kun ensin luon käyttäjän johnwayne, ja sitten poistan saman käyttäjän.

run_command

Ylläolevassa kuvassa oli käytössä tilafuntio cmd, tällä funktiolla voidaan tehdä komento. Luodaan komento kansioon /tmp, komento joka luo tyhjän foo tiedoston /tmp kansion alle.

d) Idempotentti. Anna esimerkki idempotenssista. Aja ‘salt-call –local’ komentoja, analysoi tulokset, selitä miten idempotenssi ilmenee.

Tässä komennossa idempotenssi ilmenee creates="/tmp/foo", jossa creates tarkistaa ensin jos tiedosto on olemassa tällä polulla. Mitään ei tehdä jos tiedosto on olemassa, tiedosto luodaan jos sitä ei ole olemassa.

e) Herra-orja. Kokeile herra-orja arkkitehtuuria niin, että herra ja orja ovat samalla koneella.

Tehtävää on päivitetty ti 29.10 klo 20

Mielestäni tein harjoitukset juuri niin, että herra ja orha olivat samalla koneella. Otan selvää seuraavalla ristiinarvioinnissa, ja seuraavalla tunnilla tästä tehtävästä.

Ristiinarvioinnissa tuli vastaan opiskelijatoverin Hanna Burmanin raportti, jossa hän onnistui tehtävässä. [5]

Olin yrittänyt jo aikaisemmin komentoa master$ sudo salt '*' cmd.run 'whoami' josta sain virheviestin. Päätin että jatkan tehtäviä ja palaan takaisin virheviestiin.

Tässä tehtävässä, seurasin miten Hanna onnistui tehtävässään, mutta vaikka yritin seurata samoja muokkauksia, en silti saanut samaa tulosta.

Näyttökuva 2024-10-29 kello 20 03 10

1

2

[1][2][4]

Lähteet

  1. https://terokarvinen.com/2021/salt-run-command-locally/#instructions
  2. https://terokarvinen.com/2018/03/28/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux/
  3. https://docs.saltproject.io/en/latest/topics/salt_system_architecture.html
  4. https://docs.saltproject.io/en/latest/ref/states/all/index.html#all-salt-states
  5. https://github.com/HannaBurman/PalvelintenHallinta/blob/main/H1.md