Palvelinten hallinta H1

Saltin asentaminen masterille ja slavelle, hei-maailman luominen, tietojen kerääminen slaveista ja ohjelman asentaminen Saltin avulla.

Tein tehtävän kotona pöytäkoneellani, jossa oli mm. Intel i5-3570K prosessori, 8GB RAM-muistia, Asus GTX 1060 (6GB) näytönohjain ja käyttöjärjestelmänä Win 10. Olin tehnyt VirtualBoxilla valmiiksi kaksi virtuaalikonetta, joihin oli molempiin asennettu Xubuntu 18.04.4 LTS. Kummankin virtuaalikoneen käyttöön oli annettu keskusmuistia 1024MB verran.

Aloitin tehtävän tekemisen klo 16:00 (UTC +3). Kellot olivat kaikissa koneissa samassa ajassa.



a) Asenna Salt ja siihen uusi orja. Voit tehdä ne esimerkiksi uudelle virtuaalikoneelle, niin pääset kokeilemaan puhtaalta pöydältä.

Olin asentanut VirtualBoxiin valmiiksi kaksi virtuaalikonetta. Toisen oli tarkoitus toimia masterina ja toisen slavena. Päivitin vielä molempiin koneisiin paketit komennolla sudo apt-get update.

Master-koneelle asensin Salt Masterin komennolla sudo apt-get -y install salt-master. Slave-koneelle asensin Salt Minionin komennolla sudo apt-get -y install salt-minion.

Slave-koneen täytyi saada tietää masterin sijainti, jotta slave pystyisi ottamaan yhteyden masteriin. Annoin masterille komennon hostname -I nähdäkseni kyseisen koneen IP-osoitteen. Tämän jälkeen muokkasin slave-koneella Minion -tiedostoa komennolla sudoedit /etc/salt/minion. Lisäsin tiedostoon masterin IP:n ja annoin slave-koneelle id:ksi joni.

master: 192.168.0.101
id: joni

Jotta annetut asetukset tulisivat voimaan, piti slave-demoni käynnistää uudestaan komennolla sudo systemctl restart salt-minion.service. Nyt slaven pitäisi automaattisesti lähettää masterille julkinen avain, joka täytyy hyväksyä master-koneelta. Testataan tämä master-koneella komennolla sudo salt-key -A. Kyseisellä komennolla hyväksytään kaikki masterille tulevat avaimet. Lisää eri salt-key -komennoista voi luke tästä. Terminaali-ikkunaan tulostuu lista avaimista. Listalla oli vain yksi avain, joka näkyi aiemmin Minion -tiedostoon antamallani id:llä ”joni”. Tämä avain hyväksytään antamalla komento y. Nyt masterin ja slaven välille on saatu muodostettua yhteys.

Avaimen hyväksyminen.

Testasin yhteyttä antamalla masterille komennon sudo salt ’*’ cmd.run ’whoami’, jolloin terminaaliin tulostui ”joni: root”. Koneiden välinen yhteys toimi. Saltissa ’*’ tarkoittaa komennon koskevan kaikkia slave-koneita. Minulla on vain yksi slave-kone, joten olisin yhtä hyvin voinut kirjoittaa tähden paikalle slave-koneeni id:n, joka tässä tapauksessa oli joni.

whoami



b) Tee saltille idempotenssi hei maailma (siis tiedostosta, foo.sls)

Slavet toimivat masterin ohjeiden mukaan, ja toimintaohjeet sijaitsevat master-koneella kansiossa /srv/salt/. Kyseinen kansio ei ole valmiina, vaan se täytyy ensin luoda. Loin kansion master-koneelle komennolla sudo mkdir -p /srv/salt/. Seuraavaksi loin kyseiseen kansioon tiedoston komennolla sudoedit /srv/salt/hello.sls. Tiedoston sisällöksi kirjoitin:

/tmp/hellojoni.txt:
  file.managed:
    - source: salt://hellojoni.txt

Yllä olevat rivit tarkoittavat, että slave-koneen tmp-kansioon luodaan hellojoni.txt -tiedosto master-koneen slave -kansiossa olevan hellojoni.txt:n pohjalta. Mikäli tiedosto on jo olemassa, niin sen sisällön yhdenmukaisuus lähdetiedostoon verrattuna tarkistetaan.

