Palvelinten Hallinta H1

http://terokarvinen.com/2018/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%e2%80%93-loppukevat-2018-5p

Tehtävä tehty Xubuntu 18.04 käyttöjärjestelmällä.

Aloitus 11:34 Lopetus 15:04

Aloitin ajamalla komennot setxkbmap fi  ja sudo apt-get update

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

Master Asennus

Aloitin asennuksen ensin asentamalla masterin komennolla

sudo apt-get -y install salt-master

ja tarkistamalla IP-osoitteeni hostname -I komennolla.

Slave Asennus

Sitten asensin orjan komennolla.

sudo apt-get -y install salt-minion

Orjan asetukset ovat polussa /etc/salt/minion joka on täynnä tekstiä jota ei ainakaan tässä tehtävässä tarvita joten tyhjensin tiedoston komennolla.

echo asd | sudo tee /etc/salt/minion

Orjan tulee tietää mestarin IP-osoite joten annoin sille tiedon muuttamalla tiedostoa komennolla.

sudoedit /etc/salt/minion

ja lisäsin sinne mestarin IP-osoitteen ja orjalle id:n

xubuntu@xubuntu:~$ cat /etc/salt/minion
master: 192.168.10.47
id: Orja1

Sitten orja pitää käynnistää uudelleen.

sudo systemctl restart salt-minion.service

Orjan avaimen hyväksyminen

Komennolla sudo salt-key näkyy kaikki hyväksymistä odottavat orjat.

Ja komennolla sudo salt-key -A hyväksytään orjat.

xubuntu@xubuntu:~$ sudo salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
Orja1
Proceed? [n/Y] y
Key for minion Orja1 accepted.

Komentojen testaus.

Komennot ajetaan aina sudolla. Tässä esimerkkejä komennoista.

cmd.run ajaa komentoja

pkg.install asentaa paketteja

grains.items näyttää tietoja orjista

sudo salt '*' cmd.run 'whoami'
Orja1:
root
sudo salt '*' pkg.install sudoku
Orja1:
----------
sudoku:
----------
new:
1.0.5-2build2
old:

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.

 

Kokeilin Laineen esimerkeistä Firewall esimerkkiä.

https://github.com/joonaleppalahti/CCM/tree/master/salt/srv/salt

Linkin alta kopioin firewall.sls tiedoston sisällön ja firewall kansion sisällön.

Ensin menin oikeaan hakemistoon komennolla cd /srv/salt/

Sitten tein tiedoston nimeltä firewall.sls komennolla sudoedit firewall.sls jonka sisään kopioin Laineen firewall.sls tiedoston.

xubuntu@xubuntu:/srv/salt$ cat firewall.sls
ufw:
pkg.installed

/etc/ufw/user.rules:
file:
- managed
- source: salt://firewall/user.rules
- require:
- pkg: ufw

/etc/ufw/user6.rules:
file:
- managed
- source: salt://firewall/user6.rules
- require:
- pkg: ufw

ufw-enable:
cmd.run:
- name: 'ufw --force enable'
- require:
- pkg: ufw

 

Sitten tein uuden hakemiston johon user.rules tiedostot menevät.

sudo mkdir firewall

Kokeilin toimiiko firewall ajamalla state.apply firewall

xubuntu@xubuntu:/srv/salt/firewall$ sudo salt '*' state.apply firewall
Orja1:
Data failed to compile:
----------
Rendering SLS 'base:firewall' failed: mapping values are not allowed here; line 4

---
ufw:
pkg.installed

/etc/ufw/user.rules: <======================
file:
- managed
- source: salt://firewall/user.rules
- require:
- pkg: ufw
[...]
---

Se antoi erroria, kyseessä oli pieni välilyönti virhe. Kun se oli korjattu se toimi oikein.

xubuntu@xubuntu:/srv/salt$ sudo ufw status
Status: active

To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
4505/tcp ALLOW Anywhere
4506/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
4505/tcp (v6) ALLOW Anywhere (v6)
4506/tcp (v6) ALLOW Anywhere (v6)

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

 

Orja koneiden käyttöjärjestelmän tiedot.

xubuntu@xubuntu:~$ sudo salt '*' grains.item os osrelease oscodename
Orja1:
----------
os:
Ubuntu
oscodename:
bionic
osrelease:
18.04

Orja koneiden kaikki tiedot.

sudo salt '*' grains.items

 

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

 

Tein ensin mestarille top.sls tiedoston jotta windows ei yrittäisi laittaa ufwta päälle.

cd /srv/salt/

sudoedit top.sls

xubuntu@xubuntu:/srv/salt$ cat top.sls
base:
'Orja1':
- firewall

Sitten tein windows läppäristäni orjan

http://terokarvinen.com/2018/control-windows-with-salt ohjeen avulla

Master ip 192.168.10.47 ja Minion name SlaveLaptop

Sitten hyväksyin orjan.

xubuntu@xubuntu:/srv/salt$ sudo salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
SlaveLaptop
Proceed? [n/Y] y
Key for minion SlaveLaptop accepted.

 

Komennolla sudo salt '*' test.ping voi kokeilla saako orjiin yhteyttä

xubuntu@xubuntu:/srv/salt$ sudo salt '*' test.ping
Orja1:
True
SlaveLaptop:
True

sudo salt 'SlaveLaptop' grains.items komennolla näkee tietenkin tietoja läppäristä

Komennolla sudo salt-run winrepo.update_git_repos saadaan repositorit päivitettyä jotta windowsille voidaan asentaa paketteja.

Komento ei toiminut.

xubuntu@xubuntu:~$ sudo salt-run winrepo.update_git_repos
[ERROR ] The git command line utility is required when using the 'pygit2' winrepo_provider.
[CRITICAL] No suitable winrepo provider module is installed.
[ERROR ] Failed to update winrepo_remotes: Failed to load winrepo
Failed to update winrepo_remotes: Failed to load winrepo

 

Kokeilin asentaa python3-pygit2 ja libgit2-26 mutta ne olivat jo asennettuna joten vika ei ollut ainakaan siinä.

Sitten tietenkin muistin että git ei ole asennettu joten asensin sen sudo apt-get -y install git-all komennolla

xubuntu@xubuntu:~$ sudo salt-run winrepo.update_git_repos
[ERROR ] Failed to update winrepo_remotes: [Errno 13] Permission denied: '/srv/salt/win'
Failed to update winrepo_remotes: [Errno 13] Permission denied: '/srv/salt/win'

Winrepo vieläkin valitti mutta ainakin virhe oli eri kuin ennen. Tällä kertaa sillä ei ollut oikeuksia hakemistoon /srv/salt/win

Laitoin ryhmälle ja muille oikeuden kirjoittaa tiedostoihin komennolla sudo chmod go+w srv/*

Olen aika varma että tämä on huono idea mutta en tiennyt miten muuten saan winrepon toimimaan.

xubuntu@xubuntu:/srv$ sudo salt-run winrepo.update_git_repos
https://github.com/saltstack/salt-winrepo-ng.git:
/srv/salt/win/repo-ng/salt-winrepo-ng
https://github.com/saltstack/salt-winrepo.git:
/srv/salt/win/repo/salt-winrepo

Sitten poistin kirjoitus oikeudet muilta komennolla sudo chmod gu-w srv

ja sudo chmod gu-w srv/*

xubuntu@xubuntu:/$ ls -l srv
total 0
drwxr-xr-x 4 root root 160 Oct 28 12:33 salt

 

Sitten kokeilin komentoa

sudo salt -G 'os:windows' pkg.refresh_db

xubuntu@xubuntu:/$ sudo salt -G 'os:windows' pkg.refresh_db
SlaveLaptop:
Minion did not return. [No response]

Orja ei vastannut mutta se silti päivitti paketit. Tiedän että se päivitti paketit koska python käynnistyi tehtävien hallinnassa kun ajoin komennon.

 

Sitten kokeilin asentaa ohjelman pkg.install komentoa käyttäen.

xubuntu@xubuntu:/$ sudo salt 'SlaveLaptop' pkg.install vlc
SlaveLaptop:
----------
vlc:
----------
new:
3.0.4
old:
xubuntu@xubuntu:/$ sudo salt 'SlaveLaptop' pkg.install libreoffice
SlaveLaptop:
Minion did not return. [No response]

Libre office asentui mutta minion timeouttasi. Tämän saa varmaan toimimaan mukavammin jollai TTL asetuksen muutoksella jotta ei tulisi timeoutteja.

SALT TOIMIII!!!

 

Lähteet/Sources:

https://github.com/joonaleppalahti/CCM/tree/master/salt/srv/salt

http://terokarvinen.com/2018/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%e2%80%93-loppukevat-2018-5p Lähde kurssiin.

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

Advertisements