All Posts

Homework 5. Config Windows with Salt

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

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

Xubuntulle asensin viimeiset päivitykset ja salt-master.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install salt-master
hostname -I ### saadaan master IP
sudo ufw enable
sudo ufw allow 4505/tcp
sudo ufw allow 4506/tcp
sudo ufw status verbose ### tarkistetaan, että oli tehty reikiä palomuuriin

Windowsille asensin salt-minion osoitteesta:
https://repo.saltstack.com/windows/

Ladataan sielta seuraava:

Salt-Minion-2017.7.4-Py3-AMD64-Setup.exe

Huom! Salt-minion versio pitaa olla vanhempi, kuin Salt-master!!!

Salt-master version voi katsoa komennolla:

$ sudo salt --version

Kohtaan Master laitetaan meidän Xubuntun Master IP.
Kohtaan nimi voi kirjoittaa vaikka Windowsin oma nimi.
Asennetaan:

Haetaan meidan Windows orja komennolla:

sudo salt-key -A

Komennolla tarkistetaan vastaako Windows:

sudo salt "WindowsKG" test.ping

Luodaan uusi kansio “win” ja annetaan kirjoitus oikeudet:

sudo mkdir /srv/salt/win
sudo chown root.salt /srv/salt/win
sudo chmod ug+rwx /srv/salt/win

Asennetaan git, etta voidaan paivittaa git kansiot.

Kun git on asennettu, meidan salt-masterilla eli Xubuntulla ajetaan komennot:

sudo salt-run winrepo.update_git_repos
sudo salt -G 'os:windows' pkg.refresh_db

Tassa kansiossa loytyy sitten kaikki .sls tiedostot jotka voidaan asentaa Windowsille.

/srv/salt/win/repo/salt-winrepo$ ls

Asennetaan paskan Microsoft Edge:n tilalle Firefox komennolla:

sudo salt "WindowsKG" pkg.install firefox

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

Avataan PowerShell(Administrator) ja pistetaan komennot:

C:\Windows\system32> c: #valitaan kovalevy
C:\Windows\system32> cd /salt/ #siirretaan kansion
C:\salt> ls #listataan lansion sisalto
C:\salt> ./salt-call --local test.ping #pingataan Windows

Tasta voidaan katsoa kaikki .sls tiedostot jotka voidaan asentaa Windowsille PowerShellin kautta:

Asensin VLC ja GIT Windowsille. Kaytin -l debug jotta pystyn katsoa mahdollisia virheita. Asennukset meni lapi:

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

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

Homework 4.

Homework 4

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

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

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

Vagrant asennus ja komennot

Asensin Vagrant ja Virtualbox:

$ sudo apt-get install -y vagrant virtualbox

Vagrant komennot ja ohjeet:

Home kansiossa luodaan “vag” niminen kansio. Tahan jatkossa asennetaan meidan virtuaaliset koneet:

$ mkdir vag

Tasta asennetaan uuden virtuaalikoneen:
https://app.vagrantup.com/bento/boxes/ubuntu-16.04

/vag$ vagrant init bento/ubuntu-16.04

Saadaan vastausta:

Huomataan, etta asennuksen jalkeen saatiin tiedosto “Vagrantfile” josta loytyi meidan asentama virtuaalikone.

# Every Vagrant development environment requires a box. # You can search for boxes at
# https://vagrantcloud.com/search.
config.vm.box = "bento/ubuntu-16.04"

Seuraavaksi “nostetaan” meidan uusi virtuaalikone komennolla:

/vag$ vagrant up

“Tässä vaiheessa asennus pysähtyi puolessa välissä ja sain ilmoituksen, että minulla kuulema ei ole tilaa asentaa sitä virtuaalikonetta. En jaksanut taas taistella puoli päivä virhen ja LiveUSBn kanssa ja siirryin Linux Mint:lle joka on asennettu koneelle.”

Mintillä asennus onnistui:

Seuraavaksi otetaan ssh yhteyttä meidään uudeen virtuaalikoneeseen:

/vag$ vagrant ssh

Komennolla voidaan tutkia, mitkä virtuaali koneet ovat asennettu ja päällä:

vagrant status

Eli voidaan tämän nimen avulla avata yhteys tiettyn koneeseen:

