Aikataulu – Palvelinten hallinta ict4tn022 4-ti 5-ke 5 – loppukevät 2018 5p

Control 10 computers. Or 100. Or 1000. Just write what you want (idempotency). Control almost everything with one system (single source of truth). In plain text (infrastructure as code, versionable).

My current research area is configuration management systems: I gave an invited speech in IEEE ICIM, I’ve recently published a conference paper and gave some tailored teaching on this.

Opintojakson suoritettuaan opiskelija:

  • Osaa hallita palvelimia kuvailemalla tavoitetilan (idempotenssi)
  • Osaa tehdä asetukset pelkkänä tekstinä ja versioitavasti (infrastruktuuri koodina)
  • Pystyy tekemään tavalliset ylläpitotoimet valitulla työkalulla Saltilla (yksi totuus)

Esitiedot

Esitiedot (kertaa nämä): Linuxin komennot, apt, demonien hallinta (esim Apache), tiedostojärjestelmän rakenne (etc, var…).

Alustava aikataulu

Toteutus 4-tiistai 11:00 ja 5-keskiviikko 08:00. Kaikki opetus labrassa 5004. Kurssi kestää 8 viikkoa, 2018 loppukevään eli 5. periodin.

Tämä alustava aikataulu elää kurssin aikana.

1. Hello Salt! Master-slave, pull -arkkitehtuuri. Komentojen etäsuoritus (cmd.run, pkg.install). Tietojen kerääminen orjista (grains.items). Idempotentti konfiguraatio (foo.sls, top.sls). Esimerkkejä tiloista (file.managed, pkg.installed).  w13

Luettavaa: Karvinen 2018: Salt Quickstart – Salt Stack Master and Slave on Ubuntu Linux, Salt States – I Want My Computers Like This, Run Salt SLS File Locally, Quick Fix for Useless Salt Warning. Salt official documentation: Salt Getting Started Guide-kirjasta luvut Understanding SaltStack ja SaltStack Fundamentals ja SaltStack Configuration Management: Functions.

2. Package-file-server. How to install and configure daemons, such as Apache web server or MySQL database management system. pkg.installed, file.managed, service.running, watch.

Luettavaa: Karvinen 2018: Pkg-File-Service – Control Daemons with Salt – Change SSH Server Port, Apache User Homepages Automatically – Salt Package-File-Service Example. [Official] Salt Tutorials: How Do I Use Salt States?, States tutorial, part 1 – Basic Usage, Salt Best Practices.

3. Muotit. Tiedoston tekeminen orjalle muotista. SLS-tilan tekeminen muotista. Jinja. for-in-endfor. {% for terosVariable in ['foo', 'bar'] %}. {{ terosVariable }}. Apache Name Based Virtual Hosting.

4. Pilarit. Kertaus. Salaisuudet /srv/pillar/. Kaikki orjat näkevät /srv/salt/. SLS-tilan generointi jinjalla vs orjan tiedoston tekeminen muotista. ‘sudo salt-call –local sys.state_doc’ ‘sudo salt state.show_sls hellotero –out yaml’. ‘sudo salt ‘*’ pillar.items’. {{ pillar.get(‘port’, 22) }}.

Karvinen 2018: Secrets in Salt Pillars. Official Salt Get Started: SaltStack Configuration Management: Pillar. Official Salt Documentation: Pillar Walkthrough

5. Versionhallinta. Git. git init hellotero; git clone; git add .; git commit; git pull; git push; GitHub. Forking. Fork: terokarvinen/sirotin.

Karvinen 2016: Publish Your Project with GitHub

Luettavaa: Karvinen 2018: SaltStack Get Started [official tutorial]: SaltStack Configuration Management: Jinja. Manage files.   Make a Million of Those – Jinja Templating Salt States.  Karvinen 2018: Name Based Virtual Hosts on Apache – Multiple Websites to Single IP Address.

(Luettavaa jollekin myöhemälle tapaamiskerralle: Karvinen 2015: Preseed MySQL Server Password with Salt Stack. Salt module reference: salt.states.debconfmod.)

Salt Docs Offline

Official Salt Documentation is available on GitHub. Download salt documentation as zip, docs are in doc/. For example: How Do I Use Salt States?

Salt documentation is also available in package management. This version is older than the one on GitHub and SaltStack homepage, because it’s the same version as salt in the default package repository. ‘sudo apt-get -y install salt-doc; firefox /usr/share/doc/salt/html/index.html’.

Linkit

4-tiistai Moodle (edellyttää kirjautumista)

5-keskiviikon Moodle (edellyttää kirjautumista)

Läksyt

Läksyt tehdään ja raportoidaan kunkin tunnin jälkeen. Tehtävät saa julkaista missä haluaa ja palauttaa linkin Moodleen.

