Hallitse palvelimiasi Pupetilla. Pupettia käyttävät esimerkiksi Google, Mozilla ja Wikipedia. Sillä on toteutettu myös US Government Security Baseline hallinnon Linux ja Windows -tietokoneisiin.
Tämä on uuden opetussuunnitelman, 5 opintopisteen kurssi.
Alustava aikataulu
Opetus labrassa 5004 maanantaisin 12:00-14:45 ja torstaisin 09:00-11:45. Kurssi kestää 5. periodin eli 2016 loppusyksyn, viikot w43 – w50. Yhteensä 16 tapaamiskertaa 8 viikon aikana.
Tämän edistyneen kurssin aikataulu on alustava, ja se muuttuu vielä kurssin aikana.
w34 Hello Puppet
ma Järjestäytyminen, nykytilan arviointi. Suppea katsaus työkaluihin. Hello Puppet. One line puppet. Modulit. Package-file-service.
to Orjien ohjaaminen verkon yli. Git versionhallinta.
Osaat konfiguroida orjille palvelimia, verkon yli.
w44. Pupetin resursseja ja rakenteita
ma. Muotit ja faktat. Määritellyt tyypit.
to. Puppetin kertaus ja esimerkkimodulin teko. Omien miniprojektien käynnistys. Package-File-Service. Exec, User, Group.
Osaat konfiguroida Pupetilla palvelimia tavallisissa tilanteissa.
Eri työkaluja
w45 Provisiointi
ma Verkkobootti, DHCP+PXE
to Verkkobootti, DHCP+PXE
w46 Kilpailevia keskitettyjä hallintajärjestelmiä
ma Salt, chef tms. kilpaileva nykyaikainen työkalu.
to Salt, chef tms. kilpaileva nykyaikainen työkalu.
w47 Eri käyttöjärjestelmien hallinta
ma Eri käyttöjärjestemiä
to Eri käyttöjärjestemiä
w48
ma Kertaus
to Kertaus
w49 Oman modulin viimeistelyä
ma Oman modulin viimeistelyä
to Oman modulin viimeistelyä
w50 Loppuhuipennus
ma Omien modulien esittely I
to Omien modulien esittely II
Osaamistavoitteet
Opintojakson suoritettuaan opiskelija:
– Osaa hallinnoida useita palvelimia keskitetysti
– Pystyy kuvailemaan palvelinten tavoitetilan hallintajärjestelmän ymmärtämällä tavalla
– Osaa versioida alustat toistettavalla tavalla
Arviointiperusteet
– Kotitehtävät 50 %
– Oma moduuli 50 %
Ohjaus
Kotitehtävistä annetaan palaute jokaisen opetuskerran alussa.
Opetuksessa teoria ja harjoitus vuorottelevat. Tero opettaa teorian kertomalla siitä jonkin käytännön esimerkin avulla koneella. Opiskelijat kokeilevat tätä käytännön harjoituksessa, Tero kiertää kommentoimassa ja opastamassa vaikeiden kohtien yli.
Palautetta
Palautteesi on todella arvokasta – se on tärkein tapa kehittää kurssia. Jotta saamme palautteellesi suurimman mahdollisen yleisön, palautetta kerätään kahteen paikkaan
1) Numeerinen palaute Haaga-Helian e-lomakkeelle
2) Vapaamuotoinen palaute tämän kurssisivun perään kommenttina
Mitä vain saa kirjoittaa, eikä kysymyksiä tarvitse toistaa. Tässä muutama idea, mihin kaipaisimme kommentteja
- Opitko kurssilla jotakin? Eli osaatko nyt jotain, mitä et osannut ennen kurssia?
- Onko kurssin sisältö hyödyllinen sinulle?
- Missä aiot hyödyntää kurssilla opittuja taitoja?
- Mikä oli parasta kurssilla?
- Mitä voisi vielä kehittää?
- Mitä mieltä oli esityspäivästä?
- Suosittelisitko kurssia? Kenelle (kollegoille, opiskelutovereille…)?
Kiitos!
Linkkejä
Kurssin kuvaus opinto-oppaassa – Palvelinten hallinta ict4tn022
Moodle – Palvelinten hallinta 1 (edellyttää kirjautumista)
1. Aja puppet one liner. g: “karvinen hello puppet”
Bonus: 2. kokeile describe ja resource (keksi omat esimerkit)
$ puppet describe file|less
$ puppet resource file /etc/passwd
$ puppet help
Vinkkejä: setxkbmap fi, less (space, b, q), ikkuna isoksi
2. Tee oma puppet-moduli
puppet$ pwd
/etc/puppet
puppet$ cd modules/
modules$ find hellotero/
hellotero/
hellotero/manifests
hellotero/manifests/init.pp
modules$ cat hellotero/manifests/init.pp
class hellotero {
file {“/tmp/helloteromodule”:
content => “Hello from module!\n”,
}
}
$ sudo puppet apply -e ‘class {hellotero:}’
Bonus: 3. Tee moduli, joka käyttää eri resursseja
package, file, service, user, exec
Vinkkejä: kun modulit etc/ alla, sudo puppet apply,
modulin (== modulin kansion, luokan) nimi pienellä yhteen,
pwd, ls, mieti tavoite
xubuntu@xubuntu:/etc/puppet/modules/sshd$ tree
.
├── manifests
│ └── init.pp
└── templates
└── sshd_config.erb
2 directories, 2 files
xubuntu@xubuntu:/etc/puppet/modules/sshd$ cat manifests/init.pp
class sshd {
package { ssh:
ensure => “installed”,
allowcdrom => “true”,
}
file { “/etc/ssh/sshd_config”:
content => template(“sshd/sshd_config.erb”),
notify => Service[“ssh”],
}
service { “ssh”:
ensure => “running”,
enable => “true”,
hasstatus => ‘false’,
status => ‘service ssh status|grep running’,
hasrestart => ‘false’,
restart => ‘service ssh restart’,
stop => ‘service ssh stop’,
start => ‘service ssh start’,
}
}
Muistiinpanoja paremmin sisennettynä.
1. Aja puppet one liner. g: "karvinen hello puppet"
Bonus: 2. kokeile describe ja resource (keksi omat esimerkit)
$ puppet describe file|less
$ puppet resource file /etc/passwd
$ puppet help
Vinkkejä: setxkbmap fi, less (space, b, q), ikkuna isoksi
2. Tee oma puppet-moduli
puppet$ pwd
/etc/puppet
puppet$ cd modules/
modules$ find hellotero/
hellotero/
hellotero/manifests
hellotero/manifests/init.pp
modules$ cat hellotero/manifests/init.pp
class hellotero {
file {"/tmp/helloteromodule":
content => "Hello from module!\n",
}
}
$ sudo puppet apply -e 'class {hellotero:}'
Bonus: 3. Tee moduli, joka käyttää eri resursseja
package, file, service, user, exec
Vinkkejä: kun modulit etc/ alla, sudo puppet apply,
modulin (== modulin kansion, luokan) nimi pienellä yhteen,
pwd, ls, mieti tavoite
xubuntu@xubuntu:/etc/puppet/modules/sshd$ tree
.
├── manifests
│ └── init.pp
└── templates
└── sshd_config.erb
2 directories, 2 files
xubuntu@xubuntu:/etc/puppet/modules/sshd$ cat manifests/init.pp
class sshd {
package { ssh:
ensure => "installed",
allowcdrom => "true",
}
file { "/etc/ssh/sshd_config":
content => template("sshd/sshd_config.erb"),
notify => Service["ssh"],
}
service { "ssh":
ensure => "running",
enable => "true",
hasstatus => 'false',
status => 'service ssh status|grep running',
hasrestart => 'false',
restart => 'service ssh restart',
stop => 'service ssh stop',
start => 'service ssh start',
}
}
h1. Tee Puppet-moduli, joka käyttää useampaa eri tyyppistä resurssia (esim. file ja package).
Bonus: asenna ja konfiguroi jokin palvelu package-file-service tyylillä.
Vinkkejä: Käytä ainakin tehtävässä ainakin kahta eri resurssia. Muista testata lopputulos. Usein käytettyjä resursseja ovat package, file, service, exec, user, group. Lisää tietoa resursseista ‘sudo puppet resource file /etc/passwd’, ‘puppet describe user’.
Läksyjen raportit voit julkaista missä haluat ja palauttaa Moodleen pelkän linkin. Palautus 24 h ennen seuraavan lähiopetuskerran alkua. Jos et uskalla tai muuten halua julkaista, weppisivulle salasanan taakse, kaikille sivuille sama salasana ja salasana jakoon kurssikavereille. Mutta totta kai kannattaa julkaista. Linkin saa laittaa Moodlen lisäksi kommentiksi tämän sivun perään, kunhan laittaa myös Moodleen.
Vinkkejä: Käytä ainakin kahta eri resurssia. Muista testata lopputulos. Usein käytettyjä resursseja ovat package, file, service, exec, user, group. Lisää tietoa resursseista ‘sudo puppet resource file /etc/passwd’, ‘puppet describe user’.
Bonus: asenna ja konfiguroi jokin palvelu package-file-service tyylillä.
Läksyjen raportit voit julkaista missä haluat ja palauttaa Moodleen pelkän linkin. Palautus 24 h ennen seuraavan lähiopetuskerran alkua. Jos et uskalla tai muuten halua julkaista, weppisivulle salasanan taakse, kaikille sivuille sama salasana ja salasana jakoon kurssikavereille. Mutta totta kai kannattaa julkaista. Linkin saa laittaa Moodlen lisäksi kommentiksi tämän sivun perään, kunhan laittaa myös Moodleen.
https://jarkkokoski.wordpress.com/palvelinlinux-1/
https://janimarkkula.wordpress.com/2016/10/25/palvelinten-hallinta-h1/
https://konstaolli.wordpress.com/2016/10/25/ict4tn022-1-kotitehtava-nro1/
https://jooelnurmi.wordpress.com/2016/10/25/palvelinten-hallinta-syksy-2016-h1/
https://henripernila.wordpress.com/2016/10/25/h1palvelinten-hallinta/
https://eerokolkki.wordpress.com/
Use service provider ‘systemd’ for nicer sshd module:
class ssh {
package { ssh:
ensure => installed,
allowcdrom => true,
}
file { "/etc/ssh/sshd_config":
content => template("ssh/sshd_config.erb"),
notify => Service[ssh],
}
service { ssh:
ensure => running,
enable => true,
provider => systemd,
}
}
https://selvinen.wordpress.com/2016/10/25/palvelinten-hallinta/
https://docs.google.com/document/d/16SZPzwcETsrWxSp4udWy1d2o0O11alHbIOVo7fEPa5k/edit?usp=sharing
https://leoluoto.wordpress.com/2016/10/26/palvelinten-hallinta-h1/
https://joonaleppalahti.wordpress.com/
class apache {
package {"apache2":
ensure => "installed",
allowcdrom => "true",
}
file {"/var/www/html/index.html":
content => "Welcome.\n",
}
file { '/etc/apache2/mods-enabled/userdir.conf':
ensure => 'link',
target => '../mods-available/userdir.conf',
notify => Service["apache2"],
}
file { '/etc/apache2/mods-enabled/userdir.load':
ensure => 'link',
target => '../mods-available/userdir.load',
notify => Service["apache2"],
}
service {"apache2":
ensure => "true",
enable => "true",
# provider => "systemd",
}
}
$ find -newermt '-2 min'
$ sudo puppet resource file /etc/apache2/mods-enabled/userdir.conf
Tämän manifestin joutuu ajamaan kahdesti, eli tässä versiossa järjestys ei ole automaattisesti ylhäältä alas.
h2. Asenna jokin palvelin package-file-server -tyyliin. Voit käyttää esimerkkikoodejani pohjana, mutta koita lisätä mukaan jotain omaa.
Bonus: Asenna Puppet herra-orja arkkitehtuuriin niin, että herra (puppetmaster) ja orja (aka agent, puppet) ovat samalla tietokoneella.
BonusBonus: kokeile Puppetia jossain toisessa käyttöjärjestelmässä, esimerkiksi Windowsissa.
PuppetMaster, eli herra ja orjat verkossa. Lue myös kommentit, joissa on uudempia (Ubuntu 16.04 Xenialiin sopivia) työtapoja.
http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04
h3. Anna orjalle määräyksiä master-slave arkkitehtuurilla (käytten puppetmaster:ia. Jos käytössäsi on vain yksi kone, voit asentaa herran ja orjan samalle koneelle. )
Bonus: vaihda oletustaustakuva. Kannattaa päällekirjoittaa tiedosto ja käyttää file-resurssia.
Bonus & kilpailu: kuka kurssilainen onnistuu hallitsemaan suurinta määrää orjia puppetilla? Raportoi.
https://jarkkokoski.wordpress.com/palvelinlinux-3/
Automaatiota ja kilpailua
https://joonaleppalahti.wordpress.com/2016/10/31/palvelinten-hallinta-harjoitus-3/
https://jarkkokoski.wordpress.com/palvelinlinux-2/
Joonalla näkyy olevan 12 orjaa Puppetilla hallittuna. Hyvä Joona, olet johdossa!
https://joonaleppalahti.wordpress.com/2016/10/31/palvelinten-hallinta-harjoitus-3/
h4. Tee moduli, joka tekee suosikkiasetuksesi: asentaa tärkeimpiä ohjelmia ja säätää niiden asetuksia. Voit esimerkiksi ajaa tämän modulin tullessasi labraan.
ps. Kilpailu jatkuu, tällä hetkellä 12 orjaa kärjessä.
Sekalaisia vinkkejä:
Helppoja asennettavia ovat vaikkapa ohjelmat (install multiple packages).
Asetuksia voi muuttaa vaikkapa asentamalla ssh-demonin ja korvaamalla /etc/ssh/sshd_config -tiedoston toisella. Siitähän voi vaihtaa esimerkiksi portin.
Ohjelman foo asetukset ovat usein /etc/foo*, /home/tero/.foo* tai /home/tero/.config/**/foo*. Ensisijaisesti kannattaa laittaa yhteisesti /etc/ alle. Uusien käyttäjien (‘sudo adduser tero’) kotihakemistoon kopioidaan automaattisesti tiedostot /etc/skel/ alta.
Tarvittaessa vanha käyttäjä voi kopioida esimerkkiasetukset omiensa päälle ‘cp -vr /etc/skel/.???* /etc/skel/* $HOME/’ (komento ulkomuistista).
Näin voit liittää viimeiset rivit muutamista lokeista raporttiin
sudo tail --lines=100 /home/*/.bash_history /var/log/auth.log /var/log/apache2/*.log /var/log/syslog /etc/lsb-release>log-picks-$(date +'%Y-%m-%d_%H%M').txt
h5. Tee moduli git-varastoon ja kirjoita raportti sinne MarkDownilla.
Update: Bonustehtävänä voit kokeilla kloonata uusi modulisi vasta bootatulle live-USB:lle.
Vinkkejä: Helpointa on julkaista GitHubissa.
Markdownia voi kirjoittaa laittamalle md-päätteen (README.md). Tyhjä rivi tekee kappalejaon. Kaksi risuaitaa tekee otsikon (heading 2).
Vaikka kirjoitat raportteja GitHubiin, säilytä silti vanha blogisi.
Vinkkejä, lue nämä ennenkuin aloitat:
Publish Your Project with GitHub
http://terokarvinen.com/2016/publish-your-project-with-github
$ cat /usr/local/bin/reset-to-default-settings
#!/bin/bash
echo “You are about to reset your user settings to company defaults. ”
echo “Press ctrl-C to cancel, or y to overwrite each file. ”
cp -riv /etc/skel/.??* $HOME
echo “Done.”
h6. Ratkaise osa jonkin Linux-kurssini arvioitavasta harjoituksesta. Pyri ratkaisemaan ainakin kaksi isompaa kohtaa.
Bonus: ohjaa Windows-orjaa Puppetilla
https://www.google.fi/search?q=windows+puppet+download
https://docs.puppet.com/puppet/latest/reference/install_windows.html#msi-properties
https://downloads.puppetlabs.com/windows/
$ grep -v ^# /etc/default/isc-dhcp-server |grep -v '^$'
INTERFACES="enp2s0"
$ cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
authoritative; # BE CAREFUL
next-server 172.28.172.211; # TFTP server ip address
filename "pxelinux.0"; # name of bootloader image
subnet 172.28.0.0 netmask 255.255.0.0 {
host terotestaa {
hardware ethernet 78:ac:c0:ba:7c:f7;
fixed-address 172.28.1.235;
option subnet-mask 255.255.0.0;
option routers 172.28.1.254;
option domain-name-servers 8.8.8.8, 172.28.1.67, 172.28.1.69;
option domain-name "tielab.haaga-helia.fi";
}
}
xubuntu@xubuntu:/etc/dhcp$ sudo service isc-dhcp-server restart
https://terokarvinen.com/2008/automatic-ip-configuration-with-dhcp-server-on-ubuntu-4
Aihe moduulille: omaan käyttööni sopivan kehitysympäristön (kirjastoineen/plugineineen) asentaminen ja konfigurointi (netbeans vähintään, luultavasti JBoss jne).
h7. Varaa oma aiheesi kommentilla tämän viestin perään.
(Laita myös Moodleen linkki, jotta pysyn laskuissa, ketkä ovat varanneet aiheen).
Oma moduli, tai kokonaisen koneen tai verkon konfiguraatio. Voi olla jokin työ- tai hupiprojekti, jonka tarvitset muutenkin.
Saa tehdä myös Windowsilla. Itse asiassa joku voisi hyvin tehdä Windows 10 / Core tms. palvelimia konfiguroituna: AD, Exchange…
Puppet moduuli: LAMP asennus ja käyttöönotto.
Puppet moduuli windowskille ois tarkoituksena yrittää saada aikaan. Moduuli joka tarkistaa päivitykset, asentaa usein käyttämiäni ohjelmia ja ehkä pyörättää ne kertaalleen.
Moduuli: Asentaa tekstinkäsittelyyn tarvittavat ohjelmat, ja mahdollistaa tekstien julkaisun käyttäjän kotisivuilla ja personalisoi työaseman taustakuvalla.
puppet moduuli java kehitysympärisön asennusta varten
Jatkan lamp moduulin hiomista eheäksi. (Php ja mysql en ole saanut toimimaan)
Jatkan lamp moduulin hiomista eheäksi. (Php ja mysql en ole saanut toimimaan.)
Moduuli asentaa tämän hetken kurssieni tehtävien suorittamiseen vaativat ohjelmat, jotta voisin minimoida Windowsin käytön hitaaksi käyneellä läppärilläni / tehdä tehtäviä missä vain. Ainakin Eclipse(+Java), MySQL, Sublime Text tai vastaava ja Pinta unohtamatta tietenkään distraktioita (Spotify jne.) Moduuli myös säätää ohjelmien oletusasetuksia ja joitakin käytettävyyden kannalta tärkeitä asetuksia.
Moduuli joka asentaa firefoxiin addblockin lisää sivuja suosikkeihin, vaihtaa kotisivun. Asentaa vlc:n, vaihtaa työpöydän taustakuvaa ja asentaaa libre officen.
Muutamia moduuleja jotka asentavat verkkokehitysympäristön muutamilla käytetyillä kielillä, SSH (asennus ja porttien muutos), palomuurin käynnistys ja tarvittavat reiät. Tämän lisäksi moduuleissa tulee olemaan muita Linux-asennuksen käyttöönottoon liittyviä asetuksia, sekä jos aikaa jää, niin yritän keksiä vielä jotain järkevää näiden lisäksi.
Moduuli: OpenVPN ohjelman asentaminen ja alustus
Moduuli: Tarvittavien työkalujen asennus ja konfigurointi ammattivalokuvauksen tarpeisiin.
Moduuli joka asentaa windows palvelimen ja perus konfiguraatiot
VOIP ohjelman asennus ja konfigurointi neuvottelu tarpeisiin ja etäkommunikointiin.
Webserverin pystytys ja turvakonffaus käyttövalmiiseen tilaan sis. WAFin asennuksen OWASP CRS -rulesetillä. Lisäksi MySQL:n asennus niin että kannat tulee varmuuskopioista ja on käyttövalmis.
Tarkennus:
Webserverin pystytys ja turvakonffaus käyttövalmiiseen tilaan sis. web application firewallin asennuksen OWASP CRS -rulesetillä. Lisäksi mukana tulee välineitä, joilla voi demota haavoittuvan web-sovelluksen suojausta WAFilla. Tarkoitus on siis kehitellä osa security baselinea Puppet-moduulin muodossa, aihepiirinä webserveri.
Verkkobootilla xubuntu koneelle ja siihen virtuaalikoneita puppetilla
$ sudo apt-get -y install tftp-hpa tftpd-hpa
$ cat /var/lib/tftpboot/hello
$ cd
$ tftp localhost -c get hello
$ cat hello
See you at TeroKarvinen.com
http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
h8. Tee ensimmäinen versio omasta modulista.
Kilpailu (vapaaehtoinen): kuka hallitsee suurinta määrää fyysisiä koneita Puppetilla?
https://downloads.puppetlabs.com/windows/puppet-3.8.6-1-x64.msi
Teen moduulini windows 10 käyttöjärjestelmälle ja yritän saada joitain perusominaisuuksia toimimaan
Moduuli joka asentaa LAMPIN, sekä kylkeen VOIP-palvelu sekä Gedit joka helpottaa HTML:än kirjoittamista.
Moduuli, joka asentaa itselle tärkeimmät ohjelmat eli LAMP, tekstinkäsittelyohjelma, vlc, gedit jne. Tähän voi tulla vielä lisäyksiä.
Tästä ei tullut yhtään mitään. Uusi moduuli ilmoitetaan tämän kommentin vastaukseksi.
Tässä aiheeni hieman myöhässä:
Teen moduulin joka asentaa ohjelmistokehittäjän pinon ja asettaa yleisimmät ominaisuudet jo valmiiksi kehittäjän käyttöön. Pinon tarkempi kokoonpano tarkentuu vielä moduulia tehdessä mutta sisältää työkalua ainakin seuraavien toteuttamiseen:
– Verkkosivujen toteutus
– Tietokannan luonti
– Java – kehitystyökalu
– Yleinen ohjelmointiin soveltuva tekstityökalu
– + muita myöhemmin tarkentuvia tarpeellisia ohjelmia
Joonan vinkit Ubuntu 16.04 xenial automaattiseen asennukseen (pxe+preseed):
https://joonaleppalahti.wordpress.com/2016/11/18/palvelinten-hallinta-harjoitus-8/
Nopeampaa asennusta:
$ head preseed.cfg
d-i mirror/http/proxy string http://172.28.172.211:8000/
Lisätietoja:
http://terokarvinen.com/2016/cache-ubuntu-deb-packages-squid-deb-proxy
d-i preseed/late_command string tftp 172.28.172.211 -c get postinstall.sh && sh postinstall.sh
h9. Asenna Linux verkon yli. Tyhjään koneeseen, käsin koskematta.
Tehtävän saa tehdä parityönä. Muista merkitä tekijät ja kaikki lähteet linkkeineen myös GitHubiin.
Laita liitteeksi nämä tiedot sekä asennetulta koneelta että palvelimelta:
sudo tail --lines=100 /home/*/.bash_history /var/log/auth.log /var/log/apache2/*.log /var/log/syslog /etc/lsb-release>log-picks-$(date +'%Y-%m-%d_%H%M').txt
Bonus: konfiguroi kone orjaksi puppetmasterille ja säädä sitä Puppetilla.
Vaikea vapaaehtoinen bonusbonus-tehtävä: tee samanlainen verkkobootti kuin labran Windows-asennus.
Some untested code:
d-i preseed/late_command string tftp 172.28.172.211 -c get postinstall.sh && sh postinstall.sh
#!/bin/sh
# Make this to puppet slave - Copyright 2016 Tero Karvinen http://TeroKarvinen.com
echo "$0 started"
sudo service puppet stop
cat < /etc/puppet/puppet.conf
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/run/puppet
factpath=$vardir/lib/facter
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
[agent]
server = teromaster.local
EOF
sudo rm -r /var/lib/puppet/ssl/
sudo service puppet start
sudo service puppet reload
echo "$0: Done. "
Sivuston palvelimen siirto, eli moduuli asentaa tarvittavat ohjelmat (LAMP, laravel – PHP framework) ja siirtää koodit.
Oma moduuli:
Arduino IDE:n asennus, sekä teeman muokkaaminen pimeämmäksi ja miellyttävämmäksi silmille.
Linkki harjoitus 9:n raporttiin
Linkki tehtävään H9 https://jorilaine.wordpress.com/2016/11/23/h9/
Name based virtual hosting
http://terokarvinen.com/otherauthors/eliimatt-wordpress-org-puppet-liimatta-2013/eliimatt.wordpress.com/tag/name-based-virtual-host/index.html
https://httpd.apache.org/docs/2.4/vhosts/name-based.html
Defined types
https://docs.puppet.com/puppet/3.8/reference/lang_defined_types.html
ServerName www.monkeyhats.com
ServerAlias monkeyhats.com
DocumentRoot /home/xubuntu/public_html/
Require all granted
h10. Tyypit ja parametrit. Tee omat modulit, jotka käyttävät määriteltyä tyyppiä (defined type) ja parametroitua luokkaa (parametrized class).
Ota tyhjä muistitikku mukaan Windowsin kokeilua varten. Jos haluat, voit ottaa myös tärkeinä pitämiesi Windows-ohjelmien asennuspaketteja.
h11. Hello Windows Puppet World. Asenna Puppet Windowsiin ja tee sillä hei maailma.
Voit tehdä hei maailman joko paikallisesti tai herra-orja arkkitehtuurilla.
Muista kuvailla asennus ja ympäristö tarkasti. Windowsissa tehdään paljon graafisessa käyttöliittymässä, jolloin ruutukaappauksia tarvitaan paljon. Windowsista pitää myös tietää täsmällinen versio ja bittisyys.
Tästä vinkkejä Puppetin käyttöön Windowsissa:
http://terokarvinen.com/2016/windows-10-as-a-puppet-slave-for-ubuntu-16-04-master
http://terokarvinen.com/2016/automatically-install-a-list-of-software-to-windows-chocolatey-puppet-provider
Vapaaehtoinen bonus: Active Directory. Autentikoi työasema AD:lla, säädä palvelin ja asiakas Puppetilla.
Vapaaehtoinen bonus: Windowsin käsikirjoitettu asennus ja siihen Puppet automaattisesti orjaksi omalle Puppetmasterille.
h11: Puppetin asennus Win10:een ja testiajo:
https://docs.google.com/document/d/1-4bUGC-ZllOOgaGvJiWcX1wKx2WuXfNC1q3jQDm6FMw/edit#
h12. Windowsin hallintaa. Tee kohta a ja jokin kohdista b – z. Kaikki kohdat tehdään Puppetilla.
a) Asenna ohjelmia Windowsiin package-resurssilla ja chocolatey providerilla. Täältä löytyy Gedit, Firefox, LibreOffice, VLC, sysinternals…
b) Asenna GoldenDict ja sille sanakirjat valmiiksi
c) Asenna MSI-paketti
d) Asenna jokin palvelin
e) Asenna joitakin ohjelmia DreamSparkista
f) Asenna MS Office
g) Asenna Adobe Creative Suite
h) (vaikeampi) Asenna active directory orja ja herra
https://vesalinux.wordpress.com/2016/11/30/h11-puppet-on-windows/
Vagrant.configure(2) do |config|
config.vm.box = “mypackers/windows2016core”
config.vm.communicator = “none”
end
h13. Kokeile jotakin puppetlabs/windows modulia. Jotain muuta kuin chocolatey provider, jota käytimme jo aiemmin.
wget Windows Coressa:
> powershell.exe
PS> wget -UseBasicParsing https://downloads.puppetlabs.com/windows/puppet-3.8.5-1-x64.msi
Ja vielä -OutFile puppetinst.exe
> powershell.exe
PS> wget -UseBasicParsing https://downloads.puppetlabs.com/windows/puppet-3.8.5-1-x64.msi -OutFile puppetinst.msi
PS> puppetinst.msi
Powershell dir show hidden files
PS> dir -Force
Edit a text file
PS> notepad.exe puppet.conf
Program Files/PuppetLabs/Puppet/bin (path from memory)
> puppet.bat agent -tdv
Teen sittenkin Win10 – linuxille, puppet orja – puppet master yhteydellä moduulin win10 ympäristöön. Tavoitteena on asentaa “perus ohjelmat” – libreoffice, kunnollinen selain, VLC, skype ja yms. tämän lisäksi taustakuva vaihdettaisiin.
Vaihdan Windows moduulin, linux moduuliin joka asettaa xubuntu työpöytäympäristön asetukset ja taustakuvat, yms.
aiheen tarkennus asennan windowssille AD:n(active Directory) ja sinne kaksi konetta.
Kaikki kotitehtävät ja oma moduli. Palauta linkki sivuun, jolta ne kaikki löytyvät.
Moodlen palautuslomake (edellyttää kirjautumista):
http://hhmoodle.haaga-helia.fi/mod/assign/view.php?id=607025
puppet exec resource for setting the mysql password.
exec {‘set-mysql-pw’:
command => “/usr/bin/mysqladmin -u root password $mysqlpw”,
require => Service[“mysql”],
}
replace $mysqlpw with the password you want.
NOTE: this exec only works on the first apply
you can read more about the error it gives on second try from my blog(near the end of the report):
https://vesalinux.wordpress.com/2016/11/06/h4-installation-module-for-some-fav-programs-and-their-settings/
My own module:
https://vesalinux.wordpress.com/2016/12/11/updated-version-of-my-own-puppet-module/
It is meant to install java development tools and some other programs onto a windows slave.
Puppet, PXE ja Vagrant konfiguraatio
Asentaa verkkobootilla työaseman ja sille Puppetin sekä Vagrantin avulla virtuaalikoneita.
https://joonaleppalahti.wordpress.com/2016/12/11/pupxegrant-puppet-pxe-ja-vagrant-konfiguraatio/
Oma moduuli ja jutun juoni: https://docs.google.com/document/d/1g8b3hbAKTTQhXVq6D_DQfUzSIK8MRAsIN37ziIZH530/edit?usp=sharing
Oma moduulini joa conffaa ja asentaa Chromen. https://konstaolli.wordpress.com/2016/12/11/oma-moduuli/
Moduuli jossa myös mysql salasanan vaihtaminen site.pp :ssä https://github.com/jk-github/asennawordpress
Kurssi oli mielestäni erittäin onnistunut ja rutkasti tietoa tuli taas matkaan kurssin päätteeksi. Mielestäni läsnäolo kurssin lähiopetuksessa on erittäin arvokasta ja jopa välttämätöntä jotta asiat jäävät päähän ja perustat ovat kunnossa. Kurssi oli haastava, mutta kun kurssin lopussa huomaa, että on sisäistänyt asioita ja huomaa oman osaamisen tuloksen se on myös hyvin palkitsevaa.
tykkäsin kurssin toiminnasta ja erityisesti ilmapiiristä vaikkakin osa tehtävistä tuntui aivan turhankin haastavilta. kurssi ihan hyvä tälläisenään tosin kotitehtävät jotka osuivat keskelle viikkoa tuottivat vaikeuksia aikataulujen järjestelemiseen.
En itse ainakaan tiennyt oikeastaan mitään kurssin sisällöstä etukäteen, eli kaikki oli uutta ja upeaa. Kurssin aihe oli itselle todella kiinnostava, ja se antoi motivaatiota opiskeluun. Tosin tiukka aikataulu yhdessä jokseenkin aikaavievien läksyjen kanssa teki läksyjen tekemisen aikataulun sisään välillä mahdottomaksi. Kurssin oppeja kyllä varmasti tulen käyttämään työelämässä ja miksei kanssa vapaa-ajalla, jos tilanne mahdollistaa sen.
Opin käyttämään Puppettia.
Onko kurssin sisältö hyödyllinen sinulle?
Todella hyödyllinen
Missä aiot hyödyntää kurssilla opittuja taitoja?
Työelämässä ja arkipäivän asioissa omalla tietokoneellani
Mikä oli parasta kurssilla?
Uuudet paketinhallinta työkalut (chocolatey).
Mitä voisi vielä kehittää?
Ehkä enemmän voisi käydä peruskomentoja (before, after, require).
Mitä mieltä oli esityspäivästä?
Mielenkintoisia esityksiä opin miltei jokaisesta jotain uutta.
Suosittelisitko kurssia? Kenelle (kollegoille, opiskelutovereille…)?
Opiskelijatovereille
Mielestäni kurssi oli hyvin toteutettu. Ainoa kritiikki mitä keksin oli se että kotitehtävää tuli aika paljon, mutta toisaalta se myös tuki oppimista. Kurssi oli ajoitettu hyvin linux palvelimena kurssin jälkeen, joten pääsin syventämään siellä oppimiani asioita. Välillä kurssilla käytiin joitain asioita todella kovaa tahtia läpi, mutta sitä on aika vaikea välttää kurssin laajuuden vuoksi. Voin sanoa että oli yksi parhaista kursseista, johon olen tähän mennessä osallistunut ja aihepiiri oli todella mielenkiintoinen.
Kurssi oli hyvää jatkoa syksyllä aiemmin olleelle Linux palvelimet-kurssille, ja täydensi omaa osaamistani erittäin paljon. Varsinkin puppetin osaamisesta uskon olevan paljon hyötyä niin vapaa-ajalla kuin työelämässäkin. Oli myös mielenkiintoista nähdä miten puppet toimii Windowsilla.
Parasta kurssilla oli aina kun onnistui tehtävien teossa, ja pystyi huomaamaan kuinka opitun asian pystyy myös toteuttaamaan käytännössä, eikä oppiminen jää vain teorian tasolle.
Esityspäivä oli mielestäni positiivinen kokemus, koska oli kiva nähdä mitä kaikkea muut ovat tehneet, ja sen miten erilaisia moduleja pystyy toteuttamaan pelkästään tämän kurssin pohjalta. Muiden moduleista myös oppi paljon, ja sai ideoita itselleen.
Suosittelisin kurssia kaikille, jotka ovat aiheesta kiinnostuneita.
Opin kurssilla “herättämään” tietokoneita verkon yli ja asentamaan ja konfiguroimaan niitä ilman “fyysistä kosketusta”. Lisäksi opin käyttämään Githubia versionhallintaan
Uskoisin, että kurssista on jatkossa hyötyä minulle jos satun työskentelemään palvelinten parissa ja saattaapa taidoista olla jotain hyötyä vapaa-aikanakin.
Kurssilla parasta on uuden oppiminen. Vaikka kurssi tuntuukin hetkittäin erittäin työläältä niin työstään saa varmasti palkinnon. Tämä näkyykin hyvin esityspäivinä jolloin opiskelijat esittelevät omat moduulinsa. Jos jotain kehitettävää haluaa löytää niin ehdottaisin, että jatkossa kurssin lähiopetus järjestetään yhtenä pitkänä päivänä viikossa. Näin näyttikin olevan ainakin kevään 2017 lukujärjestyksissä.
Suosittelen kurssia henkilöille joilla on työtä pelkäämätön asenne. Kurssilla on nähtävä vaivaa kotitehtävien eteen jotta ei putoa kärryiltä. Vastineena saa sitten varmasti hyvät taidot.
course feedback:
– I learned how to use puppet to automate configuration on computer and also netboot installation of linux
– I found the course contents to be very useful to myself and I will use the things I learned at least at home and possibly at work also.
– best things about the course was well learning about puppet and getting to test is properly.
– I think for future it would be better to have all the classes on the same day rather than dividing it to 2 separate days.
– I recommend this course to everyone that regularly configures computers or installs them.
Tämä oli hyödyllinen ja käytännönläheinen kurssi eikä osallistumista tarvitse katua. Alussa en tiennyt Puppetista juuri muuta kuin että kyse on lopputilan konfiguroinnista jotenkin, mutta mitään taitoja ei ollut. Nyt luulisin osaavani tehdä Puppetilla asioita, joskin lisäoppimista on vielä paljon. Kehityspuolelle mietin että pitkin kurssia olisi ollut hyödyllistä kelata jonkinlaista materiaalia joka olisi kurssin sivujen ja Puppet-kirjan väliltä, jossa keskeiset asiat selviäisi tiiviissä muodossa ja jossa perinteiset epäselvyydet olisi selitetty niin ettei niihin jäisi pitkäksi aikaa jumiin. Tyyliin 10…20 sivua tai pari sivua per luento.
Hyvä menininki! Kiitos!
– Tero
Tykkäsin kurssista erittäin paljon ainoat rusinat pullassa oli kotitehtävien suuri määrä kun kummaltakin toteutuskerralta annettiin kotitehtävä oli välillä vaikea löytää viikosta aika jolloin saisi tehtävän tehtyä ajallaan. Jos toteutuskertoja olisi vain yksi viikossa ja tehtävät sitten laajempia toimisi kotitehtäväsysteemi oikein hyvin. Kotitehtävien käsittely tuntui myös välillä vievän suhteettoman paljon aikaa tunnin varsinaiselta aiheelta. Perusteellinen läpikäynti on hyvä asia mutta kotitehtävien suuren määrn takia jouduttiin niiden läpikäyntiinkin kuluttamaan paljon aikaa. Muutenkin tuntui että tunneilla tuppasi loppumaan aika kesken. Jos olisi yksi pidempi opetuskerta olisi helpompi panetutua yhteen asiaan kunnolla ja säästettäisiin aikaa kun samoja asioita ei tarvitsisi tehdä uudestaan tehtävän jatkamiseksi (tosin tämä ongelma oli lähinnä windowsin kanssa).
Kurssi toimi ainakin minulle todella hyvin kun kaikkia opetettuja juttuja pääsi testaamaan ja niistä tehtiin kotitehtävä niin kurssin asia tarttuivat erittäin hyvin muistiin. Tuntui myös että kurssin aikana mainittiin aina miten kutakin tekniikka voi käyttää työelämässä. Lähdeaineistoa oli tarjolla oikein hyvin.
Kurssin lopettava esityspäivä oli myös hyvin mielenkiintoinen kun sai nähdä mitä muut olivat tehneet. Esityspäivän ainoa ongelma oli jotkut esitykset joissa käsitelmtiin hyvin yksinkertaisia tai toisiaan toistavia aiheita, joka teki näistä esityksistä melko tylsiä.
Ennen kurssia en osannut käyttää mitään keskitetyn hallinnan järjestelmää, mutta nyt pystyn Puppetin avulla konfiguroimaan kokonaisia järjestelmiä. Kurssin sisältö on todella käytännönläheistä ja opittua voi suoraan hyödyntää työelämässä. Omien moduulien rakentaminen oli hyvä tehtävä, sillä niiden avulla voi keskittyä eri aiheisiin kuin tunnilla ja näyttää osaamistaan. Omien moduulien esitteleminen oli myös hyvä lopetus kurssille. Suosittelisin kurssia keskitetystä hallinnasta, tai yleensäkin automaatiosta kiinnostuneille.
Tutuiksi tulivat myös verkkobootti, provisiointi ja versionhallinta Gitillä. Pienenä miinuksena se että kotitehtävissä oli melko paljon tekemistä, sillä niitä tuli kaksi kertaa viikossa.
Oma moduulini asentaa itselleni tarvittavat ohjelmat RAW kuvien käsittelyä varten ja automaatti asentaa Ublock originin Firefoxille – https://selvinen.wordpress.com/2016/12/11/oma-moduuli/
Opitko kurssilla jotakin? Eli osaatko nyt jotain, mitä et osannut ennen kurssia?
Uusia opittuja asioita: Puppet, Herra/Orja, PXE ja parempi käsitys keskitetystä hallinnasta.
Onko kurssin sisältö hyödyllinen sinulle?
On, mielestäni se jatkaa fiksusti edellisen kurssin (Linux palvelimet ict4tn021-1) aihetta ja syventää sitä mm. jo opittujen asioiden automatisoinnilla. Missään vaiheessa ei tullut ns. raja vastaan että oltasiin menty liian vaikeaan tai kerrattu vain aikasempaa kurssia, jolloin fiilis olisi ollut “tämä on turhaa”. Kumpaakaan fiilistä en itse kokenut.
Missä aiot hyödyntää kurssilla opittuja taitoja?
Aioin jatkaa kamera moduulia sekä puppetin käyttöä – lisäksi tarkoitus olisi käyttää PXEtä. Lisäksi Git tulee olemaan kovassa käytössä.
Mikä oli parasta kurssilla?
Oppimisen ja onnistumisen tunne. Mielestäni on siistiä, kun itse tajuaa sen “hei mä ymmärrän ja osaan”. Lisäksi sekä kotona ja koulussa on istunut ja miettinyt iän ikuista “miksi tää ei toimi?” ja lopulta keksinyt, se onnistumisen tunne on joka kerta erittäin hieno. Muutenkin koulussa välillä tuntuu, että asioita vain kerrataan tai ei uskalleta opettaa, tällä kurssilla tietää saaneensa uutta tietoa.
Bonuksena on ollut se, että kurssi ohjelmaa ei ole seurattu orjallisesti vaan, mikäli on tullut asioita jotka voisi/tulisi/pitää käydä läpi, ne on käyty. Tästä on saatu enemmän hyötyä irti vrt. perinteiseen “ei oo aikaa selittää tätä tärkeetä juttua, joka teidän pitäisi tietää”.
Mitä voisi vielä kehittää?
Kun verrataan kurssia aikaisempaan 8h per päivä toteutustyyliin, jos ei ole mahdollista samaan järjestelyyn niin tämän kurssin 3+3h toteutuksen voisi hoitaa seuraavanlaisesti.
Ma – Läksyjen tarkistus ja uuden aiheen pohjustusta/vanhan aiheen lisäinfoa, sen mukaan miten aikaa on jäänyt läksyistä.
To – Pelkästään uutta aihetta ja viikon läksyt.
Nyt kurssilla kävi valitettavasti niin, että joko läksyjen tarkistukseen tai uuteen aiheeseen ei riittänyt aika. Jommasta kummasta jouduttiin karsimaan, hyvänä esimerkkinä vhost.
Ylläoleva ma ja to ehdotuksen idea on se, että aina torstaisin opettaja voisi ns. “paahtaa täysillä” uutta aihetta sen 3h ja pyrkiä varmistamaan, että saa tarpeeksi hyvin näytettyä ja selitettyä aihetta oppilaille. Maanantaina olisi sitten se 3h aikaa tarkistaa läksyjä ja mikäli aikaa jäisi, voisi joko vastailla/näyttää miten ongelmat ratkaistaan ja jne. tai siirtyä uuden aiheen pohjustukseen – teoria ja käytäntö.
Tarkoitus tällä kehitysidealla ei ole vähentää läksyjä vaan parantaa oppimiskokemusta. Kun vertaan tätä 3+3h versiota 8h kurssiin – opettajalla tuli aina kiire jompaan kumpaan suuntaan. Samalla mielestäni jos toinen kerta on kokonaan uusi aihe, niin läksykin voi olla 8h tuntien laajuinen. Kun esim. 8hssa ei kokoaikaa ollut pelkkää uutta aihetta. Koko päivän linuxissa kuitenkin kerkeää rauhassa näyttää asiat kunnolla.
Oman moduulin tekemiseen olisin toivonut enemmän ohjausta/status kyselyä. Nyt tilanne oli se, että jokainen tiesi että sellainen pitäisi tehdä, mutta se käytännössä “jätettiin” syrjään kunnes muut asiat (mm. kotitehtävät) hoidettiin ensin alta. Parannuksena, olisi voinut olla jotain preview tilanteita ja enemmän suunnan näyttämistä. Uskon, että monella olisi tullut uusia ideoita/tekniikoita/yksilöllisiä ratkaisuja.
Lisäksi olisin toivonut, että opettajalta olisi löytynyt esimerkkilista aiheista. LAMP- stackeja turhan monta, uskon että monella tilanteeksi muodostui, että eivät oikeen tienneet mitä kannattaisi tehdä. Jos olisi ollut valmislista, josta valita tarpeentullen – tällöin erilaisia moduleita, opettaja pysyisi paremmin kärryillä ja ohjaus ehkä helpompaa.
Mitä mieltä oli esityspäivästä?
Jos unohdetaan tykin toiminta, niin homma toimi. Henkilökohtaisesti kun esityksissä oli todella monta LAMP – stackia, niin yksilöllisen palautteen kirjoittaminen muuttuu todella haastavaksi. En kuitenkaan haluaisi laittaa vain “ihan jees” – kommenttia.
Unohdin pyytää näkyviin tunnilla näytetyt ohjeet esityksestä. Uskon, että olisi auttanut useampaa oppilasta.
Suosittelisitko kurssia? Kenelle (kollegoille, opiskelutovereille…)?
Kurssia en ole vielä suositellut kenellekään, koska ystäväni eivät ole kiinnostuneet aiheesta.
Tosin olen suositellut opettajaa heille.