vagrant ssh default

tai

voit käyttää komento:

vagrant global-status

ja selvittää virtuaalikoneen ID ja sen avulla ottaa SSH yhteyttä:

vagrant ssh exampleID

Jos haluat sammutta VM:

vagrant halt "name or ID"

Käynnistä uudestaan:

vagrant up "name or ID"

Poistaa kokonaan:

vagrant destroy "name or ID"

Vaihdetaan nimi:

https://stackoverflow.com/questions/17845637/how-to-change-vagrant-default-machine-name

Nimen vaihto kuuluu tehda ennen VM asennusta!

Alkuperäinen tiedosto ilman #kommentoituja riveja:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
end

Muokataan niin, että vaihdetaan sen nimi:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.define :ubuntuVM do |t|
  end
end

Komennolla “vagrant status” voidaan nähdä, että nimi muuttui:

Current machine states:

ubuntuVM                  running (virtualbox)

LiveUSB UEFI bootable with toram and nomodeset

Setting up LiveUSB

I had really mysterious things, when tried to boot Xubuntu Live USB on my ASUS ROG GL552VW. Graphic card: Nvidia 960m
After booting Live USB and trying Xubuntu without installation, it just freezes.

So here is instructions that will help, if you have a same problem.
(Notice, that not all instructions here is required for your pc build, so be ready to try all)
For my build it works with that set up.

1. Download Xubuntu ISO file.

2. Format USB to fat32

3.1 Use UNetbootin to install Xubuntu ISO file to USB
3.2 Additional!
Space used to preserve files across reboots” to 1MB min – 4GB (4096MB) max.

4.Take secure boot and fast boot off in UEFI/BIOS!!!

5. Make sure that your Live USB is booting before other OS.
My boot order: Live USB -> Linux Mint -> Windows 10
OR
Simply press “ESC”, F9 or F12 and choose your usb.

6.1 Boot Live USB and choose “Try Xubuntu without installing” then press “e” button.
6.2 Edit file with adding after “quiet splashnomodeset (to turn off the graphics) and toram(so that you can use Xubuntu without USB after booting).

quiet splash nomodeset toram ---

6.3 On some computers LiveUSB works fine without adding “nomodeset“!!!

6.4 Because after adding “nomodeset” my screen resolution droped to 800×600, I started finding other solution.

Here is some of them that i found:

nouveau.modeset=0
OR
nomodeset grub_gfxmode=1920x1080x24
OR
nomodeset grub_gfxmode=1920x1080x32
OR
nomodeset rdblacklist=nouveau

So i tried nouveau.modeset=0 and it worked!

quiet splash nouveau.modeset=0 toram ---

I hope you solved your problem. 🙂

Additional Information

If you desided install Xubuntu, you can permanently set boot options just by adding “nomodeset” and/or “toram” in grub file:

sudoedit /etc/default/grub

Add changes in “GRUB_CMDLINE_LINUX_DEFAULT” after “quiet splash

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset toram"
GRUB_CMDLINE_LINUX=""

In same place you can set up screen resolution removing “#” and changing:

#GRUB_GFXMODE=640x480

to

GRUB_GFXMODE=1920x1080

Then update grub:

sudo update-grub

Homework 3. Versionhallinta

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Opiskele yllä aikataulussa olevat artikkelit. Noissa artikkeleissa opetetaan ne asiat, joilla läksyt saa tehtyä. Tätä a-kohdan lukutehtävää ei tarvitse raportoida. Luettava materiaali on kunkin tapaamiskerran kohdalla.

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

Aluksi ladataan git:iä komennolla:

$ sudo apt-get install git

Asennuksen jälkeen päästän heti käyttää git:iä ja aluksi annetaan ohjelmalle meidän tiedot:

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@mail.com"

Yleiset komennot, jotka me tarvitaan git:ssä:

Luodaan uusi kanssio sekä .git kansion samalla:

git init dirname

Esim:
/srv $ sudo git init salt
Initialized empty Git repository in /srv/salt/.git/

Ensin tehdän muutos meidän uuteen kansioon, esim lisätään sinne hello.txt tiedoston ja lisätään sen komennolla:

git add .