Kotitehtäväraportin tulee olla suoraan selaimella katseltavassa muodossa, tavallisena HTML-weppisivuna. Ei odt, ei odp, ei ppt, ei docx, ei doc, ei pdf. Kotitehtäviä ei voi palauttaa sähköpostitse. Linkit palautetaan Moodleen, mutta itse raportteja ei voi palauttaa Moodleen. Maksutonta kotisivutilaa saa esimerkiksi WordPress.com (helppo) ja GitHub.com.

Läksyt käydään läpi seuraavalla tapaamiskerralla, ratkotaan yhdessä ongelmia ja annetaan suullista palautetta. Arvosana kotitehtäväpaketista tulee vasta kurssin lopuksi, mutta tehtävät tulee silti palauttaa aina vuorokautta ennen seuraavia tunteja. Kurssilta poistetaan ne, jotka eivät ala suorittaa kurssia palauttamalla tehtäviä.

Julkaiseminen on vapaaehtoista, mutta erittäin suositeltavaa. Jos et jostain syystä uskalla tai muuten halua julkaista, voit laittaa työn weppisivulle salasanan taakse (kaikille kotitehtäville sama salasana) ja jakaa tämän salasanan kurssilaisten kanssa.

Kaikkien ajan säästämiseksi poistan kurssilta ne, jotka eivät ala suorittaa kurssia palauttamalla kotitehtäviä.

Jos tuntien yhteydessä järjestetään testejä läksyjen aiheista, niiden pisteet sisältyvät arvostelun kohtaan läksyt (50%).

Alustavat tehtävänannot

Tehtävät ovat virallisia vasta, kun ne on annettu tunnilla. Tehtävänannot muuttuvat vielä, koska tuntien aiheetkin voivat muuttua, ja lopullisessa arvioinnissa tehtävät arvioidaan niiden annettujen, virallisten tehtävien mukaan.

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)

h2

Tehtävät tästä eteenpäin (h2, h3…) tulee ratkaista tekemällä Saltin tila (state), ellei tehtävänannosta muuta ilmene. Tee ensin käsin, automatisoi vasta sitten. Muista testata lopputulos.

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) Laita käyttäjien kotisivut toimimaan Apachella.

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

d) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

e) Tee tila, 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.

h3

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

b) Tiedosto muotista: tee yksinkertainen SLS-tilatiedosto, joka laittaa muuttujan tiedostoon. Käytä jinjan kontekstimuuttujaa (template: jinja, context: …).

c) SLS tilaa Jinjalla: tee yksinkertainen SLS-tilatiedosto, joka käyttää for-in -silmukaa. Voit esimerkiksi tehdä kolme tiedostoa silmukalla. (Tässä tehtävässä siis käytetään jinjaa vain SLS-tiedoston sisällä, älä sotke samaan esimerkkiin tekstitiedostojen sisällön muuttamista.)

d) SSH-demonin portti: tee tila, joka asentaa SSH-demonin valittuun porttiin. Käytä portin valintaan Jinjaa, siten että sshd_config:issa “Port:”-kohdan arvo tulee Jinjan muuttujasta.

e) Kokeile jonkun toisen opiskelijan tekemää Salt-tilaa. Kokeiltava tila voi olla mistä vain harjoituksesta. Opiskelijoiden raportteja ja koodeja löydät tämän sivun perästä kommenteista.

h4

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

b) Tee kahdella orjalla esimerkki, jossa orjat saavat eri muuttujan pilarista. Tarkista ‘pillars.items’, että kummalekin orjalle mene eri tieto. Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

c) Tee kahdella orjalla esimerkki, jossa toinen orja saa muuttujan pilarista ja toinen käyttää oletusarvoa (pillar.get). Tee jokin muu kuin tunnilla tehty sshd-esimerkki.

Tämä sivu päivittyy koko kurssin ajan.

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html
Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , | 75 Comments

75 Responses to Aikataulu – Palvelinten hallinta ict4tn022 4-ti 5-ke 5 – loppukevät 2018 5p

  1. Riku Vaurio says:

    rikuvaurio.wordpress.com/2018/04/16/harjoitus-3/

  2. Iina Savela says:

    Kotitehtävien palautukset: http://www.liinuksi.wordpress.com

  3. Aleksandr Harjumaki says:

    kishin684536525.wordpress.com/2018/04/09/palvelinten-hallinta-pt-2/

  4. Asenna SSHd porttiin 8888 – käyttäen omaa salt-tilaa (state).

    Kokeile ensin käsin. Sitten poista demoni asetuksineen.
    Asenna tässä master ja slave samalle koneelle (tai
    voit käyttää omaa palvelintasi esim VPS).
    Automatisoi SSHd:n asennus ja portin vaihto pkg-file-service.

  5. Kurssin tehtävät tullaan postaamaan omalle kotisivulleni:

    https://www.topikettunen.com/

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Recent Posts

  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects