Palvelinten hallinta – h1

Tehtävänanto

Käytin tehtävässä omaa Windows 10 Pro työasemaani ja Oracle VM VirtualBoxia, jossa Xubuntu 18.04.1 64-bitKali Linux Xfce 64 Bit ja Ubuntu Server 16.04.5 LTS.

c) ”Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.”

Tehtävän aloitus: 28.10.2018 klo 23.11

Suunnitelmana on laittaa herra ja orja samalle VM:lle (Xubuntu 18.04.1 64-bit). Päivitin Xubuntun pakettilistauksen:

$ sudo apt-get update

Asensin uudet pakettiversiot:

$ sudo apt-get upgrade

Sitten asensin salt masterin pääkäyttäjälleni:

$ sudo apt-get -y install salt-master

Katsoin IP-osoitteen:

$ hostname -I

Seuraavaksi loin uuden käyttäjän koneelle, joka tulee toimimaan orjana:

$ sudo adduser minion1

Lisäsin orjan sudo ryhmään:

$ sudo usermod -aG sudo minion1

-a = –append, lisää käyttäjän lisäryhmiin. Käytetään -G kanssa, -G = –groups, lista ryhmistä, jossa käyttäjä on.

1.PNG

Asensin ssh:n:

$ sudo apt-get install ssh

Tämän jälkeen otin yhteyden minion1 käyttäjään:

$ ssh minion1@10.0.2.15

Sitten asensin sille salt minionin:

$ sudo apt-get -y install salt-minion

Asennuksen jälkeen lähdin muokkaamaan /etc/salt/minion konffi tiedostoa.

2.PNG

Lisäsin ”master: 10.0.2.15”, jotta orja tietää kuka on herra. En lisännyt id tunnistetta, koska se ei ole tässä tarpeellista. Nimi on generoituu automaattisesti hostnamesta, joka on looginen. Jotta asetukset tulisivat voimaan, käynnistin minion daemonin uudestaan:

$ sudo systemctl restart salt-minion.service

Seuraavaksi menin hyväksymään salt avaimen herralla:

$ sudo salt-key -A

3.PNG

Kokeilin tehdä muutamia salt komentoja herralla, ja katsoa vastaako orja:

Katsoin verkkoliitäntä tietoja:

$ sudo salt ’xubuntu18-VirtualBox’ network.interfaces

4..PNG

Orja vastasi, kokeilin lisää erilaisia komentoja joita löysin netistä:

Etsin orjaa, jolla on käyttöjärjestelmänä Ubuntu jyvien (grains) avulla:

$ sudo -G salt ’os:Ubuntu’ test.ping

5.PNG

Katsoin jyvät, joilla näkee tietoja orjan järjestelmästä:

$ sudo salt ’*’ grains.items

6.PNG

Katsoin tietoja pkg.install -moduulista sys.doc suoritusmoduulin avulla:

$ sudo salt ’*’ sys.doc pkg.install

7.PNG

Asensin orjalle curlin:

$ sudo salt ’*’ pkg.install curl

8.PNG

Katsoin orjan /etc kansion sisällön ja niiden käyttöoikeudet:

$ sudo salt ’xubuntu18-VirtualBox’ cmd.run ’ls -l /etc’

9.PNG

Tehtävän lopetus: 28.10.2018 klo 0.17

d) ”Kokeile jotain Laineen esimerkistä lainattua tilaa tai tee jostain tilasta oma muunnelma. Muista testata lopputuloksen toimivuus. Huomaa, että varastossa on myös keskeneräisiä esimerkkejä, kuten Battlenet-asennus Windowsille.”

Tehtävän aloitus: 28.10.2018 klo 14.12

Suunnitelmana on käyttää samaa Xubuntu master konetta. Päätin tehdä Kali Linuxistani orjan. Päivitin Kalin pitkästä aikaa:

$ sudo apt-get update

$ sudo apt-get upgrade

Jouduin lisäämään uuden luottamus suhteen (”key”) Saltstackin kanssa, koska Kali on Debian, jossa ei ollut salt-minionia pakettilistauksessa saatavilla. Ohjeet löysin Tero Karvisen nettisivuilta sekä Saltstackin omasta dokumentaatiosta.

$ sudo wget -O – https://repo.saltstack.com/apt/debian/9/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add –

Tämän jälkeen tallensin ”deb http://repo.saltstack.com/apt/debian/9/amd64/latest stretch main” -tiedoston /etc/apt/sources.list.d/saltstack.list -kohteeseen. Sitten ajoin uudelleen:

$ sudo apt-get update

Sekä asensin salt minionin:

$ sudo apt-get -y install salt-minion

Vaihdoin VirtualBoxista network adapterin NAT:sta bridged adapteriksi, jotta minion ei olisi saman NAT osoitteen takana kuin master (eri IP). VM koneet näkyvät verkossani siis ikään kuin fyysisinä koneina, kun on bridged moodi. Tämän jälkeen menin lisäämään master koneen IP:n /etc/salt/minion kansioon Kali Linuxillani.

$ sudo nano /etc/salt/minion

11.png

Lisäsin master koneen IP:n sekä id:n. Sitten menin muuttamaan Xubuntun orjan minion -tiedostoa –> /etc/salt/minion.

10.png

Vaihdoin master koneen IP:n sekä lisäsin id:n. Tämän jälkeen käynnistin orjat uudelleen, jotta asetukset tulisivat voimaan:

$ sudo systemctl restart salt-minion.service

Menin hyväksymään avaimet masterille:

$ sudo salt-key -A

12.PNG

Molemmat löytyivät, hyväksyin avaimet –> Y. Kokeilin vielä ajaa komentoa nähdäkseni vastaavatko orjat siihen:

$ sudo salt ’*’ cmd.run ’whoami’

13.PNG

Molemmat vastasivat ”root”. Vanha salt-avain ”xubuntu18-VirtualBox” oli jäänyt jostain syystä kummittelemaan. Poistin sen:

$ sudo salt-key -d xubuntu18-VirtualBox

Sitten itse tehtävään. Katselin Laineen GitHubista erilaisia .sls konffitiedostoja. Päätin ensin kokeilla ”user.sls”. Loin masterilla /srv/salt kansion:

$ sudo mkdir /srv/salt

Siirryin kansioon ”salt” ja latasin ”user.sls” kyseisen henkilön GitHubista:

$ sudo wget https://raw.githubusercontent.com/joonaleppalahti/CCM/master/salt/srv/salt/user.sls

14.PNG

Tila näytti tältä. Halusin muuttaa tätä hieman omanlaiseksi.

15.png

Muokkasin id:tä, nimeä, käyttäjän kotihakemiston nimeä ja salasanaa. Sitten kokeilin lisätä tilan suoraan komentoriviltä, en tässä kohtaa halunnut käyttää vielä highstatea. Lisäsin tilan minion1 orjalle:

$ sudo salt ’minion1’ state.apply user

16.PNG

Tila loi käyttäjän ”käyttäjä” orjalle minion1. ”Käyttäjälle” pitäisi tulla user.sls mukaiset asetukset voimaan. En ymmärtänyt mitä tuo ”password: XXX-REDACTED-XXX” tarkoitti tai ”passwd: x” tarkoitti.

18.png

”Käyttäjä” ilmestyi /home kotikansioon, mutta en saanut otettua siihen ssh yhteyttä.

17.PNG

Ongelma saattaa johtua tästä asetuksesta joka oli user.sls:ssä.

Tehtävän lopetus: 28.10.2018 klo 17.41

e) ”Kerää laitetietoja koneilta saltin grains-mekanismilla.”

Tehtävän aloitus: 28.10.2018 klo 17.43

Keräsin laitetietoja molemmista orjista ”minion1” ja ”minion2_kali”. Ensin kaikki laitetiedot:

$ sudo salt ’*’ grains.items

19.PNG

21.png

22.png

23.PNG

24.PNG

20.PNG

25.PNG

Sitten katsoin avaoinna olevat jyvät ”grains.ls” moduulilla

$ sudo salt ’*’ grains.ls

26.PNG

27.PNG

Näistä grains moduuleista voi etsiä tietyllä moduulin nimellä/nimillä tietoa orjan/orjien järjestelmistä:

$ sudo salt ’*’ grains.item kernel os mem_total master shell username

28.png

Tiedot listautuivat näköjään tietyssä järjestyksessä riippumatta siitä missä järjestyksessä minä ne komentoon laitoin. Omia jyviä pystyy myös itse lisäämään mm. orjien static konffi tiedostoihin. Lisää vain ”grains:”. Omat jyvät voi myös lisätä orjan /etc/salt/grains kansioon. Aina kun jyviä lisää tai muuttaa pitää virkistää:

$ sudo salt minion saltutil.refresh_modules

Tehtävän lopetus: 28.10.2018 klo 18.56

f) ”Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).”

Tehtävän aloitus: 28.10.2018 klo 19.42

Aloin rakentamaan virtuaaliympäristöä lisää. Asensin Ubuntu Server 16.04.5 LTS VM:n Virtual Boxiin. Tähän tulen säätämään jotain Saltilla. Säädän myös Kali Linuxilleni ja Xubuntu käyttäjälleni jotain pientä. Asensin salt minionin Ubuntu pavelimeen ja konfiguroin tarpeelliset asetukset. Testasin:

$ sudo salt ’*’ cmd.run ’whoami’

29.PNG

Aloin tekemään asetuksia näille koneille. Menin /srv/salt ja aloin tekemään tiloja. Käytän tiloissa pkg.installed tila moduulia. Etsin sopivia ohjelmia asennettavaksi orjille. Tarkistin ohjelmien saatavuuden:

$ sudo apt-cache search (ohjelma)

Sitten tein ensimmäisen tilan kaikille orjille:

$ sudo nano common.sls

30.PNG

Kaikkiin koneisiin tulee siis curl, tmux, ascii, figlet ja chrootkit. Tein lisää tiloja:

$ sudo nano db.sls

31.PNG

Tein tilan jossa asennetaan mysql ja pidetään huoli siitä, että se on aina päällä. Sitten tein top.sls -tiedoston /srv/salt -kansioon.

$ sudo nano top.sls

32.PNG

Eli kaikille tuli common ja minion3 tuli db. Sitten ajoin highstaten, että kaikki asetukset tulisivat samantien voimaan:

$ sudo salt ’*’ state.highstate

33.PNG

34.PNG

35.PNG

Muutama errori ilmeni, joten korjasin ne. Chrootkit:ä ei löytynyt paketinhallinnasta joten poistin sen common.sls:stä. Vaihdoin myös db.sls:ssä service.running moduulin ”name” kohdan pelkäksi mysql:ksi, koska kone ei tunnistanut mysql-server nimeä. Ajoin uudestaan highstaten:

36.PNG

37.PNG

Kaikki asetukset tulivat nätisti toisella kertaa voimaan. Katsoin vielä erikseen jokaiselta koneelta mitä tuli:

38.PNG

MySQL tuli, sekä oli päällä valmiiksi Ubuntu Serverillä.

39.PNG

Curl, tmux, ascii ja figlet asentuivat uusimpina versioinaan Kali Linuxiin.

40.PNG

Sama Xubuntulla orjalla ”minion1”.

Tehtävän lopetus: 28.10.2018 klo 22.22

Lähteet:

Karvinen, Tero: Oppitunnit 23.10.2018, Palvelinten hallinta -kurssi.

VirtualBox 2018. https://www.virtualbox.org/

Xubuntu 18.04.1. https://xubuntu.org/news/18-04-1-released/

Kali 2018 – Downloads. https://www.kali.org/downloads/

Ubuntu 16.04.5 LTS (Xenial Xerus). http://releases.ubuntu.com/16.04/

Karvinen, Tero 2018: Salt Quickstart – Salt Stack Master and Slave on Ubuntu Linux. http://terokarvinen.com/2018/salt-quickstart-salt-stack-master-and-slave-on-ubuntu-linux

Karvinen, Tero 2018: Kali as Salt Slave – install salt-minion from upstream. http://terokarvinen.com/2018/kali-as-salt-slave-install-salt-minion-from-upstream

SaltStack 2018 – SaltStack Package Repo. https://repo.saltstack.com/#debian

SaltStack 2018 – Salt.states.user. https://docs.saltstack.com/en/latest/ref/states/all/salt.states.user.html

SaltStack 2018 – Grains. https://docs.saltstack.com/en/latest/topics/grains/

SaltStack 2018 – SaltStack Get Started. https://docs.saltstack.com/en/getstarted/

NetworkWorld 2018 – 7 Linux command line tools you didn’t know you need. https://www.networkworld.com/article/3130173/linux/7-linux-command-line-tools-you-didn-t-know-you-need.html#slide1

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h1. http://terokarvinen.com/2018/aikataulu-%E2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%E2%80%93-loppukevat-2018-5p

Muuta:

Kaikki kuvat on otettu Microsoft Windows Kuvankaappaustyökalulla. Kuvat löytyvät GitHubistani.

Tätä dokumenttia saa kopioida ja muokata GNU GPL (versio 2 tai uudempi) mukaisesti. https://www.gnu.org/licenses/gpl.html

Mainokset

Vastaa

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

WordPress.com-logo

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

Google+ photo

Olet kommentoimassa Google+ -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