Kurssityö

Kurssityön aiheena mahdollisimman erilaisille käyttöjärjestelmille Salt-State tiloja, esimerkiksi. Salt-Masterina toimii Digital Oceanin Ubuntu, jonka kautta teen erilaisia sls tiloja kuten: LAMP asennus Xubuntulle, Ohjelmisto asennuksia Windowsille… Suurimman osan orja palvelimista tulen asentamaan johonkin tyypin-1 virtualisointi ohjelmaan.

Tiedostot Github sivulla: https://github.com/Dunttus/SaltProject

Kurssityönä laitan omat koti palvelut kuntoon Saltilla.

Herra DigitalOceanilta, rauta:

Asennettu käyttöjärjestelmä: Ubuntu 18.04.2 – 64 bittinen 
Suoritin: Intel(R) Xeon(R) CPU E5-2650 v4 (2.20GHz, 1 ydintä)  
Muisti: 1Gt (1x1 Gt) 
Kiintolevy: 1 x 25Gb

Orja Merkitön pöytäkone, rauta:

Asennettu käyttöjärjestelmä: Windows 10 Pro - 64 bittinen
Suoritin: AMD Ryzen 5 2600 (3,4 GHz, 6 ydintä) 
Näytönohjain: GeForce GTX 1050 Ti 
Muisti: 16 Gt (2x8 Gt) DDR4 2400 MHz 
Kiintolevy: 1 x 250Gb SSD, 1 x 500Gb SSD 
Virtalähde: 1 x 750 W Power Supply

Orjat HPE ProLiant ML10 Gen9, rauta:

Asennettu käyttöjärjestelmä: Proxmox-VE 5.4 - 64 bittinen
Suoritin: 1 x Intel Xeon E3-1225 v5 (3,3 GHz, 4 ydintä) 
Muisti: 8 Gt (1x8 Gt) DDR4 2133 MHz 
Kiintolevy: 1 x 1 Tt 
Kiintolevyohjain: Intel RST SATA RAID (RAID 0/1/10/5) 
Virtalähde: 1 x 300 W Power Supply

Orjia lisäävä bash skripti

 
#!/bin/bash
sudo apt-get update && sudo apt-get install -y salt-minion && sudo apt-get install -y pwgen 
echo master: 10.0.0.0$'\r'id: user-$(pwgen 10) | sudo tee /etc/salt/minion sudo systemctl restart salt-minion 

Skriptin toimivuus kokeilitu Xubuntulla ja Debianilla, johon on asennettu sudo.

Orja käyttöjärjestelmät

Tyypin-1 virtualisointi ohjelma Proxmox-VE 5.4 – 64bittinen

Proxmox on tyypin-1 virtualisointi ohjelmisto. Tyypin-1 virtualisoinnilla tarkoitetaan järjestelmää, joka ei tarvitse isäntä käyttöjärjestelmää toimiakseen virtualisointi alustana muille virtuaali- järjestelmille. Salt orjana nimellä ”proxmox-ve”.

Debian-9.8.0 – 64 bittinen

Debian käyttöjärjestelmä asennettuna Proxmoxissa. Salt orjana nimellä ”debian-block-Nahr6beivu”.

MX Linux-18.2 – 64 bittinen

MX Linux käyttöjärjestelmä asennettuna Proxmoxissa. Salt orjana nimellä ”mxlinux-user-diet7Eicie”.

Xubuntu-18.04 – 64 bittinen

Xubuntu käyttöjärjestelmä asennettuna Proxmoxissa. Salt orjana nimellä ”xubuntu-web-yei8Yoeche”.

Windows Server 2016 – 64bittinen

Windows 2016 server käyttöjärjestelmä asennettuna Proxmoxissa. Salt orjana nimellä ”win2016-test”.

Windows 10 pro – 64 bittinen

Windows 10 käyttöjärjestelmä pöytäkoneeni, jota käytän päivittäin. Salt orjana nimellä ”win10-user”.

Tarkoitus ja tavoite tila

Debian – Verkonlaajuinen mainos- ja Internet-seurannan esto-ohjelmisto Pi-hole, SSH ja UFW: Asennettuna ja konfiguroituna.

Mx Linux – Bash terminaali mieltymykset konfiguroitu ja taustakuva vaihdettu.

Xubuntu – LAMP, SSH ja UFW: Asennettuna ja konfiguroituna.

Windows Server 2016 – Ohjelmistot asennettu: 7zip, Firefox, AutoIt, Vlc, Putty.

Windows 10 – Ohjelmistot asennettu: 7zip, Firefox, AutoIt, Vlc, Putty, Steam ja Gimp.

Proxmox – Ei asennuksia

Init.sls tiedostot

Pi-Hole

/srv/salt/pihole/init.sls

install_curl:
  pkg.installed:
    - pkgs:
       - curl

/etc/pihole/setupVars.conf:
  file.managed:
    - makedirs: True
    - source: salt://pihole/config/default-setupVars.conf

/etc/pihole/adlist.list:
  file.managed:
    - source: salt://pihole/config/default-adlists.list

pihole_install:
  cmd.run:
    - name: curl -L https://install.pi-hole.net | bash /dev/stdin --

unattended
    - unless: "sudo pihole status | grep 'DNS service is running'"
  1. Asentaa Curlin.
  2. Vie automatisoidun asennuksen tiedoston paikoilleen.
  3. Vie verkkosivujen esto tiedoston paikoilleen.
  4. Hakee Curlilla asennus tiedoston Pi-holen sivulta ja asentaa Pi-holen setupVars.conf tiedoston mukaisesti.
  5. Tarkastaa onko Pi-hole jo asennettuna, ettei cmd.run asenna aina uudestaan.

LAMP

/srv/salt/apache/init.sls

install_apache:
  pkg.installed:
    - pkgs:
      - apache2

/var/www/html/index.html:
  file.managed:
    - source: salt://apache/websites/default-index.html

/etc/apache2/mods-enabled/userdir.conf:
  file.symlink:
    - target: /etc/apache2/mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
  file.symlink:
    - target: /etc/apache2/mods-available/userdir.load

apache2services:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-enabled/userdir.conf
      - file: /etc/apache2/mods-enabled/userdir.load
  1. Asentaa Apachen.
  2. Korvaa Apachen alku sivun HelloWorld sivulla.
  3. A2enmod userdir päälle symlinkin avulla.
  4. A2enmod userdir päälle symlinkin avulla.
  5. Uudelleen käynnistää Apachen.

/srv/salt/apachephp/init.sls

apache2php:
  pkg.installed:
    - pkgs:
      - libapache2-mod-php

/etc/apache2/mods-available/php7.2.conf:
  file.managed:
    - source: salt://apachephp/config/default-php7.2.conf

/etc/skel/public_html/index.php:
  file.managed:
    - makedirs: True
    - source: salt://apachephp/config/default-index.php

apache2phpservices:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-available/php7.2.conf
  1. Asentaa Apacheen PHP lisäosan.
  2. Vie asetus tiedoston, joka mahdollistaa PHPn käyttäjien kansiossa.
  3. Vie skel kansioon testi sivun, joka tulee uusille käyttäjille.
  4. Uudelleen käynnistää Apachen.

/srv/salt/mariadb/init.sls

install_mariadb:
  pkg.installed:
    - pkgs:
      - mariadb-client
      - mariadb-server
  1. Asentaa MariaDB ohjelmistot.

UFW

/srv/salt/ufw/init.sls

install_ufwpihole:
  pkg.installed:
    - pkgs:
      - ufw

/etc/ufw/user6.rules:
  file.managed:
    - source: salt://ufwpihole/config/default-user6.rules

/etc/ufw/user.rules:
  file.managed:
    - source: salt://ufwpihole/config/default-user.rules

/etc/ufw/ufw.conf:
  file.managed:
    - source: salt://ufwpihole/config/default-ufw.conf

ufwservices:
  service.running:
    - name: ufw
    - watch:
      - file: /etc/ufw/user6.rules
      - file: /etc/ufw/user.rules
      - file: /etc/ufw/ufw.conf
  1. Asentaa UFW palomuurin.
  2. Vie ufw asetustiedoston user6.rules, joka sisältää tiedot esim. Avonaisista porteista.
  3. Vie ufw asetustiedoston user.rules, joka sisältää tiedot esim. Avonaisista porteista.
  4. Vie ufw asetustiedoston ufw.conf, joka sisältää tiedon esim. ENABLED=yes eli palomuuri päälle.
  5. Uudelleen käynnistää UFW palvelun.

SSH

/srv/salt/ssh/init.sls

install_ssh:
  pkg.installed:
    - pkgs:
      - openssh-client
      - openssh-server
  1. Asentaa SSH ohjelmiston.

Terminal

/srv/salt/terminal/init.sls

/etc/skel/.config/xfce4/terminal/terminalrc:
  file.managed:
    - makedirs: True
    - source: salt://terminal/config/default-terminalrc
  1. Vie skel tiedostoon Terminaalin tyylit tiedoston, joka tulee uusille käyttäjille.

Background

/srv/salt/background/init.sls

/usr/share/backgrounds/pilvet.jpg:
  file.managed:
    - source: salt://background/img/pilvet.jpg

/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml:
  file.managed:
    - makedirs: True
    - source: salt://background/config/default-xfce4-desktop.xml
  1. Vie kuvan share kansioon.
  2. Vie skel tiedostoon taustakuvan asetukset tiedoston, joka tulee uusille käyttäjille.

Software Win-2016

/srv/salt/softwarewinserver/init.sls

install_softwarewinserver:
  pkg.installed:
    - pkgs:
      - 7zip
      - firefox
      - autoit
      - vlc
      - putty
  1. Asentaa ohjelmistot: 7-Zip, Firefox, AutoIt, Vlc ja Putty.

Software Win-10

/srv/salt/softwarewinuser/init.sls

install_softwarewinuser:
  pkg.installed:
    - pkgs:
      - 7zip
      - firefox
      - autoit
      - vlc
      - putty
      - steam
      - gimp
  1. Asentaa ohjelmistot: 7-Zip, Firefox, AutoIt, Vlc, Putty, Steam ja Gimp.

Top.sls tiedosto

Kuva: Komento sudo salt-key

/srv/salt/top.sls

base:
  'debian-block*':
    - pihole
    - ssh
    - ufwpihole

  'xubuntu-web*':
    - apache
    - apachephp
    - mariadb
    - ssh
    - ufwlamp

  'mxlinux-user*':
    - terminal
    - background

  'win10*':
    - softwarewinuser

  'win2016*':
    - softwarewinserver

Top tiedosto tehty viemään oikeat tilat orja koneiden ID:n mukaan.

Sudo salt ‘*’ state.apply

Kuva: Kaikki Salt state tilat toimii oletetusti.
Kuva: Debian lopputulos Pi-Hole asennettu ja konfiguroitu.
Kuva: Xubuntu lopputulos LAMP asennettu ja konfiguroitu Saltilla.
Kuva: Mx Linux lopputulos työpöydän taustakuva vaihdettu ja Terminaalin teema muutettu Saltilla.

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Kaikki tiedostot: https://github.com/Dunttus/SaltProject

Malli Apachen init.sls tiedostoon: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Vinkit Pi-hole automaattiseen asennukseen: https://discourse.pi-hole.net/t/what-is-setupvars-conf-and-how-do-i-use-it/3533

Asennus paketit Windowsille: https://github.com/saltstack/salt-winrepo-ng

Salt sls tiedostojen ohjeet: https://docs.saltstack.com/en/latest/topics/best_practices.html

Linux palvelinten hallinta H6

“Asenna LAMP Saltilla.”

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Master ja Slave koneen rauta

Rautana paikalinen merkitön pöytäkone avattuna Xubuntu-18.04.2 LTS – 64bit live tikulla. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

Salt herra ja orja

Asensin samalle tietokoneelle Salt-Masterin ja Salt-Minionin komennolla “sudo apt-get install salt-minion salt-master“. Katsoin oman paikallisen IPn komennolla “hostname -I“, joka vastasi 192.168.10.62. Kansiossa /etc/salt tiedostoon minion lisäsin rivit sudoeditillä master: 192.168.10.62, id: jonipc. Uudelleenkäynnistin Salt-minionin komenolla “sudo systemctl restart salt-minion” ja otin orjan avaimen vastaan komennolla “sudo salt-key -A“. Yhteyden toimivuuden kokeilin komennolla “sudo salt ‘*’ cmd.run w“, joka toimi oletetusti.

Aika tehtävässä Salt herra ja orja 04.05.2019 kello 05:35 – 05:45.

LAMP asennus Saltilla

Lamp asennus manuaalisesti

Asennus manuaalisesti, jotta saan kaikki tarvitsemani asetus tiedostot ja muuta tietoa LAMP asennuksesta.

Linux

Linuxin Xubuntu-18.04.2 LTS – 64bit, johon asennukset suoritan, olen jo avannut tässä vaiheessa.

Apache

Apache2 paketin asensin komennolla “sudo apt-get install apache2” avasin localhost osoitteen Chromium selaimella, joka avasi apachen testi sivun.

Komennolla “echo HelloWorld | sudo tee /var/www/html/index.html“, yli kirjoitin testisivun HelloWorld tekstillä. Avasin sivun localhost sivun uudestaan Chromium selaimella avasi sivulla luki HelloWorld.

Komennolla “sudo a2enmod userdir” sain käyttäjien public_html kansion käyttöön osoitteeseen localhost/~user. Tämä komento luo symmetriset linkit apache2 kansioon /etc/apache2/mods-available/ tiedostot userdir.conf ja userdir.load. Uudelleen käynnistin Apachen komennolla “sudo systemctl restart apache2“.

Tein käyttäjän komennolla “sudo adduser jonih” ja kirjauduin jonih käyttäjällä komennolla “su jonih“. Tein käyttäjällä jonih kansion /home/jonih/public_html komennolla “mkdir /home/jonih/public_html“, johon lisäsin index.html tiedoston komennolla “nano index.html“. Kirjoitin index.html tiedostoon HelloWorld ja avasin sivun Chromium selaimella osoitteessa http://localhost/~jonih/, sivu toimi oletetusti, joten käyttäjien sivut ovat nyt toiminnassa.

MariaDB

MariaDBn asensin komennolla “sudo apt-get install mariadb-client mariadb-server“, avasin mariaDB ohjelman komennolla “sudo mariaDB” ja tein yhden tietokannan komennolla “CREATE DATABASE joni;“, joka toimi eli mariaDB on asennettuna.

PHP

Asensin PHP lisäosan suoraan Apacheen komennolla “sudo apt-get install libapache2-mod-php“, ja laitoin PHP asetukset päälle Apacheen kansiosta /etc/apache2/mods-available tiedostoon php7.2.conf. Komennolla “sudoedit php7.2.conf” pääsin vaihtamaan asetuksia. Otin kommentointi merkillä # käyttäjä kansioon PHPn estävät rivit pois käytöstä. Uudelleen käynnistin Apache2 komennolla “systemctl restart apache2“.

Kirjauduin käyttäjällä jonih komennolla “su jonih“. Vaihdoin käyttäjän jonih kansiossa /home/jonih/public_html tiedoston index.html pääteen phphen komennolla “mv index.html index.php“. Komennolla nano index.php kirjoitin tiedostoon testikoodia <?php print(2+2)?>, joka tulostaa sivulle numeron 4. Menin Chromium selaimella osoitteeseen localhost/~jonih, sivulla luki HelloWold ja numero 4 eli PHP lisäosa toimii myös käyttäjä kansiossa.

LAMP asennus manuaalisesti 04.05.2019 kello 08:15 – 08:50.

LAMP – Linux Apache MariaDB ja PHP asennus Salt:lla

Tein Masterille kansion /srv/salt komennolla “sudo mkdir /srv/salt“. Kansioon salt tein top.sls tiedoston komennolla “sudoedit top.sls” ja kansiot apache, apachephp ja mariadb komennoilla “sudo mkdir /srv/salt/apache“, “sudo mkdir /srv/salt/apachephp” ja “sudo mkdir /srv/salt/mariadb“. Tein vielä kansioihin apache, apachephp ja mariadb init.sls tiedostot komennoilla “sudoedit init.sls“.

Apacheen tulen tarvitsemaan index.html tiedoston, joka korvaa testisivun. Loin kansioon apache komennolla “sudoedit default-index.html“, johon kirjoitin rivin HelloWorld!.

Apachen PHP lisäosaan tarvitsen index.php tiedoston, jonka loin kansioon suoraan komennolla “sudoedit default-index.php“, johon lisäsin testi html ja php tekstiä. Tarvitsen vielä valmiiksi konfiguroidun php7.2.conf tiedoston, jonka kopioin manuaalisesti asennetusta Apache2 PHP kansiosta komennolla “sudo cp -rp /etc/apache2/mods-available/php7.2.conf /srv/salt/apachephp/default-php7.2.conf“.

Kuva: /srv/salt kansio tree komennolla.

Tässä vaiheessa poistin kaikki manuaalisesti asentamani LAMP Stackin osat orjalta.

Apache

Avasin apache kansion init.sls tiedoston komennolla “sudoedit init.sls“. Lisäsin init.sls tiedostoon Apache paketin asentavan tilan.

install_apache:
pkg.installed:
- pkgs:
- apache2

Kokeilin asennuksen toimivuuden herralla komennolla “sudo salt ‘*’ state.apply apache“, toimivuuden kokeilin menemällä orja koneella Firefox selaimella osoitteeseen localhost. Osoite localthost avasi apachen testisivun.

Kuva: Ennen ja jälkeen kuva localhost.

Seuraavaksi tein apachen testisivun poistavan tilan init.sls tiedostoon.

/var/www/html/index.html:
file.managed:
- source: salt://apache/websites/default-index.html

Kokeilin index.html tiedoston siirron herralla komennolla “sudo salt ‘*’ state.apply apache“, toimivuuden kokeilin menemällä orja koneella Firefox selaimella osoitteeseen localhost. Osoite localthost joka ennen avasi apachen testisivun avasi nyt tekemäni HelloWorld! sivun.

Kuva: Ennen ja jälkeen localhost sivu.

Jotta saan käyttäjä kansiot päälle tarvitsin, a2enmod userdir tilan. Tämän sain tehtyä suoraan Apachen symmetrisillä linkeillä.

/etc/apache2/mods-enabled/userdir.conf:
file.symlink:
- target: ../mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
file.symlink:
- target: ../mods-available/userdir.load

Jotta nämä asetukset menevät päälle Apache pitää vielä uudelleen käynnistää joten lisäsin apache tilaan uudelleen käynnistävän tilan.

Viimeinen versio apachen asennus tilasta:

install_apache:
pkg.installed:
- pkgs:
- apache2

/var/www/html/index.html:
file.managed:
- source: salt://apache/websites/default-index.html

/etc/apache2/mods-enabled/userdir.conf:
file.symlink:
- target: /etc/apache2/mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
file.symlink:
- target: /etc/apache2/mods-available/userdir.load

apache2services:
service.running:
- name: apache2
- watch:
- file: /etc/apache2/mods-enabled/userdir.conf
- file: /etc/apache2/mods-enabled/userdir.load

Kokeilin tilan tekemällä Xubuntu käyttäjälle omat sivut luomalla kansion komennolla “mkdir /home/xubuntu/public_html” ja index.html tiedoston komennolla “nano index.html“, index.html tiedostoon kirjoitin HelloWorld Xubuntu! Kokeilin toimivuuden Firefox selaimella osoitetta localhost/~xubuntu, luomani sivu avautui eli Apachen asentava tila toimii.

Kuva: localhost/~xubuntu ennen ja jälkeen.

Aika tehtävässä Apache 04.05.2019 kello 10:30 – 11:15.

MariaDB

Avasin sudoeditillä init.sls tiedoston mariadb kansiossa ja lisäsin MariaDBn asentavan tilan.

install_mariadb:
pkg.installed:
- pkgs:
- mariadb-client
- mariadb-server

Kokeilin toimivuuden Salt-Master komennolla “sudo salt ‘*’ state.apply mariadb“, joka ilmoitti asentaneensa MariaDB paketit.

Tarkastin vielä orjalla komennolla “sudo mariadb“, joka avasi MariaDB ohjelmiston. Varmistin vielä tekemällä tietokannan komennolla “CREATE DATABASE testi;” Tietokanta listan sain auki komennolla “SHOW DATABASES” näin juuri tekemäni testi kannan listassa eli toimi oletetusti.

Kuva: MariaDB tietokanta.

Aika tehtävässä MariaDB 04.05.2019 kello 17:10 – 17:20.

PHP

Avasin sudoeditillä apachephp kansion init.sls tiedoston, johon lisäsin Apache2 PHP lisäosan asentavat rivit.

install_apache2php:
pkg.installed:
- pkgs:
- libapache2-mod-php

Kokeilin asennuksen toimivuuden Salt-Master komennolla “sudo salt ‘*’ state.apply apachephp“, Saltin loki kertoi asentaneensa paketin ja luotin tähän tässä vaiheessa.

Seuraavaksi pitää saada tuo Apachephp asetus, joka mahdollistaa PHP koodin käyttäjien oletus kansioon public_html. Tiedosto pitää viedä herralta orjalle, joten lisäsin sen init.sls tiedostoon. Lisäsin myös rivit, jotka uudelleen käynnistävät palvelun Apache2.

/etc/apache2/mods-available/php7.2.conf:
file.managed:
- source: salt://apachephp/default-php7.2.conf

apache2phpservices:
service.running:
- name: apache2
- watch:
- file: /etc/apache2/mods-available/php7.2.conf

Kokeilin toimivuuden Salt-Master komennolla “sudo salt ‘*’ state.apply apachephp“, jonka loki ilmoitti että tiedosto viety orjalle. Tarkastin vielä, onko orjalla oikea tiedosto ja kyllä oli eli toimii.

Kuva: Asetus tiedosto php7.2.conf

Tein vielä vähän extrana tilan, joka vie /etc/skel/public_html/ kansioon index.php tiedoston. Tämän pitäisi tehdä kaikille uusille käyttäjille kansioon /home/user, kansio public_html ja index.php tiedosto tähän kansioon. Tiedosto index.php sisältää otsikon ja php testikoodia <?php print (2+2) ?>, joka tulostaa sivulle 4.

apache2php:
pkg.installed:
- pkgs:
- libapache2-mod-php

/etc/apache2/mods-available/php7.2.conf:
file.managed:
- source: salt://apachephp/default-php7.2.conf

/etc/skel/public_html/index.php:
file.managed:
- makedirs: True
- source: salt://apachephp/default-index.php

apache2phpservices:
service.running:
- name: apache2
- watch:
- file: /etc/apache2/mods-available/php7.2.conf

Kokeilin toimivuuden Salt-Master komennolla “sudo salt ‘*’ state.apply apachephp“, joka ilmoitti että kaikki tilat onnistui. Sitten tein uuden käyttäjän komennolla “sudo adduser joni” ja menin Firefox selaimella osoitteeseen localhost/~joni, sivu aukesi ja numerosta 4 voin päätellä, että PHP toimii.

Kuva: localhost/~joni ennen ja jälkeen kuva.

Aika tehtävässä PHP 4.5.2019 kello 18:20 – 19:20

Top.sls tiedosto

Lisäsin kaikki LAMP Stackin tilat /srv/salt kansion top.sls tiedostoon.

base:
'*':
- apache
- mariadb
- apachephp

Kokeilin toimiiko top.sls tiedosto Salt-Master komennolla “sudo salt ‘*’ state.apply“, kaikki tilat toimivan. Laitoin komennon vielä kerran, että saan lyhyemmän kuvan.

Kuva: Komento sudo salt ‘*’ state.apply.

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Pohja Apachen init.sls tiedostoon: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Ohjeita Salt tiloihin:https://docs.saltstack.com/en/latest/topics/best_practices.html

Linux palvelinten hallinta H5

“a) Säädä Windowsia Saltilla siten, että Windows on orja ja Linux on herra.
b) Säädä Windowsia Saltilla ilman herra-orja rakennetta (salt-call –local)
c) Muuta jonkin Windows-ohjelman asetuksia Saltilla. Monia ohjelmia voi säätää laittamalla asetustiedoston paikalleen, aivan kuten Linuxissa.”

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Master palvelimen rauta

Master palvelimen rautana käytin DigitalOceanin virtuaali- Ubuntu version 18.04.2 LTS 64-bit palvelinta SSH yhteydellä. Dropletin rauta:

                      system     Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
/0/1000 memory 1GiB System Memory
/0/1000/0 memory 1GiB DIMM RAM
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/6/0 generic Virtual I/O device

Slave koneen rauta

Slave koneen rautana paikalinen merkitön pöytäkone asennettuna Windows 10 Pro 64-bit käyttöjärjestelmällä. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

Windows Salt orjana

Salt-minion Asennus Windowsille

Ensin pitää tietää mitä Salt-Master versiota DigitalOceanin virtuaali- Ubuntu käyttää, jotta voidaan asentaa Windowsille sama tai vanhempi versio salt-minionista. Salt-masterin versio tiedon sain komennolla “salt-master –version” master Ubuntulla.

Kuva: Salt-masterin versio 2017.7.4 (Nitrogen).

Sitten Windowsin puolella pitää ladata Salt-minion ohjelmisto, joka löytyi SaltStackin repository sivulta sivustolta valitsin versioksi saman kuin Ubuntulla eli “Salt-Minion-2017.7.4-Py3-AMD64-Setup.exe”.

Avasin asennus ohjelman Windows 10 käyttöjärjestelmällä, asennus oli Windows tyylinen graafinen asennus eli “Next > I Agree > ja Masterin IP osoite ja Minionin tuleva id. Masterin IP sain Ubuntulla komennolla “hostname -I,” joka tulosti terminaaliin 104.248.26.65 lisäsin tämän herran IP:si ja orja Windowsin idksi laitoin windows-joni.

Kuva: Salt minion graafinen asennus Windowsille.

Painoin tässä vaiheessa Install nappia asennus ohjelmassa, joka kysyi: Haluanko asentaa VC_Redist_2015 ohjelmiston, tähän vastasin kyllä. Jostain syystä ohjelman VC_redist_2015 asennus ei onnistunut ja sain Error:n “VC_Redist_2015 failed with ErrorCode: 1638. Try installing the package manually.“, joka käski asentamaan VC_Redist_2015 manuaalisesti. Kävin asentamassa Visual C++ Redistributable for Visual Studio 2015 manuaalisesti Microsoftin sivulta, tämä ilmoitti vähän tarkempaa tietoa eli “Tuotteen toinen versio on jo asennettu”, joten menin seuraavaan vaiheeseen.

Kuva: VC_Redist_2015 failed with ErrorCode: 1638. Try installing the package manually.

Salt Master Ubuntulla menin vastaan ottamaan Windowsin orjaksi komennolla “sudo salt-key” tarkastin ensin onko avaimiin tullut windows-joni, kyllä oli eli otin avaimen vastaan komennolla “sudo salt-key -A“.

Yhteyden toimivuuden testaus

Kokeilin yhteyden toimivuuden satlstackin sivulta löytämälläni komennolla “sudo salt ‘*’ system.set_system_date ’01-01-1900‘”, jolla voidaan vaihtaa Windows koneen pvm Masterin kautta. Komento toimi ja Windowsin pvm muuttui 01.01.1900 tästä voidaan todeta, että yhteys toimii.

Kuva: Windows kalenteri pvm 01.01.1900.

Aika tehtävässä Salt-minion Asennus Windowsille 27.04.2019 kello 13:45 – 14:20.

Windows Salt-call–local

En oikeastaan tiennyt mitä tämä edes tarkoittaa, mutta löysin opettajan sivulta ohjeen ja tein alun sen mukaan.

Eli avasin Windowsilla Powershellin Administrator oikeuksilla ja navigoin salt kansioon, joka oli asennettu C: hakemiston juureen. Komennolla “./salt-call –local test.ping” kokeilin yhteyden toimivuuden lähettämällä signaalin local Saltille joka vastasi True eli toimii.

Sitten komennolla “salt-call –local system.set_system_time 00:00”, vaihdoin Windowsin ajan 0:00 ajan vaihto toimi oletetusti.


Kuva: Windows kalenteri aika 0.00.00.

Aika tehtävässä Windows Salt-call-local 27.04.2019 kello 20:50 – 21:05

Windowsille ohjelmisto asennus ja asetustiedoston vaihto Salt-Masterilla

SaltStackin ohjelmistopakettien hallinta päälle

Ensin loin kansion, johon asetukset tulevat komennolla “sudo mkdir /srv/salt/win“, vaihdoin kansion omistaja oikeuden käyttäjälle salt komennolla “sudo chown root.salt /srv/salt/win” ja annoin käyttäjille/ryhmille oikeuden lukea kirjoittaa ja suorittaa kansiossa komennolla “sudo chmod ug+rwx /srv/salt/win“.

Asensin GIT:in komennolla “sudo apt-get install git“. Saltstack sivun configuration kohdan mukaisilla komennoilla “salt-run winrepo.update_git_repos” alustaa Salt-masterin paketin hallinta arkiston ja “salt -G ‘os:windows’ pkg.refresh_db” synkronisoi pkg pakettivaraston myös Windows:in puolelle. Esimerkiksi Ubuntun kansioon /srv/salt/win/repo/salt-winrepo asentui Saltstackin omalta github sivulta kaikki .sls tiedostot, joita Salt-master ja minion nyt käyttää Windows ohjelmien asennukseen.

Kuva: SaltStack ohjelmisto hallinta päälle Windows orjalle.

Kokeilin toimivuuden asentamalla Firefox selaimen komennolla “sudo salt ‘*’ pkg.install firefox“, joka toimi eli Saltstackin paketin hallinta toimii.

Kuva: Firefox asennus herralta orjalle.

Firefox.sls Windowsille

Windows Firefox config tiedosto

Menin äsken asentamani Firefox selaimen asetuksiin avaamalla Firefoxin graafisen selaimen ja yläkulmasta kolmen palkin kuvasta –> Options.

Kuva: Firefox graafinen käyttöliittymä

Vaihdoin asetuksia ja menin samalla etsimään asetuksien kansiota, johon pitäisi vaihtua muokkaus pvm. Löysin asetukset kansiosta C:\Users\Joni Hakala\AppData\Roaming\Mozilla\Firefox\Profiles\gemffe2v.default\ tiedostosta prefs.js, muokkaus ajan ja tiedoston sisällön perusteella.

Kuva: Windows kansio
C:\Users\Joni Hakala\AppData\Roaming\Mozilla\Firefox\Profiles\gemffe2v.default\.

Kopioin tiedoston Windowsin työpöydälle luomaani kansioon firefoxconf ja vein sen DigitalOceanin palvelimelle Ubuntulle, Linux Features for Window Bashin avulla navigoimalla ensin windows työpöydälle ja komennolla “scp -P 2020 -r “firefoxconf” joni@104.248.26.65:/home/joni” sain kopioutua tiedoston Ubuntulle. Tarkastin vielä tiedoston Ubuntulla ssh yhteydellä ja kyllä tiedosto oli kopioitu Ubuntulle.

Kuva: Tiedon siirto Windowsilta DigitalOceanin Ubuntulle.

Firefox asennus init.sls tiedostoon

Tein uuden kansion komennolla “sudo mkdir /srv/salt/firefox“, uuteen kansioon firefox loin init tiedoston komennolla “sudoedit init.sls”. Lisäsin init.sls tiedostoon tilan, joka asentaa Firefox selaimen.

Kuva: Init.sls tiedoston tila, joka asentaa Firefox selaimen.

Poistin Firefox selaimen Windows koneelta Salt-Masterin kautta komennolla “sudo salt windows-joni pkg.purge firefox“, jonka löysin SaltStackin sivulta ja kokeilin init.sls tilan toimivuuden komennolla “sudo salt ‘*’ state.apply firefox“, katsoin vielä Windows koneelta asentuiko Firefox uudestaan ja kyllä asentui.

Config tiedoston siirtävä tila init.sls tiedostoon

Loin kansion config komennolla “sudo mkdir /srv/salt/firefox/config”, menin home kansioon, johon kopioin Firefox asetuksien tiedoston kohdassa Firefox config tiedosto, kopioin tiedoston komennolla “sudo cp prefs.js /srv/salt/firefox/config/default-prefs.js” config kansioon nimellä default-prefs.js. Kirjoitin init.sls tiedostoon file.managed tilan, joka vie tiedoston Windows koneelle.

Kuva: Viimeinen versio init.sls tiedostosta, joka asentaa Firefox selaimen ja vie asetus tiedoston Windowsille.

File.managed toimivuuden testaus: Poistin Windowsilta manuaalisesti prefs.js tiedoston. Kokeilin tilaa komennolla “sudo salt ‘*’ state.apply firefox“, joka ilmoitti 2tilaa onnistui. Menin vielä Windowsin puolelle katsomaan Firefoxin graafisesta käyttöliitymästä toimiko –> kyllä asetukset vaihtuivat eli toimii.

Kuva: Prefs.js tiedosto vaihtaa mm aloitus sivun. Ennen ja jälkeen kuva.

Aika tehtävässä Windowsille ohjelmisto asennus ja asetustiedoston vaihto Salt-Masterilla 28.04.2019 kello 11:00 – 13:30.

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Windows salt minion: https://docs.saltstack.com/en/latest/topics/installation/windows.html

Pvm vaihto Windowsille: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.win_system.html

VC_Redist asennus: https://www.microsoft.com/en-us/download/details.aspx?id=48145

Salt-call-local:
http://terokarvinen.com/2018/control-windows-with-salt

SaltStack package manager ohjeet:
https://docs.saltstack.com/en/latest/topics/windows/windows-package-manager.html

SaltStack package manager github: https://github.com/saltstack/salt-winrepo-ng

Linux palvelinten hallinta H4

” a) Tee skripti, joka tekee koneestasi salt-orjan.
Tee joko b tai c:

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ät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Master palvelimen rauta

Master palvelimen rautana käytin DigitalOceanin virtuaali- Ubuntu version 18.04.2 LTS – 64bit palvelinta SSH yhteydellä. Dropletin rauta:

                      system     Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
/0/1000 memory 1GiB System Memory
/0/1000/0 memory 1GiB DIMM RAM
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/6/0 generic Virtual I/O device

Slave koneen rauta

Slave koneen rautana paikalinen merkitön pöytäkone avattuna Xubuntu-18.04.2 LTS – 64bit live tikulla. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

Orjan lisäys skripti

Aluksi mietin mitä komentoja tarvitaan Salt Minionin lisäävään skriptiin ja kokeilin niitä Xubuntulla, jonka olin avannut Live tilaan tikulla.

Ensimmäinen komento tietenkin “sudo apt-get update“, ettei salt-minion asennus epäonnistu. Komento toimi, joten lisäsin sen teksti tiedostoon, jonka loin komennolla “nano addslave.sh” Documents kansioon.

Kokeilin Salt-minion asennus paketin komentoa “sudo apt-get install -y salt-minion“, tämäkin toimi eli kopioin sen teksti tiedostoon.

Saltin minion asetuksien kansioon /etc/salt/ tiedostoon minion pitää lisätä master ja id tämän kokeilin komennolla “echo master: 104.248.26.65$’\r’id: userjoni | sudo tee /etc/salt/minion“, toimi eli lisäsin teksti tiedostoon.

Sitten enää tarvitsee uudelleen käynnistää Salt Minion, joka hoitui komennolla “sudo systemctl restart salt-minion“. Kokeilin Master puolelta komentoa “sudo salt-key“, johon oli ilmestynyt slave nimeltä userjoni eli toimii ja lisäsin tämänkin teksti tiedostoon.

Lisäsin teksti tiedostoon vielä oletus avaus ohjelmiston bash ylimmäksi riviksi “#!/bin/bash”.

Kuva: addslave.sh tiedoston sisältö

Kokeilin vielä Bash skriptin poistamalla avaimen Masterilta komennolla “sudo salt-key -D”, avaamalla Xubuntun Live tikun alku tilaan ja ajamalle skriptin, joka toimi toimi oletetusti ja lisäsi uuden orjan nimellä userjoni.