Komennolla sudoedit /srv/salt/hellojoni.txt tein tekstitiedoston, johon juuri luomassani hello.sls -tiedostossa viitattiin. Tekstitiedostoon kirjoitin vain tekstin ”Tervehdys!”. Hyväksyin luomani hello -tilan komennolla sudo salt ’*’ state.apply hello. Masterin terminaaliin tulostui teksti onnistuneesta muutoksesta slave-koneella.

hellojoni.txt luotu slave-koneelle.

Kävin tarkastamassa tilanteen slave-koneella kirjoittamalla komennon cat /tmp/hellojoni.txt, minkä jälkeen terminaaliin tulostui ”Tervehdys!”. Masterin hello -ohjeen mukaisesti slavelle oli siis luotu hellojoni.txt -tiedosto, jonka sisältönä oli ”Tervehdys!”.

top.sls

Loin vielä masterille top.sls -tiedoston, jonka avulla slave-koneet toimivat annettujen ohjeiden mukaisesti säännöllisin väliajoin. Komentona käytin sudoedit /srv/salt/top.sls ja tiedoston sisällöksi kirjoitin:

base:
  '*':
    - hello

Muutin masterilla olevan hellojoni.txt -tiedoston sisällöksi ”Moi!”. En tiedä, miten usein slavet hyväksyvät top -tiedoston sisällön, mutta sen voi tehdä myös käsin komennolla sudo salt ’*’ state.highstate, jonka sitten annoinkin. Masterin terminaaliin tulostui jälleen viesti onnistuneesta muutoksesta.

joni-slaven hellojoni.txt -tiedostosta poistettu rivi ”Tervehdys!” ja lisätty rivi ”Moi!”.

Kävin vielä tarkistamassa tilanteen slave-koneelta. Slave-koneella antamani komento cat /tmp/hellojoni.txt tulosti tekstin ”Moi!” niin kuin pitikin. Homma paketissa.

d) Kerää tietoa koneesta saltin avulla (grains.items)

Antamalla masterille komennon sudo salt ’*’ grains.items voit nähdä slave-koneiden tietoja. Annettuani kyseisen komennon, sain pitkän liudan slave-koneeni tietoja. Alla joitakin poimintoja:

id:
   joni
cpu_model:
    Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz
ip4:
   - 192.168.0.102
lsb_distrib_description:
    Ubuntu 18.04.4 LTS
virtual:
    VirtualBox

Tiedoista kävi ilmi mm. fyysisen koneeni suoritin, virtuaalinen ympäristö (VirtualBox), virtuaalikoneen (slave) id ja IP-osoite, sekä käyttöjärjestelmän distro (Ubuntu 18.04.4 LTS).


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 kissa sys.state_doc pkg.installed|less’

Halusin, että slave-koneelleni asennetaan automaattisesti GIMP -niminen sovellus. Tarkistin ensin, ettei slave-koneella ollut GIMP:ä asennettuna. Komennolla sudoedit /srv/salt/hello.sls lisäsin aiemmin luomaani hello.sls -tiedostoon rivit:

gimp:
  pkg.installed

Nyt kun slave tarkistaa top.sls -tiedoston kautta hello.sls tiedoston, niin se huomaa uudet rivit, jotka ohjeistavat asentamaan GIMP -sovelluksen. Testasin toimiiko tämä. Annoin jälleen sudo salt ’*’ state.highstate -komennon. Aikansa mietittyään masterin terminaaliin tulostui tiedot onnistuneesta GIMP:n asennuksesta. Myös hellojoni.txt -tiedosto tarkistettiin, mutta siihen ei ollut tullut muutoksia, joten se pysyi entisellään.

Kävin tarkistamassa slave-koneelta, oliko ohjelma varmasti asennettu. Kirjoitin terminaaliin gimp, minkä jälkeen kyseinen sovellus käynnisty. Totesin homman toimivan ja näin ollen tehtävän suoritetuksi.

Lopetin tehtävien tekemisen kello 22:00 (UTC +3). Tein kesken tehtävän kaikkea muutakin. Aikaa itse tehtävän tekemiseen ja raportointiin meni noin 3,5-4 tuntia.



Lähteet:

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s

Create your website with WordPress.com
Aloitus
%d bloggaajaa tykkää tästä: