Blog

Palvelinten hallinta – miniprojekti

Projekti löytyy GitHubistani.

salt

Palvelinten hallinta – miniprojekti – phpVirtualBox

SaltStack moduuli, joka asentaa VirtualBoxin ja sitä voi käyttää selaimessa (phpVirtualBox).

SaltStack – phpVirtualBox

Tavoitteenani oli tehdä SaltStack -projekti, joka asentaa VirtualBoxin Linuxille (Ubuntu) ja että sitä voi käyttää selaimessa (phpVirtualBox).

Käytin projektin demoamisessa VirtualBox VM ympäristöä. Asensin VirtualBoxiin Linux Xubuntu 18.04 Desktop AMD64 sekä Linux Ubuntu Server 16.04.5 LTS 64-bit Virtuaalikoneet. Käytin Linux Xubuntua herrana ja Linux Ubuntu Serveriä orjana.

Tietokokeen rautaa:

Prosessori: Intel Core i5 4960K @ 3.50GHz Haswell 22nm Tekniikkaa

RAM-muisti: 8,00Gt Kaksi-Kanava DDR3 1600MHz (10-10-10-30)

Manuaalinen asennus

Asensin SaltStackin virtuaalikoneille. Päivitin molemmat koneet:

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

Xubuntulle asensin salt-masterin:

  $ sudo apt-get -y install salt-master

Ubuntu Serverille asensin salt-minionin:

  $ sudo apt-get -y install salt-minion

Lisäsin herran IP-osoitteen /etc/salt/minion -tiedostoon.

  $ echo 'master: (IP-osoite)'|sudo tee /etc/salt/minion

Käynnistin salt-minionin uudelleen:

  $ sudo systemctl restart salt-minion

Testasin yhteyden toimivuuden:

  $ sudo salt '*' test.ping

Yhteys toimi!

VirtualBox 5.2 (uusin versio)

Tarkoituksena oli asentaa VirtualBox ensin manuaalisesti orjalle (Linux Ubuntu Server 16.04.5 LTS AMD64), jotta sitä olisi helpompi automatisoida Saltilla. Otin ohjeita täältä.

Päivitettyäni Ubuntu Serverin aloin asentamaan Ubuntu Linux header:eita, jotta saisin uusimman VirtualBox version (tällä hetkellä 5.,2) käyttööni.

$ sudo apt-get -y install gcc make linux-headers-$(uname -r) dkms

ubuntu-linux-headers

Headerit asennettu! Sitten asensin VirtualBox repository avaimet ja lisäsin repositoryn Ubuntu Serveriin:

Avainten lisäys:

  $ sudo wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
  $ sudo wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Repositoryn lisäys:

  $ sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list'

keys-and-repository

Kaikki asentui! Sitten asensin itse VirtualBoxin (5.2) paketinhallinnasta. Päivitin ensin paketinhallinnan:

  $ sudo apt-get update

Sitten asensin VirtualBox 5.2 -paketit:

  $ sudo apt-get install virtualbox-5.2

Tarkistin, että versio on oikea:

  $ VBoxManage -v

virtualbox-installation

VirtualBox 5.2 asentui! Katsoin vielä virtualbox help:iä:

  $ virtualbox -h

virtualbox-help

Komennolla:

 $ --startvm <vmname|UUID>

saa laitettua virtuaalikoneen päälle.

phpVirtualBox – (Käyttää selaimen kautta VirtualBoxia)

Nyt kun VirtualBox 5.2 <- (uusin versio tällähetkellä) on asennettu aloin asentamaan VirtualBoxia selaimeen (GUI, phpVirtualBox). Hyvät ohjeet tähän löytyy täältä

Ensin loin uuden järjestelmäkäyttäjän rootilla ja lisäsin sen ”vboxusers” ryhmään (Tätä tullaan tarvitsemaan):

  $ useradd -m vbox -G vboxusers

Annoin VirtualBox käyttäjälle salasanan:

  $ passwd vbox

Pysyin rootissa ja loin tiedoston /etc/default/virtualbox, jonka sisälle laitoin

  VBOXWEB_USER=vbox

Sitten laitoin vboxwebsrv:n päälle:

  $ systemctl enable vboxweb-service
  $ systemctl start vbox-service

authentication

Sitten asensin apache web-palvelimen ja php-moduulit:

  $ apt-get -y install apache2 libapache2-mod-php7.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php7.0-common     php7.0-mysql php7.0-soap php-pear wget

Uudelleen käynnistin apache2 web-palvelimen:

  $ systemctl restart apache2.service

Sitten latasin phpVirtualBoxin /var/www/html -hakemistossa:

  $ wget http://downloads.sourceforge.net/project/phpvirtualbox/phpvirtualbox-5.0-5.zip

Asensin unzipin:

  $ sudo apt-get -y install unzip

Sitten purin zip-tiedoston:

  $ unzip phpvirtualbox-5.0-5.zip

Sitten siirryin phpvirtualbox-5.0-5 -hakemistoon:

  $ cd phpvirtualbox-5.0-5

Tein konfigurointi tiedoston. Kopioin esimerkki konffi -tiedoston:

  $ cp config.php-example config.php

Avasin konffitiedoston ja vaihdoin muuttujan ”var $password = ’pass’;” salasanan VirtualBox käyttäjäni salasanaksi. Sitten tallensin ja suljin tiedoston. Sitten käynnistin vboxweb-service:n uudestaan, jotta muutokset saatiin voimaan:

config.php

  $ systemctl restart vboxweb-service

Avasin Mozilla Firefox -selaimen herra koneella (Xubuntu) ja syötin orjan (Ubuntu Server) ip-osoitteen URL-kenttään –> http://ip-osoite/phpvirtualbox-5.0-5/

phpvirtualbox-5.0-5-admin

Phpvirtualbox -vastasi osoitteesta, syötin admin salasanan ja kirjauduin sisälle.

phpvirtualbox-5.0-5-admin

Uuden virtuaalikoneen luominen onnistui.

Automatisointi Saltilla

phpvirtualbox-states-run

Molemmat Salt-tilat (virtualbox, phpvirtualbox) ajettuna onnistuneesti Linux Ubuntu Server 16.04.5 64-bit LTS Xenial Xerus:lla. Tilojen ajon jälkeen (sudo salt ’*’ state.highstate) käyttäjän pitää vielä itse määritellä vbox käyttäjälle oma salanana (sudo passwd vbox) ja vaihtaa se /var/www/html/phpvirtualbox-5.0-5/config.php -tiedostossa ’pass’ tilalle. Lopuksi käyttäjän pitää vielä itse käynnistää vboxweb-service ja apache2 uudelleen, jotta palvelu saadaan toimimaan (sudo systemctl restart vboxweb-service.service apache2.service).

virtualbox-5.2

Virtualbox init.sls. Voi olla järkevämpää ladata VirtualBox-5.0, koska se on yhteensopivampi phpvirtualbox-5.0-5:n kanssa. VirtualBox-5.2 toimii kyllä myös phpVirtualBox-5.0-5:n kanssa, mutta se vain herjaa yhteensopimattomuudesta selaimessa kirjautuessa palveluun. Tätä tilaa on ajettu Linux Ubuntu Server 16.04.5 64-bit LTS Xenial Xerus koneella. Ei takeita toimivuudesta muilla Linux jakeluilla. Tilaa saa muuttaa vapaasti omiin tarpeisiinsa sopivaksi.

phpvirtualbox

phpVirtualBox init.sls. Tässä on tila joka ajaa phpVirtualBox:n (5.0-5)(5.2 -versio on ilmeisesti jo saatavilla). Ajetaan yhdessä virtualbox -tilan kanssa. Toimii edellä mainitussa Linux Ubuntu Server:ssä. Suosittelen tilan muutosta uudempaan phpVirtualBox versioon heti kun saatavilla.

top.sls

Top.sls:ssä ajetaan kaikille. Virtualbox tila ensin sitten phpvirtualbox.

phpvirtualbox-browser

Kirjauduin palveluun (käyttäjä: admin salasana: admin). Muista vaihtaa käyttäjätunnus ja salasana ensimmäisen kirjautumisen jälkeen. Kirjautumisen yhteydessä tuli herja phpVirtualBox 5.0-5:n yhteensopimattomuudesta VirtualBox 5.2.22:n kanssa. Ilmeisesti uusimman phpVirtualBox -version saakin jo täältä. PhpVirtualBox -tilan paketit on hyvä muuttaa uudempaan.

phpVirtualBox toimi normaalisti kokeiltuani sitä. PhpVirtualBox uudempaan versioon pävittäminen on erittäin suositeltua.

Lähteet:

Karvinen, Tero: Oppitunnit, Palvelinten hallinta -kurssi.

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

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

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

Website for Students 2018 – VirtualBox 5.2 On Ubuntu 16.04 LTS Server (Headless). https://websiteforstudents.com/virtualbox-5-2-on-ubuntu-16-04-lts-server-headless/.

Tech Republic 2018 – How to install phpVirtualBox for cloud-based VirtualBox management. https://www.techrepublic.com/article/how-to-install-phpvirtualbox-for-cloud-based-virtualbox-management/

SourceForge 2018 – phpVirtualBox. https://sourceforge.net/projects/phpvirtualbox/files/

GitHub 2018. phpvirtualbox. https://github.com/phpvirtualbox/phpvirtualbox/releases

GitHub 2018. Eetu95 – salt. https://github.com/Eetu95/salt

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, oma moduuli. 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

Palvelinten hallinta – h6

Tehtävä löytyy GitHubistani.

Tehtävänanto

Käytin tehtävässä omaa Windows 10 Pro työasemaani ja Oracle VM VirtualBoxia, jossa Xubuntu 18.04.1 64-bit sekä Ubuntu Server 16.04.5 LTS (Xenial Xerus). Koneen prosessori: Intel Core i5 4690K @ 3.50GHz.

Olin viimeviikolla kipeänä, joten suoritan tehtävän loppuun 04.12.2018.

”Asenna LAMP Saltilla.”

L = Linux

Käytän siis VirtualBox VM Linux Xubuntu 18.04.1 64-bit käyttäjärjestelmänä. Katsoin, että herra-orja rakennelma toimii. Asensin siis orjan Ubuntu palvelin VM:lle ja herran Xubuntu VM:lle – ohjeet herra-orja asennukseen täältä. Testasin vain, että herran yhteys orjaan oli kunnossa:

$ sudo salt ’*’ test.ping

test.ping

Pingi = True. Yhteys on kunnossa. Seuraavaksi lähdin asentamaan apachea manuaalisesti Ubuntu palvelimelle.

A = Apache

Manuaalisesti

Tarkoituksena oli asentaa Apache2 web-palvelin ja laittaa käyttäjien kotisivut toimimaan. Asensin ensin Apachen:

$ sudo apt-get -y install apache2

Katsoin masterin (Xubuntu) selaimesta, että orjan (Ubuntu Server) web-palvelin toimii:

apache2_default

Apache on toiminnassa. Sitten laitoin käyttäjän kotisivut toimimaan. Ensin annoin käyttäjille oikeudet tehdä kotisivuja kotihakemistoon:

$ sudo a2enmod userdir

Käynnistin Apachen uudelleen, jotta asetukset tulisivat voimaan:

$ sudo service apache2 restart

Sitten tein esimerkkisivut käyttäjälle. Loin publix_html -kansion ja sinne index.html:

$ mkdir -p /home/ubuntupalvelin/public_html

$ cd /home/ubuntupalvelin/public_html

$ nano index.html

Katsoin masterin selaimesta miten toimii:

users_website

Käyttäjien kotisivut toimii.

Automaattisesti

Sitten tein saman Saltilla. Poistin kaikki käsintekemäni testauksen ja aloin tekemään palapalalta:

$ rm -r /home/ubuntupalvelin/public_hmtl

$ sudo apt-get -y purge apache2

Sitten menin masteri koneelle (Xubuntu) ja loin /srv/salt -kansioon apache kansion:

$ sudo mkdir -p /srv/salt/apache

Menin apache kansion sisään ja sinne tein index.html -tiedoston, jonka sisään kirjoitin Foo is Bar:

$ sudoedit index.html

Loin myös init.sls -tiedoston:

$ sudoedit init.sls

Kirjoitin sinne yamlilla apachen2 asennuksen. Lisäsin apache tilan top.sls ”base” ympäristön ja orjan ”lamp_orja” alle. Kaikki muut tilat poistin top.sls:stä. Sitten kokeilin:

$ sudo salt ’*’ state.highstate

salt_apache_install

Apache2 asentui Saltin mukaan onnistuneesti. Tarkistin vielä masterin selaimesta orjan IP:llä. Apache vastasi orjan IP:stä. Sitten annoin orjan käyttäjille oikeuden tehdä kotisivuja kotihakemistoon. Lisäsin ensin index.html, niin että se menee salt -kansiosta käyttäjän ”ubuntupalvelin” kotihakemistoon. Laitoin myös komennon ”a2enmod userdir” toimimaan salt-tilassa. Latoin myös service.running:lla Apachen pyörimään aina palvelimella sekä käynnistymään uudelleen, jotta asetukset tulisivat voimaan. Laitoin apache2 myös watchiin.

apache_state_fail

Salt ajoi kaiken onnistuneesti! Katsoin vielä masterin selaimesta näkyykö käyttäjän ”ubuntupalvelin” kotisivuja. Käyttäjän kotisivuja ei näkynyt. Ongelma oli siinä, että en määritelly public_html -kansion luontia init.sls -tiedostoon (Tein sen file.directory:lla). Korjasin file.managed -polun /home/ubuntupalvelin/index.html /home/ubuntupalvelin/public_html/index.html:ksi. Ajoin uudelleen jonka jälkeen onnistui Saltin mukaan. Tarkistin orjan ”ubuntupalvelin” käyttäjän sivujen toiminnan masterin selaimesta. Selaimessa näkyy ”Foo is Bar”.

apache_state

users_website_salt

Tältä apache tilan init.sls kokonaisuudessaan näytti:

apache-init.sls

M = MariaDB/MySQL

Manuaalisesti

Tarkoituksena oli siis asentaa MariaDB -tietokanta, luoda sinne uusi tietokanta ja käyttäjä, antaa käyttäjille ja ryhmille oikeat oikeudet tietokantaan jne. Aloitin asentamalla orjalle MariaDB:n

$ sudo apt-get -y install mariadb-server mariadb-client

Asennettuani MariaDB:n menin sisälle tietokantaan:

$ sudo mysql -u root

Ubuntu Server 16.04:ssa käyttöjärjestelmä ei tunnista komentoa ”mariadb” vaan sisälle pääsee vain komennolla ”mysql”. Sitten loin sinne uuden käyttäjän ja tietokannan. Tietokanta luotiin:

MariaDB [(none)]> CREATE DATABASE lamppi CHARACTER SET utf8;

Tein uuden käyttäjän:

MariaDB [(none)]> GRANT ALL ON ubuntupalvelin.* TO ubuntupalvelin@localhost IDENTIFIED BY ’KMNDYgg=?16-’;

Näytti kaikki tietokannat:

MariaDB [(none)]> SHOW DATABASES;

MariaDB_user

Tämän jälkeen lähdin automatisoimaan Saltilla.

Automaattisesti

Poistin manuaalisesti tehdyt MariaDB säädöt:

$ sudo apt-get -y purge mariadb-server mariadb-client mariadb-common

Tein taas herralle kansion MariaDB /srv/salt:ttiin:

$ sudo /srv/salt/mariadb

Menin kansioon sisälle ja loin init.sls -tiedoston. Aloitin mariadb:n asennuksesta pkg.installed -moduulin avulla. Kokeilin taas asentamista:

$ sudo salt ’*’ state.highstate

mariadb-server

mariadb-client

MariaDB asentui. Sitten tein createuser.sql -tiedoston, jossa on kaikki sql-komennot.

createuser.sql

Sitten päivitin taas init.sls -tiedostoa. Laitoin tilan lisäämään createuser.sql -tiedoston orjan /tmp -hakemistoon. Laitoin tilan muyös lukemaan sitä niin, että se samalla tekee sql-komennot orjan tietokannassa.

mariadb-createuser.sql

Tila suoritettu onnistuneesti. Init.sls:

init.sls

Ubuntukäyttäjällä on nyt oma MariaDB tietokanta ”lamppi” ja käyttäjä ”ubuntupalvelin”.

P = php

Manuaalisesti

Asensin php:n sekä kirjaston:

$ sudo apt-get -y install php $ sudo apt-get -y install libapache2-mod-php

Sitten menin muokkaamaan /etc/apache2/mods-available -hakemistoa, jotta saadaan käyttäjien kotisivuilla php toimimaan.

php7.0.conf

Kommentoin ulos nuo 5 alinta riviä, <ifModule…. Php:n pitäisi nyt toimia käyttäjien kotisivuilla. Tein /home/ubuntupalvelin/hello.php -tiedoston:

$ nano hello.php

hello.php

Apache2 web-palvelin piti käynnistää uudestaan, että php alkoi näkymään selaimessa:

$ sudo systemctl restart apache2

/hello.php

Sitten automatisoimaan Saltilla. Poistin kaikki käsin tekemäni php muutokset ensin:

$ sudo apt-get -y purge php-common

Automaattisesti

Tein /srv/salt/php7.0 -kansion, jonne tein init.sls -tiedoston:

$ sudo mkdir -p /srv/salt/php7.0

$ cd /srv/salt/php7.0

$ sudoedit init.sls

Aloitin asentamalla php:n sekä kirjaston.

php-pkg.installed

libapache2-mod-php

Php7.0 ja sen kirjasto asentuivat oikein. Sitten lähdin automatisoimaan käyttäjienkotisivujen php-käyttöoikeuksia. Minun piti asentaa vahnempi php-versio master-salt koneelle (Xubuntu), koska Ubuntu Server 16.04 ei tukenut uusinta php7.2. Jotta sain oikean etc/apache2/php7.0.conf -tiedoston (oikeilla asetuksilla) asetettua Ubuntu Serverille Saltilla. Löysin tähän ohjeet täältä. Näillä komennoilla sen sai tehtyä:

$ sudo apt-get install python-software-properties

$ sudo add-apt-repository ppa:ondrej/php

$ sudo apt-get update

$ sudo apt-get install -y php7.0

Sitten kommentoin php7.0.conf -tiedostosta <ifModule…. (5 riviä) ulos. Kopioin muokatun php7.0.conf -tiedoston /srv/salt/php7 -kansioon:

$ sudo cp /etc/apache2/mods-available/php7.0.conf /srv/salt/php7

Sitten muokkasin init.sls -tiedostoon file.managed -moduulilla tilan kuntoon.

php7.0.conf

php7.0.conf -tiedosto päivittyi oikeille asetuksille. php7.0.conf -tiedosto päivittyi. <ifModule… oli kommentoitu ulos kun kävin katsomassa tilan ajon jälkeen Ubuntu Serverillä. Sitten tein vielä hello.php -tiedoston /srv/salt/php7 -hakemistoon. Päivitin tilaan hello.php -tiedoston file.managed:lla.

hello.php

Hello.php ilmestyi käyttäjän ”ubuntupalvelin” public_html -kansion kotihakemistoon. Tässä koko tila:

init.sls

Kaikki LAMP tilat top.sls:ssä ja ajettuna:

lamp-state

top.sls

Lähteet:

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

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

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

Windows 10 Pro. https://www.microsoft.com/fi-fi/p/windows-10-pro/df77x4d43rkt/48DN

Ubuntu 16.04 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

TecAdmin.net 2018 – How to Install PHP 7.2, 7.1, 7.0 on Ubuntu 18.04 & 16.04 using PPA. https://tecadmin.net/install-php-7-on-ubuntu/

GitHub 2018. Eetu95 – salt. https://github.com/Eetu95/salt

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h6. 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

Palvelinten hallinta – h5

Tehtävä löytyy myös GitHubistani.

Tehtävänanto

Käytin tehtävässä omaa Windows 10 Pro työasemaani ja Oracle VM VirtualBoxia, jossa Xubuntu 18.04.1 64-bit ja Windows 10 64 bit – Edge VM. Koneen prosessori: Intel Core i5 4690K @ 3.50GHz.

a) ”Säädä Windowsia Saltilla siten, että Windows on orja ja Linux on herra.”

Tehtävän aloitus: 26.11.2018 klo 11.04

Olin valmiiksi ladannut VirtualBox imagen Windows 10 64-bit – MSEdge ja importannut sen VirtualBoxiin.

alt text

Tein Linux Xubuntu 18.04.1 64-bit VM:stä masterin. Päivitin ja asensin salt-masterin Linuxiin:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get -y install salt-master

Tarkistin IP-osoitteen, sillä tulen tarvitsemaan sitä myöhemmin:

$ hostname -I

Kokeilin vielä nopeasti salt-master-mininion toimivuutta paikallisesti Xubuntu VM:ssä. Asensin myös salt-minionin:

$ sudo apt-get -y install salt-minion

Otin aikaisemmin tekemäni käyttäjän ’minion1’ ja otin siihen ssh:lla yhteyden. Koska minion1 käyttäjällä on myös sudo oikeudet, pysyin sillä muokkaamaan /etc/salt/minion -tiedoston konfiguraatioita. Laitoin siis masterin IP-osoitteen ja ID:n kohdilleen (ID ei pakollinen)

$ sudo echo -e ’master: (master ip) \nid: minion1’|sudo tee /etc/salt/minion

Käynnistin minionin uudestaan:

$ sudo systemctl restart salt-minion.service

Suljin ssh-yhteyden ja käynnistin vielä masterin uudestaan:

$ sudo systemctl restart salt-master.service

Sitten katsoin oliko hyväksymättömiä avaimia masterilla:

$ sudo salt-key -A

Ilmoituksessa näkyi yksi hyväksymätön avain ’minion1’, joten hyväksyin sen (y). Sitten kokeilin vastaako orja:

$ sudo salt minion1 cmd.run ’whoami’

alt text

Vastaus tuli, varmistuttiin että rakenne toimii.

Sitten asensin Windows 10 VM:ään Salt minionin, ohjeet –> http://terokarvinen.com/2018/control-windows-with-salt

alt text

Latasin Windows salt-minion -asennuspaketin suoraan SaltStackin virallisilta sivuilta. Valitsin tietenkin Python3 AMD64: Salt-Minion-2018.3.3-AMD64-Setup.exe|md5, uusin versio. Ladattuani paketin varoitti Windows Defender paketin mahdollisesta haitallisuudesta järjestelmääni, ajoin paketin silti. Asennusohjelma käynnistyi, etenin niin pitkään kunnes ohjelma kysyi masterin IP-osoitetta ja minion ID:tä. Syötin kyseiset tiedot (pidin oletusasetukset muuten) ja jatkoin eteenpäin. Tämän jälkeen alkoi Salt Minionin asennus Windowsille. Asennuksen jälkeen tuli ilmoitus että Salt Minion on asennettu. Menin siis seuraavaksi katsomaan löysikö Linux master winion1 -avaimen:

$ sudo salt-key -A

alt text

Salt-avain löytyi! Testasin vielä:

$ sudo salt winion1 test.ping

Pingi toimii.

Tehtävän lopetus: 26.11.2018 klo 12.02

b) ”Säädä Windowsia Saltilla ilman herra-orja rakennetta (salt-call -–local)”

Tehtävän aloitus: 26.11.2018 klo 15.04

Windows VM:ssä oli Jenkki (US = United States = Yhdysvallat) näppäimistöasetukset päällä. Tero Karvisen samoista ohjeista löytyi kuinka Windowsilla saa vaihdettua näppäimistön vaikka suomenkieliseksi Windows PowerShellistä.

alt text

Avasin Windows PowerShellin ja syötin komennon:

PS C:\Users\IEUser> Set-WinUserLanguageList -LanguageList fi-FI -Force

Komento toimi, öääööäöäöäå voi nyt kirjoittaa. Sitten

alt text

Windows PowerShellissä toimii ’ls’ samalla tavalla kuin Linuxeissa, ei tarvitse käyttää ’dir’. Siirryin /salt/ -kansioon Windowsissa (cd /salt/) ja annoin ohjeissa kerrotun komennon:

PS C:\salt> ./salt-call –local test.ping

Komento ei toiminut, koitin vielä. Vaihdoin ’–local’ parametrin ’-local’:ksi ja katsoin mitä tapahtui – sama errori tuli.

alt text

Unohtui ajaa PS:sää adminina. Nyt meni läpi.

Halusin kokeilla vielä asentaa jonkin ohjelman masterlessina. Ensin piti aktivoida Salt Windows ohjelmavarastot. Ohjeet löytyivät samasta Teron artikkelista. Uudemmissa Salt versioissa salt-ryhmälle pitää antaa kirjoitus oikeudet /srv/salt/win -kansioon masterilla, jotta ohjelmistovarastojen aktivointi toimisi.

$ sudo mkdir /srv/salt/win

$ sudo chown root.salt /srv/salt/win

chown = muuta kohteen omistajaa

$ sudo chmod ug+rwx /srv/salt/win

chmod = muutetaan tiedostojen ja hakemistojen käyttöoikeuksia, ug+rwx = u: user, g: group, r: read, w: write, x: execute.

Git pitää olla asennettuna, jotta niiden varastot voidaan päivittää:

$ sudo apt-get -y install git

Sitten päivitetään repot/varastot Salt Masterilla:

$ sudo salt-run winrepo.update_git_repos

$ sudo salt -G ’os:windows’ pkg.refresh_db

alt text

Asensin ensin VLC Media Playerin Windowsille Salt Masterilla:

$ sudo salt winion1 pkg.install vlc

VLC olikin jo asennettu aikaisemmin. Kokeilin siis asentaa Steamin:

$ sudo salt winion1 pkg.install steam

alt text

Steam asentui nätisti. Nyt kun tiedetään että varastot toimii, voidaan asentaa jotain paikallisesti Saltilla ilman masteria. Päätin asentaa WinSCP:n

PS C:\salt> salt-call –local pkg.install winscp

alt text

Tuli jokin ”DeprecationWarning”. Varoituksessa kehoitettiin käyttämään ’win_wua’ moduulia tämän sijasta. Ohjelma asentui kuitenkin.

alt text

Tehtävän lopetus: 26.11.2018 klo 16.56

c) ”Muuta jonkin Windows-ohjelman asetuksia Saltilla. Monia ohjelmia voi säätää laittamalla asetustiedoston paikalleen, aivan kuten Linuxissa.”

Tehtävän aloitus: 26.11.2018 klo 20.44

Yritin tehdä tehtävää, mutta Windowsilla master-orja arkkitehtuuri meni jotenkin sekaisin että mm. ohjelmien asennus ei enää onnistunut. Poistin ja asensin uudestaan Salt Minionin jne. – ei auttanut. Tulen päivittämään tehtävää myöhemmin, jos löydän ratkaisun ongelmaan.

d) ”Valitse aihe omaksi kurssityöksi ja varaa se kommenttina aikataulusivun perään.”

Lähteet:

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

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

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

Windows 10 Pro. https://www.microsoft.com/fi-fi/p/windows-10-pro/df77x4d43rkt/48DN

Microsoft 2018 – Microsoft Edge – Tools – VMs. https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

Karvinen, Tero: Control Windows with Salt. http://terokarvinen.com/2018/control-windows-with-salt

SaltStack 2018 – Windows – Installation from the official SaltStack repository. https://docs.saltstack.com/en/latest/topics/installation/windows.html

GitHub 2018. Eetu95 – salt. https://github.com/Eetu95/salt

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h5. 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

Palvelinten hallinta – h4

Tehtävä löytyy myös GitHubistani.

Palvelinten hallinta – h4

Tehtävänanto

Käytin tehtävässä omaa Windows 10 Pro työasemaani ja Oracle VM VirtualBoxia, jossa Xubuntu 18.04.1 64-bit ja toinen Xubuntu 18.04.1 64-bit. HP ProDesk 600 G3 MT Desktop – Linux Xubuntu 18.04.1 64-bit (Haaga-Helian tietokone – servula), jossa Vagrant ubuntu/trusty64 kuva (Ubuntu Server 14.04 LTS). Koneen prossu: Intel Core i5 4690K @ 3.50GHz.

a) ”Tee skripti, joka tekee koneestasi salt-orjan.”

Tehtävän aloitus: 9.05

Päivitin VM:n, tein uuden käyttäjän ja lisäsin sen sudo ryhmään toisella Xubuntu 18.04.1 64 bittisellä VM koneella (Ei sillä Xubuntulla, missä on master):

$ sudo apt-get update

$ sudo apt-get -y upgrade

$ sudo adduser minion4

$ sudo adduser minion4 sudo

Asensin ssh:n ja otin ssh:lla yhteyden minion4:ään:

$ sudo apt-get -y install ssh

$ ssh minion4@[ip-osoite]

Tein käyttäjän kotikansioon skriptin, jonka pitäisi tehdä käyttäjästä/koneesta salt-orja:

$ nano salt-minion.sh

alt text