Aika tehtävässä orjan lisäys skripti 20.04.2019 11:20 – 11:45.

Bash sriptin viimeistely

Kokeilin ja etsin hyvää tapaa tehdä uniikkia IDtä en löytänyt yhtään hyvää tein vähän omalla tavalla käyttämällä pwgen ohjelmaa. Päädyin tällaiseen echo master: 104.248.26.65$’\r’id: user-$(pwgen 10), eli lisäsin skriptiin salasanoja generoivan pwgen ohjelman eli saan tätä kautta uniikin generoidun IDn.

Kuva: Viimeistelty skripti
Kuva: Minion teksti tiedoston ID generoidulla pwgen:llä

Aika tehtävässä Bash skriptin viimeistely 20.04.2019 kello 11:45 – 13:00.

Virtualbox ja Vagrant asennus

Aloitin tehtävän Xubuntu muisti tikulla Live tilasta, ensimmäinen komento tehtävään liittyen “sudo apt-get update“, jotta järjestelmä saa versio tiedot. Asensin Vagrantin komennolla “sudo apt-get install vagrant” ja Virtualboxin komennolla “sudo apt -get install virtualbox-qt“.

Virtuaalinen Ubuntu 14.04.2 LTS 64-bit asennus Vagrantilla Virtualboxille

Komennolla “vagrant init ubuntu/trusty64” sain suoraan VagrantCloud sivulta tehtyä Ubuntu 14.04.2 LTS 64-bit virtuaalisen Vagrant tietokoneen Vagrantfile tiedoston ja komennolla “vagrant up” tietokone asentui Vagrantfile tiedoston avulla Virtualboxiin. Virtualbox graafiseen käyttöliittymään ilmestyi uusi virtuaali- kone xubuntu_default.

Kuva: Virtualbox graafinen käyttöliittymä

Koneen sain auki SSH:lla komennolla “vagrant ssh“, ulos kirjauduin komennolla “exit” ja tuhottua komennolla “vagrant destroy“.

Kuva: SSH yhteys ja tuhoaminen terminaalissa

Aika tehtävässä Virtualbox ja Vagrant asennus 8:55 – 9:25

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Vagrant virtuaali tietokone:https://app.vagrantup.com/ubuntu/boxes/trusty64

Linux palvelinten hallinta H2

a) Opiskele yllä aikataulussa olevat artikkelit. (Tätä lukutehtävää ei tarvitse raportoida). Luettava materiaali on kunkin tapaamiskerran kohdalla, esimerkiksi nyt “2. Package-file-server. […] Luettavaa: Karvinen 2018: Pkg-File-Service – Control Daemons with Salt..”


b) Asenna SSH eri porttiin Package-File-Service rakenteella. Käytä service:watch -tekniikkaa niin, että demoni käynnistyy uudelleen, kun asetustiedosto muuttuu. (Vinkki: Pkg-File-Service – Control Daemons with Salt)


c) Asenna Apache käsin niin, että käyttäjien kotisivut näkyvät. Etsi muutetut tiedostot komennolla ‘find /etc/ -printf ‘%T+ %p\n’|sort’. (Muista korjata lainausmerkit oikeiksi, automaattimuotoilu usein sotkee ne). Yritä nyt tehdä tila, joka asettaa nuo tiedostot (file.symlink) paikoilleen. (Katso tarvittaessa: Apache User Homepages Automatically)


d) Eri package-file-service. Tee package-file-service tilalla jokin eri asetus tai asennus kuin tunnilla ja tehtävän muissa kohdissa.”

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Torstai ryhmän H2-tehtävät.

Master palvelimen rauta

Master palvelimen rautana käytin DigitalOceanin virtuaali- Ubuntu version 18.04.2 LTS palvelinta SSH yhteydellä. Dropletin rauta:

                      system     Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
/0/1000 memory 1GiB System Memory
/0/1000/0 memory 1GiB DIMM RAM
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/6/0 generic Virtual I/O device

Slave koneen rauta

Slave koneen rautana paikalinen merkitön pöytäkone avattuna Xubuntu-18.04.2 LTS live tikulla. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

SSH asennus Saltilla

Yhteys Masteriin Slavelta

Ensin päivitin Live tikulla avatun Xubuntu pöytäkoneen versio tiedot komennolla “sudo apt-get update“. Asensin Slave koneelle Salt minionin komennolla “sudo apt-get install salt-minion” ja lisäsin salt minion teksti tiedostoon /etc/salt/minion sudoeditillä rivit “master: 104.248.26.65” ja “id: JoniPc”. Komennolla “sudo systemctl restart salt-minion” uudelleen käynnistin Salt Minionin, että asetus uudesta Masterista tulee voimaan.

DigitalOceanin virtuaali- palvelimen alkuperäinen Master Asennus ja tarvittavien porttien avaus löytyy blogista, Linux palvelinten hallinta H1 kohdasta Salt Master ja Slave.

Masterin puolella otin vastaan Slave tietokoneen JoniPc komennolla “sudo salt-key -A“. Kokeilin Master Slave yhteyden toimivuuden komennolla “sudo salt ‘*’ cmd.run ‘w’“.

Kuva: cmd.run ‘w’ toimivuuden testaus

Aika tehtävässä yhteys Masteriin Slavelta 5.4.2019 kello 12:45 – 12:55.

SSHn asennus ja konfigurointi

Aloitin SSH asennuksen tekemällä /srv/salt kansioon uuden kansion nimeltä ssh, tämä hoitui komennoilla “sudo mkdir /srv/salt/ssh“. Kansioon ssh loin tiedoston init.sls komennolla “sudoedit init.sls“, joka tulee asentamaan SSH palvelun ja vaihtamaan SSH portin numeroon 2020.

Ensimmäinen vaihe oli asentaa SSH Slave koneelle, joten lisäsin Masterin init.sls tiedostoon asennus paketit.

Kuva: init.sls tiedoston sisältö

Ajoin init.sls tiedoston Master palvelimella komennolla “sudo salt ‘*’ state.apply ssh” kansion nimen mukaan. Salt ilmoitti, että paketit on asennettu tai päivitetty.

Kuva: state.apply ssh komento

Katsoin Slave koneen puolelta, onnistuiko pakettien asennus komennolla “ssh xubuntu@localhost“. Kyllä SSH asentui.

Kuva: SSH testaus ennen ja jälkeen

Seuraavaksi tein samaan Masterin init.sls tiedostoon SSHn config tiedoston vaihtavat rivit, jotta saan uuden portti numeron 2020 käyttöön. Config tiedoston otin Master palvelimelta, johon on asennettuna SSH palvelut. Confit tiedosto löytyy kansiosta etc/ssh/sshd_config. Tiedoston kopioin kansioon /srv/salt/ssh, tämä hoitui komennolla “sudo cp sshd_config /srv/salt/ssh“.

Otin config tiedostosta kommentointi eli # merkin pois riviltä port ja vaihdoin sen numeroon 2020.

Kuva: sshd_config tiedoston sisältö

Tein uuden kansion komennolla “sudo mkdir /srv/salt/ssh/config“, johon siirsin sshd_config tiedoston ja nimesin sen uudestaan komennolla “sudo mv sshd_config default-sshd_config

Kirjoitin init.sls tiedostoon rivit, jotka vie Slave koneelle SSHDn konfigurointi tiedoston.

Kuva: init.sls tiedoston sisältö

Kokeilin toimivuuden taas komennolla sudo salt ‘*’ state.apply ssh, joka kertoi että ssh on asennettu ja vaihtaneensa tiedostoon sshd_config joitain rivejä, jotka näkyy kuvassa + merkillä.

Kuva: Salt komento apply.state kokeilu config tiedoston lisäys, kuvasta leikattu pois turhia kommentti rivejä.

Katsoin opetajan sivulta miten käynnistetään sls tiedostolla SSHD palvelu niin, että se ottaa käyttöön tuon uuden config tiedoston lisäsin init.sls tiedostoon uudelleenkäynnistys rivit.

Kuva: init.sls tiedoston sisältö

Suoritin Master palvelimelta komennon “sudo salt ‘*’ state.apply ssh”, suoritin vielä komennon uudestaan jotta sain vähän lyhyemmän kuvan, joka ilmoittaa että paketit ovat jo oikeassa tilassa.

Kuva: Salt komento state.apply ssh toimivuuden kokeilu

Kokeilin vielä toimivuuden Slave koneella komennolla “ssh xubuntu@localhost“, joka ei enää toiminut ja vaati oikean porttinumeron 2020 eli uusi komento “ssh xubuntu@localhost -p 2020“, joka avasi SSH yhteyden portista 2020.

Kuva: SSH yhteys testaus Slave koneella

Aika tehtävässä SSHn asennus ja konfigurointi 5.4.2019 kello 13:15 – 15:05

Lähteet tehtävässä SSH asennus Saltilla

Ohjeet sls tiedostojen rakenteisiin: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

Ohjeet palvelun uudelmleen käynnistämiseen sls tiedostolla: http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port

Apache2 asennus käyttäjille