Seuraavaksi varmistetaan muutoksia, sekä kerrotaan lyhyellä viestillä mitä muutoksia oli tehty:

git commit

Jos meillä olisi valmiiksi jo tehty varasto esim GitHub:lla ja me halutaan siirtää sitä meidän koneelle niin tarvitaan yllä olevien komentojen lisääksi kolme lisää.

Katsotaan ensin komentojen järjestys:

git clone 'linkki' # kopioi varaston suoraan koneelle
git add .
git commit
git pull
git push

Nyt aion kloonata minun valmiiksi tehty salt kansion GitHub:sta:
https://github.com/KonstantinGurin/salt

Eli nyt voidaan vaan lisätä ja/tai muokata tiedostoja.
Komennoilla git add . ja git commit tehdään muutoksia ja komennoilla git pull ja git push lähetetään niitä takaisin GitHub:in.

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

Komennolla git log voi seurata mitä muutoksia oli tehty, kuka ne muutokset teki ja monelta se oli. Sekä täälä löytyy se info mitä me laitetaan git commit komennon aikana.

Git diff komento kertoo mitä eroa commiteillä on:

eli tässä näkee, että oli lisätty testfile.txt sekä näkyy sen sisältö.

Git blame näyttää tiedoston sisällön, aika milloin muokkaus oli tehty, kuka sen teki ja oliko tehty committi vai ei.

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

Poistetaan top.sls tiedoston “vahingossa”.
Komennolla palautetaan tiedosto:

$ git reset --hard

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.

Päätin asentaa pelin Wesnoth saltin avulla:

Tässä on init.sls tiedosto missä on listattu kaikki tarvittavat paketit (helpompi kyllä olisi asentaa vaan metapakettina, mutta halusin kokeilla tällä tavalla)

Komennolla asennetaan peli käyttäjälle “testslave”:

$ sudo salt "testslave" state.apply wesnoth

Homework 2. Package-file-server

H2 Tiistai ryhmä

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

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

Eli halutaan automatisoida etusivujen luomiseen apache2:lla.

Aluksi luodaan kansioon /srv/salt/ uuden kansion. Annetaan sen nimeksi apache2:

/srv/salt $ sudo mkdir apache2

Seuraavaksi luodaan init.sls tiedoston, mihin kirjoitetaan meidän ohjeet:

Ja luodaan uusi index.html joka vaihtaa apache2 default etusivun:

Tarkempi init.sls tiedostosta ja sen sisällöstä:
Se on tiedosto joka käynistää vuorotellen kaikki antamat ohjeet.

Asentaa apache2 paketti:

apache2:
  pkg.installed

Vaihtaa apache2 etusivun uudella etusivulla:

/var/www/html/index.html:
  file.managed:
    - source: salt://apache2/index.html

/var/www/html/index.html:
Tiedosto mitä vaihdetan ja sen paikka.

file.managed:
Manage a given file, this function allows for a file to be downloaded from the salt master and potentially run through a templating system.

Eli tällä komennolla haetaan tiedoston.

– source:
The source file to download to the minion, this source file can be hosted on either the salt master server (salt://), the salt minion local file system (/), or on an HTTP or FTP server (http(s)://, ftp://).

Ja tällä komennolla merkataan mistä.

Linkataan tiedostot userdir.conf ja userdir.load ja siirretään niitä kansiosta mods-available kansioon mods-enabled eli otetaan käyttöön userdir:

/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

Tekee samaa asia kuin komento:

$ sudo a2enmod userdir

file.symlink:
Create a symbolic link.

– target:
The location that the symlink points to.

Tarkistetaan oliko tehty muutoksia tiedostoihin ja päivitetään palvelu (sama kuin sudo systemctl restart apache2) tarvittaessa:

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

service.running:
Ensure that the service is running.
Varmistaa, että palvelu on käynissä.

– watch:
watch can be used with service.running to restart a service when another state changes.

Ja tässä kuvat onnistuneesta asennuksesta:

Etusivu on muuttunut ja toimii:

Ja käyttäjän testslave etusivu:

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

init.sls tiedosto:

libapache2-mod-php:
  pkg.installed

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

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

Muokattu php7.2.conf tiedosto:

<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

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

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.

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

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.