Aloitin skriptin shebangilla ’#!’ sekä merkitsin interpreteriksi /bin/bash. Lisäsin ensimmäiset komennot skriptiin, eli uusimpien pakettien päivitys ja salt-minionin asennus. Kokeilin skriptiä. Tein skriptistä ensin ajettavan:

$ sudo chmod +x salt.minion.sh

$ ./salt-minion.sh

alt text

Skripti toimi! Eli nyt skripti päivittää ja asentaa salt-minionin. Seuraavaksi halusin lisätä skriptiin lisää komentoja, jolla se lisäisi /etc/salt/minion -tiedostoon masterin ip:n sekä oman minion id:n sekä myös pyyhkisi turhan teksin sieltä pois.

alt text

echo = ”display a line of text”, -e = ”enable interpretation of backslash escapes”, \n = new line, tee = ”read from standard input and write to standard output and files”. Kokeilin uutta skriptin pätkää:

$ ./salt-minion.sh

alt text

alt text

Skripti teki mitä pitikin. Sitten halusin, että skripti vielä käynnistää salt-minionin uudestaan.

alt text

Skripti käynnistää nyt lisäksi salt-minionin uudestaan. Kävin toisella Xubuntu VM:llä hyväksymässä minion4:n salt avaimen:

$ sudo salt-key -A

Tein testi salt komennon:

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

alt text

Tehtävän lopetus: 19.11.2018 klo 10.36

c) ”Vagrant. Asenna Vagrant. Kokeile jotain uutta kuvaa Atlaksesta. Huomaa, että kuvat ovat vieraita binäärejä, ja virtuaalikoneista on mahdollista murtautua ulos. Jokohan Ubuntun virallinen Suodatin: VirtualBox, järjestys: Most downloads. https://app.vagrantup.com/boxes/search?provider=virtualbox

Tehtävän aloitus: 19.11.2018 klo 12.06

Asensin Vagrantin ja VirtualBoxin Xubuntu VM:lle (master):

$ sudo apt-get -y install vagrant

$ sudo apt-get -y install virtualbox

$ sudo apt-get -y install ssh

Sitten etsin etsin Atlaksesta uuden vagrant kuvan, jota en ole vielä kokeillut. Asetin tarjoajaksi virtualboxin ja lajittelin latauksien mukaan (eniten latauksia). Päätin kokeilla [”hashicorp / precise32”] (https://app.vagrantup.com/hashicorp/boxes/precise32) Vagrant kuvaa.

alt text

Kyseessä on siis 32 bittinen Ubuntu. Tein uuden kansion Vagrant koneelle:

$ sudo mkdir vag_precise32

Menin kansioon sisälle ja lisäsin kyseisen kuvan:

$ vagrant box add hashicorp/precise32

alt text

Sitten lisäsin sen vagrantfilen:

$ vagrant init hashicorp/precise32

alt text

Ja asensin kuvan:

$ vagrant up

alt text

Asennuksessa tuli errori. Kokeilin vaihtaa networking asetuksia, mutta ei auttanut. Googletin erroria, mutta ratkaisut tuntuivat hakuammunnalta. Ongelma on hyvin todennäköisesti siinä, että yritän ajaa vagrant VM konetta toisen VM:n sisältä. Päätin jatkaa tehtävän tekoa koulussa Xubuntu livetikulla.

Tehtävän keskeytys: 19.11.2018 klo 13.19

Tehtävä jatkuu koulussa: 19.11.2018 klo 16.30

Jatkoin tehtävää Pasilan Haaga-Helian servulassa HP ProDesk 600 G3 MT Desktop – Linux Xubuntu 18.04.1 64-bit (livetikku) koneella. Tein tehtävän samaan kohtaan kuin kotona (Vagrant, VBox, SSH asennus jne.) Päätin tällä kertaa valita Vagrant kuvaksi ubuntu/trusty64 (Ubuntu Server 14.04 LTS).

$ mkdir -p /home/xubuntu/vag_trusty64

Menin kansioon sisälle ja tein samalla tavalla kuin aikaisemmin. Lisäsin kuvan ja vagrantfilen. Sitten asensin ”vagrant up”.

alt text

Tällä kertaa asennus onnistui. Sitten otin ssh yhteyden siihen:

$ vagrant ssh

alt text

Ssh otti yhteyden. Katsoin OS tietoja:

$ uname -a

$ lsb_release -a

Päivitin sen:

$ sudo apt-get update

$ sudo apt-get upgrade

Asensin siihen salt-minionin ja tein siitä orjan:

$ sudo apt-get -y install salt-minion

$ sudo echo -e ”master: 172.28.171.56\nid: vag_orja1″|sudo tee /etc/salt/minion

Asensin masterilla salt-masterin, käynnistin salt-minionin ja -masterin uudelleen ja hyväksyin avaimen:

$ sudo apt-get -y install salt-master

$ sudo systemctl restart salt-master/salt-minion (sytemctl ei löytynyt Vagrant Ubuntusta, joten hoidin uudelleen käynnistämisen nopeasti ”sudo reboot”.

$ sudo salt-key -A

Avain löytyi.

alt text

Menin ulos vagrant boxista ja tuhosin sen:

$ exit

$ vagrant destroy

alt text

Tehtävän lopetus: 19.11.2018 klo 17.29

d) ”Ota tunnille mukaan ylimääräinen muistitikku. Jos osaat ja sinulla on Windowsin lisenssejä, tee siitä Windows 10 asennustikku. Levykuvia saa Microsoftin kotisivulta “download windows iso” ja koulun palveluista. Tikkua käytetään joko ensi tunnilla tai sitä seuraavalla.”

Tehtävän aloitus: 19.11.2018 klo 13.23

Otin Kingstonin DataTraveler 100 G2 8 gb buistitikun. Alustin sen ensin. Muistitikun levyjako oli jotenkin rikkonut muistitikun, löysin Youtubesta videon, jolla muistitikun sai korjattua takaisin normaaliksi.

Seuraavaksi ryhdyin tekemään Windows 10 asennustikkua. Katsoin nopean tutoriaalin miten se tehdään, että säästyisi aikaa. Menin ensin osoitteeseen https://www.microsoft.com/en-us/software-download/windows10/, valitsin ”Download tool now” ja etenin ohjeiden mukaan.

alt text

Valitsin ”Luo asennustietoväline…” –> ”Seuraava”.

alt text

Otin täpän pois suositelluista asetuksista ja vaihdoin kielen suomesta englanniksi –> ”Seuraava”.

alt text

Pidin täpän USB-muistitikussa. Väittää, että tilaa tarvitaan 8 gb vaikka videolla sanottiin, että 4 gb on riittävä 64 bittiselle. Kokeilin silti vaikka tikussani on vähän alle 8 gb tilaa –> ”Seuraava”. Seuraavassa ikkunassa ilmoitettiin vain käytettävät USB-asemat ja se, että sen sisältö poistetaan –> ”Seuraava”. Windows 10 asennustikun lataus alkoi. Latauksessa meni noin 20 min. Latauksen jälkeen menin vaiheet loppuun ja muutin USB-muistitikun nimeksi ”W10 INSTALL”.

alt text

Tikku tehty onnistuneesti.

Tehtävän lopetus: 19.11.2018 klo 14.50

Lähteet:

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

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

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

Windows 10 Pro. https://www.microsoft.com/fi-fi/p/windows-10-pro/df77x4d43rkt/48DN

GitHub 2018. Eetu95 – salt. https://github.com/Eetu95/salt

HashiCorp Vagrant 2018. https://www.vagrantup.com/

HashiCorp Vagrant 2018 – Vagrant Cloud – Discover Vagrant Boxes. https://app.vagrantup.com/boxes/search

Youtube 2018 – CyberPunk – How To Fix USB Flash Drive Storage or Format ”Windows Cannot Format”. https://www.youtube.com/watch?v=beDLlMWK8VQ

Youtube 2018 – Tech Deals – How-To Guide – Create Windows 10 USB Install Drive. https://www.youtube.com/watch?v=gLfnuE1unS8

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h4. 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

Palvelinten hallinta – h3

Tehtävä löytyy myös GitHubistani.

Palvelinten hallinta – h3

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. Koneen prossu: Intel Core i5 4690K @ 3.50GHz.

b) ”MarkDown. Tee tämän tehtävän raportti MarkDownina. Helpointa on tehdä raportti samaan GitHub-varastoon kuin Salt-modulit. Tiedostoon .md-pääte. Tyhjä rivi tekee kappalejaon, risuaita ‘#’ tekee otsikon, sisennys merkitsee koodinpätkän.”

c) ”Laita /srv/salt/ gittiin. Tee uusi moduli. Kloonaa varastosi toiselle koneelle (tai poista /srv/salt ja palauta se kloonaamalla) ja jatka sillä.”

Tehtävän aloitus: 11.11.2018 klo 21.37

Asennetaan Git työkalu:

$ sudo apt-get -y install git

Vaihdoin vanhan /srv/salt -kansion nimeksi /srv/salt1. Tarkoituksena oli siirtää salt1 -kansion tilat uuteen GitHubista kloonattuun salt repositoryyn.

$ sudo mv /srv/salt /srv/salt1

Olin jo aikaisemmin tunnilla laittanut /srv/salt -kansion gittiin, joten kloonasin tämän salt repon sieltä Xubuntu VM:ään /srv -kansioon.

$ sudo git clone https://github.com/Eetu95/salt.git

Sitten siirsin kaikki tilat vanhasta /srv/salt1 -kansiosta uuteen /srv/salt -kansioon:

$ sudo cp -r /srv/salt1/apache2/ srv/salt

$ sudo cp -r /srv/salt1/namebasedvh/ srv/salt

$ sudo cp -r /srv/salt1/php/ srv/salt

$ sudo cp -r /srv/salt1/skel/ srv/salt

$ sudo cp -r /srv/salt1/ufw/ srv/salt

Sitten tein uuden tilan /srv/salt:iin:

$ sudo mkdir hello

Menin hello kansioon ja tein sinne init.sls -tilan:

$ sudoedit init.sls

alt text

Tein vielä helloworld.txt -tiedoston, johon kirjoitin ”Hello World!”. Kokeilin tilan toimivuutta paikallisella orjalla:

$ sudo salt ’minion1’ state.apply hello

alt text

Tila ajettu onnistuneesti! Sitten testasin:

$ cat /tmp/helloworld.txt

CLI tulosti ”Hello World!”.

Sitten tallensin ja lähetin muutokset GitHubiin:

$ sudo git add .

$ sudo git commit

alt text

Kirjoitin commit viestin. Sitten pullasin:

$ sudo git pull

Ja työnsin muutokset Githubiin:

alt text

Lisäsin taas commit viestin. Push:

$ sudo git push

alt text

Piti mennä poistamaan sähköposti suojausasetus GitHubista, jotta push onnistuisi.

alt text

Täppä pois. Sitten uudestaan git pull/push:

alt text

Onnistui!

alt text

Poistin vanhan /srv/salt1 -kansion, koska minulla oli nyt tämä uusi /srv/salt:

$ sudo rm -r /srv/salt1

Tehtävän lopetus: 11.11.2018 klo 23:30

d) ”Näytä omalla salt-varastollasi esimerkit komennoista ‘git log’, ‘git diff’ ja ‘git blame’. Selitä tulokset.”

Tehtävän aloitus: 12.11.2018 klo 8:04

Katsoin git logista kaikki tekemäni commitit:

$ sudo git log

alt text

Commitit ja merget on encryptattu. Logista näkyy myös Commitin tekijä (Author), pvä (Date) ja päivitetty tiedosto. Git diffillä voi vertailla esim. kahta eri committia:

$ sudo git diff 408a68f1cd345a0faecf61b1f8bbcf6d73435bf4 c74b86f6a918cf7a581f3c64b2bfa0f88fcb579d

alt text

Punaisella olevat merkit/teksti näyttää miten nämä kaksi committia eroavat toisistaan.

$ sudo git blame -M /srv/salt/php/init.sls

alt text

Tehtävän lopetus: 12.11.2018 klo 8:30

e) ”Tee tyhmä muutos gittiin, älä tee commit:tia. Tuhoa huonot muutokset ‘git reset –hard’. Huomaa, että tässä toiminnossa ei ole peruutusnappia.”

Tehtävän aloitus: 12.11.2018 klo 8.40

Menin /srv/salt/apache2 ja muutin init.sls -tiedostoa:

$ sudoedit init.sls

alt text

Kirjoitin ”Hellooooo Woooooorld!” –> ctrl+x, y. Sitten tuhosin muutoksen:

$ sudo git reset –hard

alt text

Ei tullut mitään varoitusta tätä komentoa ajettaessa. ”Hellooooo Woooooorld!” katosi Apache2 -kansion init.sls -tiedostosta.

Tehtävän lopetus: 12.11.2018 klo 9.00

f) ”Tee uusi salt-moduli. Voit asentaa ja konfiguroida minkä vain uuden ohjelman: demonin, työpöytäohjelman tai komentokehotteesta toimivan ohjelman. Käytä tarvittaessa ‘find -printf “%T+ %p\n”|sort’ löytääksesi uudet asetustiedostot.”

Tehtävän aloitus: 12.11.2018 klo 10.00

Päätin tehdä salt-modulin gimp kuvankäsittelyohjelmasta, niin että gimp asentuu ja jokin asetus on lisätty.

Manuaalinen testaus:

Menin /etc/gimp/2.0/gimprc -tiedostoon:

alt text

Lisäsin asetuksen, jolla saa help-manuaalin auki (avautuu selaimessa) kun painaa F1. Otin #-kommentointimerkit pois asetusten edestä, jotta asetukset tulisivat voimaan.

alt text

Käynnistin gimpin ja painoin F1:

alt text

Help manuaali avautui selaimessa.

alt text

Automatisointi Saltilla:

Tein uuden kansion /srv/salt -kansioon:

$ sudo mkdir gimp

Siirsin muokatun /etc/gimp/2.0/gimprc -tiedoston /srv/salt/gimp -kansioon. Menin kansioon /srv/salt/gimp ja tein sinne init.sls -tiedoston:

alt text

Kokeilin ajaa modulia orjalla:

$ sudo salt ’minion1’ state.apply gimp

alt text

Gimp asentui oikein, mutta asetukset eivät. En ymmärrä miksi /etc/gimp -kansiota ei tullut vaikka gimp asentui.

alt text

Tehtävän lopetus: 12.11.2018 klo 10.55

Lähteet:

Karvinen, Tero: Oppitunnit 6.11.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/

Windows 10 Pro. https://www.microsoft.com/fi-fi/p/windows-10-pro/df77x4d43rkt/48DN

GitHub 2018. Eetu95 – salt. https://github.com/Eetu95/salt

Karvinen, Tero 2018: Apache User Homepages Automatically – Salt Package-File-Service Example. http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h3. 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

Palvelinten hallinta – h2

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. Koneen prossu: Intel Core i5 4690K @ 3.50GHz. Tehtävät ovat h2-tiistai.

b) ”Laita käyttäjien kotisivut toimimaan Apachella.”

Tehtävän aloitus: 4.11.2018 klo 19.05

Manuaalinen testaus:

Asensin Apache2 webpalvelimen:

$ sudo apt-get -y install apache2

Tein public_html kansion minion1 kotihakemistoon:

$ mkdir public_html

Tein sinne index.html -tiedoston:

$ nano index.html

Annoin oikeudet käyttäjien kotihakemistoon tehdä käyttäjäkohtaisia nettisivuja:

$ sudo a2enmod userdir

Käynnistin palvelimen uudestaan:

$ sudo systemctl restart apache2

Menin selaimella –> localhost/~minion1

41.PNG

Toimii manuaalisesti. Sitten poistin kaiken:

$ sudo a2dismod userdir

$ sudo systemctl restart apache2

$ sudo rm -r public_html

Automatisointi Saltilla:

Menin /srv/salt kansioon tekemään apache2 kansion:

$ sudo mkdir apache2

Kopioin /var/www/html/index.html -tiedoston /srv/salt/apache2 -kansioon:

$ cp /var/www/html/index.html /srv/salt/apache2

Muutin index.html -kansiota:

$ sudoedit index.html

Tein init.sls -tilatiedoston:

$ sudo nano init.sls

44.PNG

Ylläolevat asetukset tekevät siis saman kuin tein äsken manuaalisesti, lukuunottamatta käyttäjän kotihakemistoon public_html -kansiota ja sen sisällä olevia tiedostoja. Tuon a2enmod userdir komennon voi tehdä luotettavammallakin tavalla, nimittäin symlinkeillä. Tuo ”creates” nimittäin tekee sen, että a2enmod userdir -komento ajetaan vain silloin, jos userdir.conf -tiedostoa ei ole. Tilatiedosto perustuu Package-File-Service metodiin. Tein srv/salt -kansioon top.sls -tiedoston

$ sudo nano top.sls

45.PNG

Määrittelin siihen, että kaikki orjat saavat apache2 asetukset käyttöönsä. Kokeilin asetuksia heti yhdellä orjalla (minion1):

$ sudo salt ’minion1’ state.apply apache2

42.PNG

Polussa oli kirjoitusvirhe, joten korjasin sen:

$ cd /srv/salt/apache2

$ sudoedit init.sls

Korjansin polkuun ”apache2”. Tämän jälkeen onnistui. Katsoin minion1 kotisivut:

43.PNG

Piti tehdä vielä publi_html kansio käyttäjän ”minion1” kotihakemistoon, joten otin ssh yhteyden orjaan:

$ ssh minion1@localhost

$ mkdir public_html

$ nano index.html

Sitten uusi testaus:

46.PNG

Käyttäjien kotisivut automatisoitu! Käyttäjien pitää tosin itse tehdä omat nettisivunsa.

Tehtävän lopetus: 4.11.2018 klo 20.13

c) ”Laita PHP toimimaan käyttäjien kotisivuilla. (Huomaa, että PHP toimii oletuksena kaikkialla muualla kuin käyttäjien public_html-kotisivuilla.)”

Tehtävän aloitus: 4.11.2018 klo 20.14

Manuaalinen testaus:

Asennetaan uusin php versio pakettivarastosta sekä kirjasto:

$ sudo apt-get -y install php7.2 libapache2-mod-php7.2

Tämän jälkeen muutetaan ”/etc/apache2/mods-available” kansiosta php7.2.conf tiedostoa. Kommentoidaan ulos:

<IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>

47.PNG

Nyt php:n pitäisi toimia käyttjien kotisivuilla. Tehdään hello.php käyttäjän minion1 public_html kansioon,

48..PNG

Testataan selaimessa.

49.PNG

Php toimii, sitten vain automatisoimaan Saltilla. Poistin php-tiedostot ennen sitä.

Automatisointi Saltilla:

Mennään /srv/salt/ kansioon ja tehdään php kansio:

$ sudo mkdir php

Kopioidaan php7.2.conf -tiedosto /etc/apache2/mod-available/ kansiosta:

$ sudo cp /etc/apache2/mod-available/php7.2.conf /srv/salt/php

Katsoin muokkaamiani konffi tiedostoja /etc/apache2/mods-enabled kansiossa:

$ find -printf ”%T+ %p\n”|sort

Komennosta lisää.

50.PNG

Sitten tein init.sls -tilatiedoston php kansioon:

$ sudo nano init.sls

52..PNG

Symlinkkien käyttö on parempi vaihtoehto kuin cmd.run -salt komentojen suora ajaminen tilassa. Sitten ajoin tilan ”minion1” orjalle:

$ sudo salt ’minion1’ state.apply

51..PNG

Kokeilin eri tilaasetuksia ennen tämän tilan ajamista, siksi kaikki muutokset eivät ole uusia. Otin ssh:lla yhteyden minion1 orjaan:

$ ssh minion1@localhost

Menin käyttäjän public_html kansioon ja tein sinne ”info.php” -tiedoston:

$ nano info.php

53.PNG

Menin selaimella –> localhost/~minion1/info.php

54.PNG

Php toimii nyt käyttäjien kotisivuilla. Päivitin top.sls -tiedostoa:

55.PNG

Laitoin top.sls -tiedostoon asetukset, joilla minion1 -orjalle saadaan apache2 webpalvelin ja php-asetukset kuntoon. Muutan tätä top.sls -tiedostoa tehtävien mukaan, joten en pidä kaikkia tiloja kokoaikaa siellä ja kaikilla orjilla.

Tehtävän lopetus: 4.11.2018 klo 21.30

d) ”Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla. Jos et ole koskaan tehnyt nimipohjaisia virtuaalipalvelimia Apachelle, katso ohje (Name Based Virtual Hosts on Apache) tee tehtävä niin pitkälle kuin osaat.”

Tehtävän aloitus: 5.11.2018 klo 8.36

Manuaalinen testaus:

Tein uuden kansion /var/www -kansioon

$ sudo mkdir jokusivu.com

Ja sinne public_html kansio:

$ sudo mkdir public_html

Sinne tein index.html -tiedoston:

$ sudo nano index.html

Sitten tein ”jokusivu.com.conf” -tiedoston /etc/apache2/sites-available -kansioon:

$ sudo nano jokusivu.com.conf

56.PNG

Laitoin asetukset kohdilleen. Sitten laitoin sivun päälle komennolla:

$ sudo a2ensite jokusivu.com

Ja latasin apache2 palvelimen uudestaan:

$ sudo systemclt reload apache2

Muutin vielä /etc/hosts -tiedostoa, lisäämällä jokusivu.com -domain nimen vastaamaan loopback -osoitteesta 127.0.0.1:

$ sudoedit /etc/hosts

57.PNG

Sitten kokeilin selaimessa ottaako yhteyden.

58.PNG

Sitten automatisoimaan Saltilla.

Automatisointi Saltilla:

Menin /srv/salt -kansioon ja lisäsin sinne uuden kansion ”namebasedvh”. Kopioin sinne jokusivu.com.conf -tiedoston:

$ sudo cp /etc/apache2/sites-available/jokusivu.com.conf /srv/salt/namebasedvh