Aloitin tekemällä DigitalOceanin Master Palvelimelle Apache kansion ja websites kansion komennoilla “sudo mkdir /srv/salt/apache” ja “sudo mkdir /srv/salt/apache/websites“. Apache kansioon tein sls tiedoston komennolla “sudoedit init.sls” ja websites kansioon loin html teksti tiedoston komennolla “sudoedit default-index.html“, johon lisäsin htlm testi koodia.

Kuva: Tree komento apache kansiosta

Init.sls tiedosto, Apache asennus

Aloitin Master palvelimen init.sls tiedoston Apache2 asennus paketilla, jonka toimivuuden kokeilin sudo salt ‘*’ state.apply apache” kansion nimen mukaan. Saltin State lokin kommentti rivin mukaan ” Comment: The following packages were installed/updated: apache2″, eli Apachen asennus onnistui.

Kuva: init.sls tiedoston sisältö vaiheessa Apachen asennus

Kokeilin vielä Slave koneella ennen ja jälkeen Chromium selaimella localhost osoitetta, johon asennuksen jälkeen tuli Apachen testisivu.

Kuva: Localhost toimivuuden testaus, ennen ja jälkeen kuva.

Init.sls tiedosto, Apache testisivun poisto

Seuraavaksi Master palvelimen Apache init.sls tiedostoon lisäsin rivit, jotka vaihtavat Apachen default sivun HelloWorld sivuun. Master palvelimelta ajoin komennon “sudo salt ‘*’ state.apply apache”, joka ilmoitti kahden paketin onnistuneesta asennuksesta.

Kuva: init.sls tiedosto vaiheessa Apache testi sivun poisto

Toimivuuden kokeilin Slave koneella menemällä taas Chromium selaimella localhost osoitteeseen, jossa nyt pitäisi näkyä HelloWorld sivu.

Kuva: Apachen testisivun poistamisen toimivuuden testaus, ennen ja jälkeen kuva.

Init.sls tiedosto, a2enmod asennus

Menin Slave palvelimelle kokeilemaan mitä tiedostoja “sudo a2enmod userdir” tekee ajoin komennon ja opettajan sivun mukaisesti komennolla “sudo find -printf ‘%T+ M %p\n%A+ A %p\n%C+ C %p\n’|sort” /etc/apache2 kansiossa. Päättelin kansioiden ja tiedostojen luomis- ajan mukaan mitkä tiedostot a2enmod userdir komento teki eli tarvittavat tiedostot ovat userdir.load ja userdir.conf.

Kuva: a2enmod userdir luomat tiedostot haku komennolla, huom kuvasta poistettu turhia rivejä.

JOS TEET TÄTÄ KOHTAA HYPPÄÄ KOHTAAN “Init.sls tiedosto, a2enmod asennus uudestaan” TÄSSÄ KOHDASSA BLOGIA VOI OLLA TIETOTURVA RISKI ALTISTA SALT KOODIA.

Seuraava vaihe saada Master palvelimen init.sls tiedoston kautta luoda oikeudet käyttäjille kotisivuihin omaan kansioon /home/public_html. Lisäsin paketit, jotka vaihtavat Apache2 asetustiedostot.

Kuva: init.sls tiedosto vaiheessa config tiedostojen siirto ja Apachen uudelleen käynnistys *ÄLÄ KÄYTÄ TÄTÄ*

Tein uuden kansion Apache kansioon komennolla “sudo mkdir config“, johon kopioin config tiedostot Apachesta komennoilla “sudo cp userdir.config /srv/salt/apache/config/” ja “sudo cp userdir.load /srv/salt/apache/config/“. Nimesin tiedostot uudestaan komennoilla “sudo mv userdir.conf default-userdir.conf” ja “sudo mv userdir.load default-userdir.load“.

Kuva: Tree komennolla Apache kansion rakenne.

Slave koneella vielä poistin Apachen kokonaan komennolla “sudo apt-get purge apache2” ja Masterilta suoritin komennon “sudo salt ‘*’ state.apply apache“, jonka loki ilmoitti että kaikki 5 init.sls tiedoston kohtaa onnistui ja 0 epäonnistui. Laitoin komennon vielä kerran, että sain paremman kuvan nyt jo asennetuista paketeista.

Toimivuuden kokeilin vielä Slave tietokoneella tekemällä käyttäjälle kansion /home/xubuntu/public_html ja lisäsin sinne teksti tiedoston index.html, johon kirjoitin testi html koodia ja avasin sivun localhost/̃~xubuntu Chromium selaimella, joka avasi tekemäni index.html sivun eli toimii.

Kuva: Localhost/~käyttäjä sivun toimivuuden testaus, ennen ja jälkeen kuva.

Aika tehtävässä Apache2 asennus käyttäjille 06.04.2019 kello 11:35 – 13:05.

Init.sls tiedosto, a2enmod asennus uudestaan

Luin lisää symbolic linkeistä ja niiden tärkeydestä artikkelista http://www.maxi-pedia.com/FollowSymLinks, tehtävässä en käyttänyt näitä vaan kopioin init.sls:llä suoraan config tiedostot Apacheen.

Aloitan tehtävää uudestaan kohdasta, jossa laitoin init.sls tiedostoon rivejä, jotka veivät tiedostoja Apacheen, koska artikkelin mukaan sym- linkkien käyttö tuo lisä- turvaa järjestelmään.

Aloitin Master palvelimella poistamalla config kansion kokonaan komennolla “sudo rm -r /srv/salt/apache/config“.

Kuva: Tämän hetkinen kansio rakenne tree komennolla

Init.sls tiedostoa muokkasin käyttämään file.symlinkiä file.managedin sijasta. Tein opettajan sivun esimerkin mukaisen sls tiedoston, joka käyttää symbolic linkkejä.

Kuva: Uusi init.sls tiedosto, joka hakee config tiedostot symbolic linkin avulla.

Toimivuuden testaus

Master palvelimelta komennolla “sudo salt ‘*’ state.apply apache” kansio nimen mukaan, joka ajaa init.sls tiedoston. Salt loki kertoi tehneensä kaikki 5 sls tiedoston tehtävää onnistuneesti ja 0 epäonnistuneesti. Laitoin vielä komennon uudestaan, että sain vähän lyhyemmän kuvan jo asennetuista paketeista.

Kuva: Salt state.apply apache komento

Kokeilin vielä tehdä Slave tietokoneella kansion /home/public_html, johon tein teksti tiedoston index.html. Index.html tiedostoon kirjoitin testi html tekstiä ja avasin Chromium selaimella sivun localhost/~xubuntu, joka avasi index.html tiedoston sisällön eli toimii.

Kuva: Ennen ja jälkeen kuva localhost/~xubuntu käyttäjän kotisivusta.

Aika tehtävässä Init.sls tiedosto, a2enmod asennus uudestaan 6.4.2019 kello 15:30 – 15:55

Lähteet tehtävässä Apache2 asennus käyttäjille

Ohjeita init.sls tiedostoon ja haku komentoon: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Tietoa symbolic linkeistä: http://www.maxi-pedia.com/FollowSymLinks

Apache2 PHP lisäosa asennus käyttäjille

Aloitin tekemällä Master palvelimelle kansiot komennolla “sudo mkdir /srv/salt/apachephp” ja “sudo mkdir /srv/salt/apachephp/config“. Kansioon apachephp lisäsin init.sls tiedoston komennolla “sudoedit init.sls“. Lisäsin init.sls tiedostoon rivit, jotka asentaa PHP lisäosan apacheen.

Kuva: Apachephp init.sls tiedoston sisältö

Ajoin Master palvelimelta edellisessä tehtävässä tekemäni Apache a2enmod tiedoston komennolla “sudo salt ‘*’ state.apply apache“, jotta saan Apachen käyttäjien kansiot päälle.

Slave koneella tein Public_html kansion ja teksti tiedoston index.php, johon lisäsin html tekstiä ja PHP testi koodia <?php print(2+2)?>, joka tulostaa sivulle numeron 4, kun PHP toimii. KUVA HTML

Kuva: index.php testi sivun sisältö

Kokeilin Apachephp asennuksen toimivuuden Master palvelimelta komennolla “sudo salt ‘*’ state.apply apachephp“, kansion nimen mukaan, joka avaa init.sls tiedoston ja suorittaa sen rivit. Saltin asennus loki ilmoitti kommentti rivillä “Comment: The following packages were installed/updated: libapache2-mod-php The following packages were already installed: apache2” eli Apache2 oli jo asennettu ja PHP lisäosa on nyt päivitetty tai asennettu.

Seuraavaksi pitää poistaa PHP asetus tiedostosta rivit, jotka estää käyttäjä kansion PHP:n eli tein tämän ensin palvelimella kansioon /etc/apache2/mods-available ja “sudoedit php7.2.conf” pääsin vaihtamaan asetuksia. Kommentointi merkillä # kommentoin pois php:n estävät rivit. Kopioin tiedoston komennolla “sudo cp php7.2.conf /srv/salt/apachephp/config” ja vaihdoin nimen komennolla “sudo mv php7.2.conf default-php7.2.conf“.

Kuva: Apachen PHP:n estävät rivit komentoituna pois Joni Hakala rivin alta

Master palvelimen apachephp init.sls tiedostoon tarvitaan rivit, jotka vievät config tiedoston Slave koneille ja uudelleen käynnistää Apachen eli lisäsin ne tässä vaiheessa.

Kuva: Apachephp init.sls tiedoston sisältö

Ajoin Master palvelimelta init.sls tiedoston komennolla “sudo salt ‘*’ state.apply apachephp” kansion nimen mukaan.

Kuva: Salt komento apply.state apachephp

Toimivuuden testaus vielä Slave koneella avaamalla Chromium selaimella sivun localhost. Sivulle oli ilmestynyt numero 4 eli PHP testi koodi <?php print(2+2)?> toimii, tästä voidaan todeta, että PHP toimii käyttäjien sivuilla.

Kuva: Ennen ja jälkeen kuva localhost sivusta

Aika tehtävässä Apache2 PHP lisäosan asennus käyttäjille 6.4.2019 kello 8:35 – 9:50.

Top.sls tiedosto kuntoon

Alotin avaamalla 2 konetta Xubuntu-18.04.2 LTS live tikulla ja asensin Salt-Minionin näihin koneisiin. Lisäsin nämä 2 konetta DigitalOcean palvelimeni Slave koneiksi ja Master palvelimelta otin ne vastaan. Slave koneiden nimet alkavat web ja user tunnuksella, että top.sls tunnistaa mitä asentaa mihinkin.

Kuva: salt komento salt-key Slave koneiden nimet

Top.sls tiedostoon ajattelin, että laitan web ja users käyttäjät eri asennus ryhmiin nimen mukaan. Web käyttäjille asennan: Lamp, Apache2, Apache2 PHP mod. User käyttäjille asennan: Programs ja Terminal asetukset.

Kuva: Tämä hetkinen kansio rakenne tree komennolla.

Kokeilin top.sls tiedoston toimivuuden Master palvelimella komennolla “sudo salt ‘*’ state.apply“, user käyttäjille kaikki asentui oletetusti, mutta web käyttäjille tuli “conflictiong IDs” virhe, salt staten loki kertoi missä tiedostoissa virheet sijaitsi “lamp and apache” ja “apache and apachephp”.

Kuva: Salt state.apply asennus virhe

Init.sls tiedostojen korjaus

Apachen ja LAMP asennuksen virhe tulee siitä, että olen molempiin init.sls tiedostoihin lisännyt saman Apache default sivun poiston. Korjasin tämän vaan poistamalla LAMP asennuksen top.sls tiedostosta, koska teen MariaDB asennus paketin erillisenä myöhemmin.

Kuva: Viimeisin versio top.sls tiedostosta

Toinen virhe apache ja apachephp johtui siitä, että Apache2 uudelleen käunnistys ID oli molemmissa sama “apache2service” vaihdoin toisen tiedoston ID monikkoon eli “apache2services”.

Kokeilin uudestaan Master palvelimella komentoa “sudo salt ‘*’ state.apply“, nyt asennus loki kertoi kaiken onnistuneen. Laitoin komennon vielä uusiksi, että saan lyhyemmän kuvan.

Kuva: Toimiva Salt state.apply

Aika tehtävässä top.sls tiedosto kuntoon 8.4.2019 kello 10:10 – 11:10.

Lähteet tehtävässä top.sls tiedosto kuntoon

Top.sls tiedostoon ohjeita: https://docs.saltstack.com/en/latest/topics/best_practices.html

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Ohjeet palvelun uudeleen käynnistämiseen sls tiedostolla: http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port

Ohjeet sls tiedostojen rakenteisiin: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

Ohjeita init.sls tiedostoon ja haku komentoon: http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

Top.sls tiedostoon ohjeita: https://docs.saltstack.com/en/latest/topics/best_practices.html

Linux palvelinten hallinta H1

“a) Lue virallisesta Salt Getting Started Guide -kirjasta luvut Understanding SaltStack (noin 8 alasivua) ja SaltStack Fundamentals (6 alasivua, ei tarvitse asentaa demoympäristöä) ja SaltStack Configuration Management: Functions (1 alasivu). (Tätä lukutehtävää ei tarvitse raportoida).

b) Silmäile Laineen 2017 varastossa olevia salt -asetuksia. (Tätä lukutehtävää ei tarvitse raportoida).

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ä.

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.

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

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

g) Vapaaehtoinen: asenna ja konfiugroi jokin palvelin Saltilla. (package-file-server)”

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019


Tehtävissä käytettyt laitteistot

Linux palvelimen raudan saan selville terminaali komennolla “sudo lshw -short -sanitize“. Blogissa vain olennaisimmat näkyy tiedot.

Master palvelimen rauta

Master palvelimen rautana käytin DigitalOceanin virtuaali- Ubuntu versio 18.04.2 palvelinta SSH yhteydellä. Dropletin rauta:

                      system     Droplet
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/401 processor Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
/0/1000 memory 1GiB System Memory
/0/1000/0 memory 1GiB DIMM RAM
/0/100/1.1 storage 82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/2 display QXL paravirtual graphic card
/0/100/3 network Virtio network device
/0/100/5/0 /dev/vda disk 26GB Virtual I/O device
/0/100/6/0 generic Virtual I/O device

Slave koneen rauta

Slave koneen rautana paikalinen merkitön pöytäkone avattuna
Xubuntu-18.04.2 LTS live tikulla. Pöytäkoneen rauta:

                           system      To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B450 Pro4
/0/0 memory 64KiB BIOS
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/e/2 memory 8GiB DIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0.4 ns)
/0/10 memory 576KiB L1 cache
/0/11 memory 3MiB L2 cache
/0/12 memory 16MiB L3 cache
/0/13 processor AMD Ryzen 5 2600 Six-Core
/0/100/1.3/0.2/7/0 enp37s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/3.1/0 display GP107 [GeForce GTX 1050 Ti]
/0/1/0.0.0 /dev/sda disk 500GB WDC WDS500G1B0A-
/0/2/0.0.0 /dev/sdb disk 250GB CT250MX500SSD4

Salt Master ja Slave

Aloitin Digital Oceanin palvelimella, jonka valitsin Master palvelimeksi. ensimmäinen komento palvelimelle “sudo apt-get update“, jotta järjestelmä saa tiedon ohjelmisto versioista. Asensin Salt Masterin terminaali komennolla “sudo apt-get install salt-master“. Avasin myös tässä vaiheessa Salt Masterin käyttämät portit terminaali komennoilla “sudo ufw allow 4505/tcp” ja “sudo ufw allow 4506/tcp“. Uudeleen käynnistin palomuurin komennolla “sudo systemctl restart ufw“, jotta saadaan uudet asetukset voimaan palomuuriin.

Sitten Xubuntu version LTS 18.04.2-desktop-amd64 live tikulla avattu pöytäkone, josta tulee Slave kone. Laitoin terminaali komennon “sudo apt-get update“, jotta järjestelmä saa tiedon ohjelmisto versioista. Tähän asensin Salt Minionin terminaali komennolla “sudo apt-get install salt-minion“. Slave ottaa yhteyden Master palvelimeen, joten menin kansioon /etc/salt ja muokkasin tiedostoa minion sudoedit:llä lisäsin tiedostoon rivit master: 104.248.26.65 ja id: jonipc.

Uudelleen käynnistin Salt Minionin terminaali komennolla “sudo systemctl restart salt-minion“, jotta uusi asetus uudesta Masterista tulee voimaan.

Menin takaisin Master palvelimelle ja annoin komennon “sudo salt-key“, johon oli ilmestynyt unaccepted keys kohtaan jonipc.

Otin jonipcn avaimen vastaan komennolla “sudo salt-key -A“. Master Slave yhteyden kokeilin komennolla “sudo salt ‘*’ cmd.run ‘w’“, joka toimi oletetusti.

Aika tehtävässä Salt Master ja Slave 28.3.2019 kello 18:05 – 18:40.

Laineen esimerkit LAMP asennus Saltilla oma muunnelma

Aloitin Master palvelimella tekemällä kansion, johon tiedostot menevät terminaali komennolla “sudo mkdir -p /srv/salt/” ja asetustiedoston LAMP stack asennukseen komennolla “sudoedit lamp.sls“. Muokatun LAMP asennus esimerkki tiedoston laml.sls pohja Laineen Github sivulta: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

Kuva: lamp.sls tiedoston sisältö muokattu Laineen esimerkin pohjalta.

Loin kansion web sivuille komennolla “sudo mkdir websites” uuden kansion sijainti on /srv/salt/websites ja tein websites kansioon index.php teksti tiedoston komennolla “sudoedit index.php“. Laitoin index.php tiedostoon html ja php testikoodia.

Kuva: index.php tiedoston sisältö

sudo salt ‘*’ state.apply lamp” komennolla kaikille Slave koneille asentuu lamp.sls tiedostoon määrätyt: Ohjelmat Apache2, MariaDB Client, MariaDB Server, poistaa Apchen default sivun eli index.html tiedoston ja PHP lisäosa Apacheen ja tuo tiedostot kansiosta /srv/salt/websivut esim. Luomani index.php tiedosto menee Apache2 default sivun kansioon /var/www/html/.

Master palvelimelta komennolla “sudo salt ‘*’ state.apply lamp” terminaali ilmoitti että 3 tiedostoa vaihdettu onnistuneesti ja 0 epä- onnistuneesti jonipc koneelle.

Kokeilin toimivuuden vielä poistamalla vanhan jonipc Slaven komennolla “sudo salt-key -D” ja Avasin Xubuntun uudestaan alkutilaan Live tikulla. Xubuntuun päivitin ohjelmisto tiedot komennolla “sudo apt-get update“, asensin Salt-Minionin komennolla “sudo apt-get install salt-minion“, lisäsin koneen Slaveksi idllä joni2 ja “sudo systemctl restart salt-minion” komennolla uudelleen käynnistin salt minionin, jotta uusi asetus uudesta Masterista tulee voimaan.

Master palvelimella aloitin komennoilla “sudo salt-key -A” ja “sudo salt ‘*’ state.apply lamp“. Kaikki toiminnot näytti komento lokin mukaan toimivan.

Kuva: Salt LAMP stack asennus komento, kuvasta leikattu pois asennus paketit.

Apache2 ja PHP toimivuuden testaus

Kokeilin toimivuuden Slave pöytäkoneella avaamalla localhostin, joka avaa index.php tiedoston sivun. Sivun toimivuudesta voi todeta että Apache2 on asentunut ja sivu sisältää PHP testikoodia <?php print(1+1)?>, joka tulostaa sivulle numero 2, tästä voidaan todeta että PHPn lisäosa on asentunut.

Kuva: Ennen ja jälkeen localhost:in sivu

MariaDB toimivuuden testaus

MariaDBn toimivuuden kokeilin tekemällä Slave pöytäkoneella tietokannan ja yhden taulun.

MariaDPlle loin tietokannan joni komennolla “CREATE DATABASE joni;” ja tietokantaan menin komennolla “USE joni;”.

Tietokantaan sain luotua taulun komennolla “CREATE TABLE games (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(150), price FLOAT);“. Lisäsin tauluun tietoa komennolla “INSERT INTO games(name, price) VALUES (“Halo 1”, 15.5);“. Katsoin menikö tieto tauluun komennolla “SELECT * FROM games“. Kyllä tiedot menivät tauluun eli MariaDB toimii.

Kuva: MariaDB games taulusta.

Aika tehtävässä Laineen esimerkit LAMP asennus Salt:lla oma muunnelma 28.3.2019 kello 20:30 – 22:20


Tehtävän Laineen esimerkit LAMP asennus Salt:lla oma muunnelma lähteet:

Ohjeet Saltin käyttöön: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lamp stack asennus komento Saltille: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

MariaDB ohje: http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql

Salt Grains tietojen keräys Slave koneista

Aloitin taas lisäämällä uuden Slave koneen ja poistamalla vanhat Slavet Masterilta, uuden Slaven nimeksi tuli joniPc2.

Ensimmäinen Salt Grains komento Masterilta Slavelle, jonka kokeilin oli “sudo salt ‘*’ grains.items“, Komento tulosti Master palvelimelle pitkän listan Slave tietokoneen tiedoista, johon kuului aika paljolti kaikki tiedot, jotka palvelin saa irti esim. Tietoja raudasta, ohjelmistoista, versioista, käyttäjästä, Ip osoitteista ja käyttöjärjestelmästä.

Sitten kokeilin suodattaa tietoja Salt Grains komennolla esim. “sudo salt ‘*’ grains.item cpu_model“, joka vastasi AMD Ryzen 5 2600 Six-Core Processor.

Käyttöjärjestelmän ja version sain komennolla “sudo salt ‘*’ grains.item lsb_distrib_description“, joka vastasi Ubuntu 18.04.2 LTS.

Aika tehtävässä Salt Grains tietojen keräys Slave koneesta 30.3.2019 kello 11:35 – 11:50.

Salt state, joka asentaa ohjelmia ja vaihtaa asetuksia.

Ohjelmien asennus state

Aluksi teen ohjelmistot.sls tiedoston Salt Master palvelimen kansioon /srv/salt, joka kertoo mitkä ohjelmistot Slave kone asentaa. Master tietokone on virtuaali- palvelin Digital Oceanilta, jonka tietoja voin mennä muuttamaan myöhemminkin, vaikka lisätäkseni uusia ohjelmia ohjelmistot.sls tiedostoon.

Ohjelmistot.sls asentaa ohjelmistot Shutter – kuvan kaappaus ohjelmisto, VLC – median toisto ohjelmisto, WhoIs – IP haku ohjelmisto ja Htop – resursien hallinta ohjelmiston.

Ohjelmistot.sls komennon testaus

Suoritin komennon “sudo salt ‘*’ state.apply ohjelmistot” Master palvelimelta. State ohjelmistot asensivat VLCn, WhoIs, Htopin ja huomasi, että Shutter on oli jo asennettuna Slave tietokoneeseen.

Kuva: ohjelmistot asennus ohjelmistot Statella, kuvasta leikattu pois suurin osa asennus paketeista.

Aika tehtävässä ohjelmien asennus state 30.3.2019 kello 12:50 – 13:05.

Terminaalin preferences configurointi Saltilla

Terminaalin configuroiva state tein kansioon /srv/salt/terminal tiedostot default-terminalrc tiedoston, johon kopioin omat terminaali preference asetukset ja init.sls tiedoston, joka vie terminaali asetukset Slave koneen terminaali asetuksien tilalle.

Kuva: init.sls tiedoston sisältö

Komennolla “sudo salt ‘*’ state.apply terminal” lähetin käskyn Slave koneeseen, joka lokitietojen mukaan vaihtoi terminaali asetukset. Näin kun terminaalin graaffiset asetukset vaihtui samalla kun Master Slave yhteys oli vielä vaiheessa.

Aika tehtävässä terminaali preferences configurointi Saltilla 30.3.2019 kello 18:40-19:40.

Palvelimen alku configurointi Saltilla

Aloitin Master palvelimella laittamalla Salt State kansiot parempaan järjestykseen, vein kaikki sls tiedostot omiin kansioihin ja vaihdoin kaikki sls tiedostojen nimet init.sls.

Kuva: Tämän hetkiset /srv/salt kansion tiedostot “tree” komennolla

LAMP kansio

Kansio sisältää init.sls tiedoston, joka asentaa LAMP stackin ja korvaa Apeche2 index.html testi sivun index.php sivulla.

Kuva: init.sls tiedoston sisältö

Programs kansio

Tiedosto init.sls kansiossa programs lataa paketin hallinnan kautta Slave tietokoneeseen ohjelmia, joita itse yleisesti käytän. Ohjelmat: Shutter – kuvan kaappaus ohjelmisto, VLC – median toisto ohjelmisto, WhoIs – IP haku ohjelmisto, Htop – resurssien hallinta ohjelmiston ja Locate – hakutoiminto Linuxiin.

Kuva: init.sls tiedoston sisältö

Terminal kansio

Terminal kansiossa oleva default-terminalrc tiedosto viedään init.sls tiedoston avulla Master palvelimelta, Slave koneelle korvaamaan Terminaalin graafisten asetuksien tiedosto ja skel kansioon, jotta uusille käyttäjille tehdään kyseinen kansio automaattisesti.

Kuva: init.sls tiedoston sisältö

Top.sls tiedosto

Kansiossa /srv/salt sijaitseva top.sls tiedosto ajaa kansioiden nimen perusteella init.sls tiedostot.

Kuva: top.sls tiedoston sisältö

Salt State Apply komento testi

Avasin uuden Xubuntu koneen Live tikulla ja päivitin versio tiedot komennolla “sudo apt-get update” asensin Salt Minionin komennolla “sudo apt-get install salt-minion“, lisäsin Masterin ja uudelleen käynnistin komennolla “sudo systemctl restart salt-minion“.

Masterilla otin uuden avaimen vastaan komennolla “sudo salt-key -A“. Master palvelimelta komento “sudo salt ‘*’ state.apply” suoritti kaikki State kansioiden init.sls tiedostot top.sls tiedoston kautta ja kaikki näytti toimivan “Succeeded: 6 Failed: 0” laitoin viellä komennon uudestaan, jotta saan lyhyemmän kuvan nyt jo asennetuista paketeista.

Aika tehtävässä palvelimen alku configurointi 31.3.2019 kello 5:55 – 7:00

Tehtävän palvelimen alku configurointi saltilla lähteet: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lähteet

Pohjana Tero Karvinen 2012: Palvelinten hallinta kurssi, http://terokarvinen.com

Tehtävät: http://terokarvinen.com/2018/aikataulu-palvelinten-hallinta-ict4tn022-3003-ti-ja-3001-to-loppukevat-2019

Vinkit sls tiedostojen rakenteisiin: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this

Lamp.sls muunnelman alku pohja sivulta: https://github.com/joonaleppalahti/CCM/blob/master/salt/srv/salt/lamp.sls

MariaDB ohje yhden taulun tekoon: http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql

Ohjeita top.sls ja init.sls tiedostoihin sivulta: https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html