Git-perusteet

Komennot ja perusteiden ohjeet Haaga-Helian Palvelinten hallinta -kurssilta Tero Karviselta, www.terokarvinen.com.
Osa tehtävistä GitHubissa: https://github.com/Miyune.

 

Pohja

Asenna Git ja luo uusi kansio projektille TAI kloonaa uusi repositorio GitHubista.

 

Komennot:

git init

Luo reposition.

git add .

Valmistelee kaikki kansion tiedostot siirtoa varten.

git commit

Siirtää tiedostot, kommentoi.

git reset --hard

Palaa edelliseen commitiin.

git blame tiedosto

Näyttää, kuka on kirjoittanut rivit.

git diff id id2

Näyttää muutokset kahden commitin välillä.

git log

Näyttää tehdyt commitit ja tekijät sekä aikaleimat.

git log -p

Näyttää kaikkien tehtyjen commitien sisällöt.

git add . && git commit; git pull && git push

Tekee kaiken yhdellä kertaa.

Mainokset

Pilarit

Palvelinten hallinta -kurssin harjoitus 4.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Saltin käyttöönotto

Otin ensin Saltin käyttöön asentamalla master-slave -arkkitehtuurin.

Asensin salt masterin ja slaven samalle koneelle komennolla sudo apt-get -y install salt-master salt-minion. Tarkistin IP-osoitteen komennolla hostname -I, jonka jälkeen muokkasin tiedostoa sudoedit /etc/salt/minion. Tiedoston loppuun kirjoitetaan rivit:

master: ip-osoite
id: mikki

Tallennus ctrl + X Y enter. Sen jälkeen daemonin uudelleenkäynnistys komennolla sudo systemctl restart salt-minion.service.

Tätä harjoitusta varten asensin toisenkin minionin webbipalvelimelleni. Tein sille saman muutoksen /etc/salt/minion-tiedostoon, mutta eri id:llä:

master: ip-osoite
id: minni

Käynnistin minionin uudelleen komennolla sudo systemctl restart salt-minion.service.

Tarkistin masterin autentikaatiotilanteen komennolla sudo salt-key. Komento näyttää, että hyväksymättömiä avaimia on yksi: mikki. Toisen minionin avainta ei siis näkynyt ollenkaan. Kokeilin debuggia ja sain tulokseksi seuraavaa:

Screenshot_2018-04-21_09-01-16

Virheilmoitus ei kertonut minulle mitään, googlettamalla virheilmoituksilla ei löytynyt mitään hyödyllistä. Yritin vaihtaa omistajuutta Saltin dokumentaation mukaan, mutta se sotki minionia enemmän. En siis onnistunut tekemään useamman minionin asennusta.

Salt-tila, jinja, muotit

Palvelinten hallinta -kurssin harjoitus 3.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Saltin käyttöönotto

Otin ensin Saltin käyttöön asentamalla master-slave -arkkitehtuurin.

Asensin salt masterin ja slaven samalle koneelle komennolla sudo apt-get -y install salt-master salt-minion. Tarkistin IP-osoitteen komennolla hostname -I, jonka jälkeen muokkasin tiedostoa sudoedit /etc/salt/minion. Tiedoston loppuun kirjoitetaan rivit:

master: ip-osoite
id: mikki

Tallennus ctrl + X Y enter. Sen jälkeen daemonin uudelleenkäynnistys komennolla sudo systemctl restart salt-minion.service.

Tarkistin masterin autentikaatiotilanteen komennolla sudo salt-key. Komento näyttää, että hyväksymättömiä avaimia on yksi: mikki. Hyväksyin avaimen komennolla sudo salt-key -A.

Testasin toimivuuden komennolla sudo salt ’mikki’ cmd.run ’hostname’. Komento tulosti minionin hostnamen, joten yhteys toimii.

Poistin vielä turhan varoitustekstin salt-tulosteen alusta muokkaamalla masterin asetustiedostoa komennolla sudoedit /etc/salt/master ja kirjoittamalla tiedoston loppuun file_ignore_glob: [].

Loin vielä Saltille sls-tiedostoja varten kansion komennolla sudo mkdir /srv/salt/.

 

Tilatiedosto Jinjan kontekstimuuttujalla

Loin tilan komennolla sudoedit /srv/salt/context.sls. Kirjoitin sen sisälle seuraavanlaisen tilan:

/home/xubuntu/heippa.txt:
 file.managed:
   - source: salt://terve.txt
   - template: jinja
   - context:
   person: 'Iina'

Loin tekstitiedoston, johon Salt syöttää kontekstin, komennolla sudoedit /srv/salt/terve.txt. Kirjoitin tiedostoon lyhyesti: Hei {{ person }}!.

Ajoin tilan komennolla sudo salt ’mikki’ state.apply context. Ajo meni läpi, ei virheilmoituksia.

Testasin vielä tiedoston muuttuneen komennolla cat /home/xubuntu/heippa.txt. Tuloste oli oikea, eli tila ja jinja toimi.

Screenshot_2018-04-15_15-50-40.png

 

SLS-tila Jinjalla: for-in

Lainasin tukea ja inspiraatiota Robert Ridalin tehtävistä: https://robertridal.wordpress.com/2018/04/13/linux-server-management-assignment-3-salt-jinja/.

Loin uuden tilatiedoston komennolla sudoedit /srv/salt/forin.sls. Kirjoitin tiedostoon seuraavan:

{% for file in ['koira.txt', 'kissa.txt', 'kettu.txt'] %}

/home/xubuntu/{{ file }}:
  file.managed:
    - source: salt://forintext.txt
    - template: jinja

{% endfor %}

Loin tiedoston forin.txt: sudoedit /srv/salt/forin.txt ja kirjoitin sinne Hello jinja world!.

Ajoin tilan komennolla sudo salt ’*’ state.apply forin.

Komento onnistui ja tarkistin yhden tiedoston sisällön, joka oli oikea:

Screenshot_2018-04-15_16-24-48

 

SSH:n portin muuttaminen tilalla

Lainasin Joni Mattssonilta apuja tehtävään: https://mattssonjoni.wordpress.com/2018/04/15/palvelinten-hallinta-h3/.

Aloitin SSH:n asennuksella: sudo apt-get -y install openssh-server. Kopioin SSH:n asetustiedoston komennolla: sudo cp /etc/ssh/sshd_config /srv/salt.

Sudoedit /srv/salt/sshd_config -> muutin Port-rivin muotoon: Port: {{ port }}.

Loin uuden tilatiedoston: sudoedit /srv/salt/sshd.sls ja kirjoitin sinne seuraavasti:

openssh-server:
 pkg.installed

/etc/ssh/sshd_config:
 file.managed:
 - source: salt://sshd_config
 - template: jinja
 - context:
 port: 1188

sshd:
 service.running:
 - watch:
 - file: /etc/ssh/sshd_config

Ajoin tilan komennolla sudo salt ’*’ state.apply sshd. Käsky meni läpi ja /etc/ssh/sshd_configiin oli muuttunut portti antamakseni (1188).

 

Kokeile jonkun toisen tilaa

Käytin Valtteri Partasen tilaa Sysstatin asennuksesta: https://valtteripartanen.wordpress.com/2018/04/08/palvelinten-hallinta-h2/.

Ensin asensin sysstatin käsin komennolla sudo apt-get -y install sysstat. Laitoin sysstatin päälle muuttamalla tiedostossa sudoedit /etc/default/sysstat rivin ”ENABLE: true”.

Uudelleenkäynnistin palvelun komennolla sudo systemctl restart sysstat.

Testasin komennolla sar ja sain tietoja ulos:

Screenshot_2018-04-15_17-11-56.png

Kopioin muokatun asetustiedoston salt-kansioon komennolla sudo cp /etc/default/sysstat /srv/salt/. Loin uuden tilan komennolla sudoedit /srv/salt/sysstat.sls ja kirjoitin sen sisälle:

sysstat:
  pkg.installed

/etc/default/sysstat:
  file.managed:
    - source: salt://sysstat

sysstatservice:
  service.running:
    - name: sysstat
    - watch:
      - file: /etc/default/sysstat

Seuraavaksi postin Sysstatin koneelta: sudo apt-get -y purge sysstat.

Testasin tilan toimivuutta komennolla sudo salt ’*’ state.apply sysstat. Komento onnistui, muutoksia tuli kolme (asennus, tiedoston muokkaus ja restart).

Apache name-based virtual hosts

Virtualhosts.sls-tiedostoon:

apache2:
 pkg.installed

/etc/apache2/sites-available/termos.conf:
 file.managed:
   - source: salt://termos.conf

/etc/apache2/sites-enabled/termos.conf:
 file.managed:
   - target: /etc/apache2/sites-available/termos.conf

/etc/apache2/sites-enabled/000-default.conf:
 file.absent

apache2.service:
 service.running:
   - watch:
     - file: /etc/apache2/sites-enabled/termos.conf

Hosts-tiedostoa pitää olla muutettu ja ennen staten ajamista täytyy myös luoda conf-tiedosto komennolla sudoedit /srv/salt/termos.conf.
Tähän tiedostoon kopioidaan tiedostosta /etc/apache2/sites-available/000-default.conf koko setti (tai vain ei-kommentoitu osio) ja lisätään seuraavat:

ServerName http://www.palvelin.com
ServerAlias palvelin.com
<Directory documentroot (kopioi samasta tiedostosta)>
Require all granted
</Directory>

Lopuksi ajetaan sudo salt ’*’ state.apply virtualhosts.

Saltin tiloja: Apache ja käyttäjien kotisivut

Palvelinten hallinta -kurssin harjoitus 2.

Ympäristönä toimi Asus UX410U-läppäri, jossa asennettuna Win 10 uusimmilla julkaistuilla päivityksillä. Harjoituksessa käytin Linuxia livetikulta, julkaisu ja versio Xubuntu 16.04-3. Kaikki ohjeet osoitteesta www.terokarvinen.com ellei toisin mainittu.

Aloitin harjoituksen kiinnittämällä livetikun koneeseeni ja painamalla esc-näppäintä käynnistyksessä ennen Windowsin lataamista, jolloin pääsin boot-valikkoon ja pystyin valitsemaan käynnistysmediaksi USB-tikun, ja Xubuntu käynnistyi.

Ensimmäiset toimenpiteet: kirjoitin terminaaliin (Win + T) setxkbmap fi (näppäimistö suomeksi) ja sudo apt-get update (pakettien päivitys).

 

Salt masterin ja slaven asennus

Asensin salt masterin ja slaven samalle koneelle komennolla sudo apt-get -y install salt-master salt-minion. Tarkistin IP-osoitteen komennolla hostname -I, jonka jälkeen muokkasin tiedostoa sudoedit /etc/salt/minion. Tiedoston loppuun kirjoitetaan rivit:

master: ip-osoite
id: iina

Tallennus ctrl + X Y enter. Sen jälkeen daemonin uudelleenkäynnistys komennolla sudo systemctl restart salt-minion.service.

Tarkistin masterin autentikaatiotilanteen komennolla sudo salt-key. Komento näyttää, että hyväksymättömiä avaimia on yksi: iina. Hyväksyin avaimen komennolla sudo salt-key -A.

Testasin toimivuuden komennolla sudo salt ’iina’ cmd.run ’hostname’. Komento tulosti minionin hostnamen, joten yhteys toimii.

 

Käyttäjien kotisivut toimimaan Apachella käyttäen Saltin tilaa

Loin ensin tiloille kansion komennolla sudo mkdir -p /srv/salt/. Sen jälkeen loin tilatiedoston komennolla sudoedit /srv/salt/userdir.sls. Kirjoitin tilaan seuraavan pätkän:

apache2:
 pkg.installed

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

/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

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

Kävin sen jälkeen luomassa tiedoston default-index.html komennolla sudoedit /srv/salt/default-index.html. Käytin komentoa sudo salt ’*’ state.apply userdir asettaakseni tilan päälle minionille, ja sain onnistuneen palautteen tilan asettamisesta.

Lopuksi vielä tein kotisivun käyttäjälle xubuntu:

 whoami
 cd
 mkdir public_html
 echo "Xubuntus homepage" |tee public_html/index.html

Testasin kotisivun toimivuuden menemällä selaimella osoitteeseen localhost/~xubuntu. Sivu toimi, eli tila onnistui.

 

PHP päälle tilan avulla

Jatkoin saman tilan muokkausta komennolla sudoedit /srv/salt/userdir.sls. Lisäsin loppuun rivit:

libapache2-mod-php:
  pkg.installed

Tallensin ja testasin toimivuuden ajamalla tilan uudelleen, sudo salt ’iina’ state.apply userdir. Virheilmoituksia ei tullut, joten päättelin tämän toimineen. Palasin muokkaamaan userdir.sls-tiedostoa ja lisäsin loppuun rivit:

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

Ajoin taas tilan minionille, enkä saanut virheilmoitusta. Siirsin lopuksi seuraavan pätkän ihan viimeiseksi, jotta apachen uudelleenkäynnistys tulisi vasta php-modin asennuksen jälkeen.

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

En saanut Apachea uudelleenkäynnistymään php7.0.conf-tiedoston muutosten jälkeen, joten jouduin tekemään sen käsin. Loin tiedoston index.php public_html-kansioon ja kirjoitin siihen lyhyen PHP-koodin:

<?php
echo '<p>Hello world</p>';
?>

Testasin osoitteessa localhost/~xubuntu/index.php, jossa hello world näkyi oikein.

 

Uudelleenkäynnistystä en saanut toimimaan tilassa, enkä ymmärtänyt loppujen kotitehtävien tehtävänantoja tai osannut tehdä

niitä.