Kopioin myös /var/www/jokusivu.com/public_html -kansion index.html -tiedoston /srv/salt/namebasedvh -kansioon:

$ sudo cp /var/www/jokusivu.com/public_html/index.html /srv/salt/namebasedvh

Kopioin /etc/hosts -tiedoston /srv/salt/namebasedvh -kansioon:

$ sudo cp /etc/hosts /srv/salt/namebasedvh

Sitten aloin tekemään tilatiedostoa:

$ sudo nano init.sls

59.PNG

Kokeilin näillä asetuksilla, en ollut varma että meneekö nämä sinnepäinkään oikein. Kokeilin:

$ sudo salt ’minion1’ state.apply namebasedvh

60.PNG

En tiedä miten tämän saa toimimaan tilassa, joten luovutin lopulta.

Tehtävän lopetus: 5.11.2018 klo 9.20

e) ”Tee tila, joka laittaa esimerkkikotisivun uusille käyttäjille. Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‘adduser tero’ komennolla käyttäjiä luodessa.”

Tehtävän aloitus: 5.11.2018 klo 9.23

Manuaalinen testaus:

Tein siis /etc/skel/ -kansioon public_html kansion, jossa index.html -tiedosto. Tämän kun on tehnyt niin aina kun lisää uuden käyttäjän tulee käyttäjän kotihakemistoon samat asetukset kuin /etc/skel/:ssä. Eli käyttäjät saavat oletuskotisivut samantien käyttöön. Tein public_html -kansion sinne:

$ sudo mkdir -p /etc/skel/public_html

Tein public_html -kansion sisään index.html -tiedoston:

$ sudo nano index.html

61.PNG

Sitten loin uuden käyttäjän:

$ sudo adduser minion2

62.PNG

Ja niin kuin näkyy /etc/skel/:in tiedostot kopioitiin uudelle käyttäjälle. Katsotaan vielä selaimessa:

63.PNG

Toimii! Olisi voinut kyllä lisätä UTF-8:n. Sitten sama Saltilla.

Automatisointi Saltilla:

Tein uuden kansion /srv/salt -kansioon:

$ sudo mkdir -p /srv/salt/skel

Sitten tein sinne uuden tilan:

$ sudo nano init.sls

64.PNG

Kokeilin ensin toimiiko kansion teko:

$ sudo salt ’minion2_kali’ state.apply skel

65.PNG

Kansion public_html luonti onnistui Kali Linuxille /etc/skel/:iin. Vielä pitäisi muuttaa tilaa niin, että se loisi tuon public_html -kansion sisään index.html -tiedoston. Kopioin seuraavaksi /etc/skel/public_html -kansiosta index.html -tiedoston kansioon /srv/salt/skel:

$ sudo cp /etc/skel/public_html/index.html /srv/salt/skel

Sitten muutin tilaa:

66.PNG

Kokeilin uudelleen:

$ sudo salt ’minion2_kali’ state.apply skel

67.PNG

Tila päivitetty! Menin muuttamaan vielä top.sls -tiedostoa:

$ sudoedit top.sls

68.PNG

Nyt minion2_kali -orjalle tulee kahdesta tilasta asetukset. Apache2 palvelin asetukset sekä skel tiedostojen lisäys. Ajoin hightstaten:

$ sudo salt ’*’ state.hightstate

70.PNG

Kaikki ajettiin onnistuneesti! Kokeilin vielä tehdä uuden käyttäjän Kali Linuxille:

$ sudo adduser testi1

Käyttäjän luonnin yhteydessä kopioitiin tiedostot /etc/skel/:stä käyttäjän kotihakemistoon. Sitten kirjauduin uudelle käyttäjälle. Menin suoraan selaimella ”localhost/~testi1” -osoitteeseen:

69.PNG

Toimii!

Tehtävän lopetus: 5.11.2018 klo 10.20

f) ”Eri asetukset. Tee Package-File-Service tilalla eri asetuksia kuin ne, mitä tehtiin tunnilla; ja eri kuin mitä teit/teet h2 muissa kohdissa. Voit muuttaa jotain toista asetusta samoista demoneista tai valita kokonaan eri demonit.”

Tehtävän aloitus: 5.11.2018 klo 10:22

Päätin tehdä yksinkertaisen tilan palomuurille. Eli tarkoituksena olisi tehdä tila joka asentaa palomuurin, laittaa sen päälle, avaa portit 22 ja 80 sekä pitää huolen että palomuuri on ylhäällä. En suosittele tekemään näin huonoja palomuuriasetuksia kenellekään. Tämä on vain tehtävän kannalta yksinkertaisempi kuin hyvien palomuuriasetuksien teko.

Manuaalinen testaus:

Asennetaan palomuuri:

$ sudo apt-get -y install ufw

Palomuuri päälle:

$ sudo ufw enable

Avataan portit 22 ja 80 palomuurista:

$ sudo ufw allow port 22/tcp 80/tcp

Katsotaan palomuurin tila:

$ sudo ufw status

71.PNG

Sitten Saltilla. Poistin tekemäni palomuuriasetukset.

Automatisointi Saltilla:

Menin /srv/salt -kansioon ja tein sinne uuden kansion ”ufw”:

$ sudo mkdir ufw

Aloin etsimään .conf -tiedostoja. Latoin taas palomuurin päälle ja pois päältä, jonka jälkeen katsoin muokkaamiani konfigurointi asetuksia /etc/ufw/ -kansiossa:

$ find -printf ”%T+ %p\n”|sort

Eli silloin kun laittaa palomuurin pois ja päälle, vaikuttaa se ./ufw.conf -tiedostoon. Kopioin sen tiedoston /srv/salt/ufw -kansioon:

$ sudo cp /etc/ufw/ufw.conf /srv/salt/ufw

Samalla tulin katsoneeksi, että kun avaa portit 22/tcp sekä 80/tcp, vaikuttaa se tiedostoihin ./user6.rules ja ./user.rules. Kopioin myös ne:

$ sudo cp /etc/ufw/user6.rules /srv/salt/ufw

$ sudo cp /etc/ufw/user.rules /srv/salt/ufw

Sitten menin /srv/salt/ufw -kansioon tekemään tilaa:

$ sudo nano init.sls

72..PNG

Sitten kokeilin tilaa:

$ sudo salt ’minion1’ state.apply ufw

73.PNG

Kaikki muut tulivat voimaan paitsi säännöt. En ymmärtänyt mistä virhe johtui, koska user.rules ja user6.rules -tiedostot ovat salt://ufw/ -kansiossa.

Tehtävän lopetus: 5.11.2018 klo 11.50

Järjestin tilat sopivasti top.sls:ssä:

74.PNG

Tulen varmaankin täydentämään paria tehtävää jälkeenpäin, jos saan ongelmat selville.

Lähteet:

Karvinen, Tero: Oppitunnit 30.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: Apache User Homepages Automatically – Salt Package-File-Service Example. http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Ubuntu wiki – UserDirectoryPHP. https://wiki.ubuntu.com/UserDirectoryPHP

Karvinen, Tero 2018: Name Based Virtual Hosts on Apache – Multiple Websites to Single IP Address. http://terokarvinen.com/2018/name-based-virtual-hosts-on-apache-multiple-websites-to-single-ip-address

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

Karvinen, Tero 2018: Aikataulu – Palvelinten hallinta ict4tn022 3004-ti, h2. 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

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