{"id":3742,"date":"2022-09-17T01:39:36","date_gmt":"2022-09-16T22:39:36","guid":{"rendered":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/?post_type=wz_knowledgebase&#038;p=3742"},"modified":"2026-06-12T16:41:49","modified_gmt":"2026-06-12T13:41:49","slug":"kerhopalvelimen-yllapito","status":"publish","type":"wz_knowledgebase","link":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wikipage\/kerhopalvelimen-yllapito\/","title":{"rendered":"Kerhopalvelimen yll\u00e4pito"},"content":{"rendered":"<p>Kerhopalvelimella tarkoitetaan palvelinta nimet\u00e4\u00e4n <em>Mari<\/em>, joka sijaitsee kerhotilassa ja tarjoilee l\u00e4ht\u00f6kohtaisesti kerhotilassa tarvittavia palveluita. Sen osoite on <code class=\"\" data-line=\"\">lab.jkl.hacklab.fi<\/code> erotuksena <a href=\"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/wikipage\/jonnen-yllapito\/\">Jonnesta<\/a>, jolla mm. yhdistyksen kotisivut ovat.<\/p>\n<p>Yll\u00e4pit\u00e4j\u00e4t:<\/p>\n<ul>\n<li>Dr. Jaska<\/li>\n<li>Zouppen<\/li>\n<li>risu<\/li>\n<li>jpa (laserweb)<\/li>\n<\/ul>\n<h2>3D-tulostimen et\u00e4k\u00e4ytt\u00f6<\/h2>\n<p>Et\u00e4tulostaminen onnistuu Google-kirjautumisella, ja t\u00e4t\u00e4 varten k\u00e4ytt\u00e4j\u00e4t t\u00e4ytyy lis\u00e4t\u00e4 vouch-proxyn konffiin. Muokkaa tiedostoa <code class=\"\" data-line=\"\">~vouch\/vouch-proxy\/config\/config.yml<\/code> jonka j\u00e4lkeen <code class=\"\" data-line=\"\">systemctl restart vouch-proxy<\/code>.<\/p>\n<h2>Kiinte\u00e4t IP-osoitteet<\/h2>\n<p>L\u00e4hiverkon laitteille voi asettaa kiinteit\u00e4 IP-osoitteita. T\u00e4m\u00e4 on tarpeen erityisesti <em>palvelut<\/em>-verkossa, jossa on IP-osoitteesta riippuvia rajoituksia. Luonnollisesti jos tietokoneen MAC-osoite vaihtuu (esimerkiksi laiterikon yhteydess\u00e4), se t\u00e4ytyy p\u00e4ivitt\u00e4\u00e4 uudestaan.<\/p>\n<p>Muokka tiedostoa <code class=\"\" data-line=\"\">\/etc\/dhcp-static<\/code> jonka j\u00e4lkeen <code class=\"\" data-line=\"\">systemctl restart dnsmasq<\/code>.<\/p>\n<p>Huomaa, ett\u00e4 n\u00e4ist\u00e4 muodostetaan my\u00f6s l\u00e4hiverkon DNS-nimet (ymm\u00e4rr\u00e4t sekoilun kun katsot <code class=\"\" data-line=\"\">systemctl cat dnsmasq<\/code>).<\/p>\n<p>Dnsmasq:n vastik\u00e4\u00e4n antamat osoitteet l\u00f6ytyv\u00e4t tiedostosta <code class=\"\" data-line=\"\">\/var\/lib\/misc\/dnsmasq.leases<\/code><\/p>\n<h2>Verkkoty\u00f6asemat<\/h2>\n<p>Seuraavat verkkoboottaavat ty\u00f6asemat ovat k\u00e4yt\u00f6ss\u00e4:<\/p>\n<table>\n<tbody>\n<tr>\n<th>3d-tulostin<\/th>\n<td>Ajaa Octoprinti\u00e4, OBS:\u00e4\u00e4 ja sis\u00e4lt\u00e4\u00e4 yleisimm\u00e4t mallinnussovellukset ja PrusaSlicerin<\/td>\n<\/tr>\n<tr>\n<th>kuilu<\/th>\n<td>Hacklabin yhteisk\u00e4yt\u00f6ss\u00e4 oleva tietokone<\/td>\n<\/tr>\n<tr>\n<th>telkkaritunkki<\/th>\n<td>Yhteisk\u00e4yt\u00f6ss\u00e4 oleva tietokone kerhotilan etuosassa valkokankaalla tai siis -sein\u00e4ll\u00e4<\/td>\n<\/tr>\n<tr>\n<th>oh6ddr<\/th>\n<td>Radioamat\u00f6\u00f6rien yhteisk\u00e4ytt\u00f6tietokone<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Verkkolevyn toteutus on NFS, jossa overlayfs, jossa squashfs on alempi ja btrfs ylempi tiedostoj\u00e4rjestelm\u00e4. Tarkoitus nopeuttaa levyoperaatioita pakatulla squashfs:ll\u00e4. Ei ole suurempaa syyt\u00e4 miksi k\u00e4ytet\u00e4\u00e4n NFS:\u00e4\u00e4 eik\u00e4 iSCSI:t\u00e4, paitsi ett\u00e4 tuli tehty\u00e4 n\u00e4in. Kernelit lataa <a href=\"https:\/\/ipxe.org\/\" target=\"_blank\" rel=\"noopener\">iPXE<\/a>, joka tarjoilee my\u00f6s hienon Hacklab-logon boottauksen yhteydess\u00e4.<\/p>\n<p>J\u00e4rjestelm\u00e4t p\u00e4ivitet\u00e4\u00e4n kerran y\u00f6ss\u00e4 ajastimella <code class=\"\" data-line=\"\">update_workstations.timer<\/code>. Homma hoituu k\u00e4ynnist\u00e4m\u00e4ll\u00e4 ty\u00f6asema qemulla virtuaalikoneeseen kerhopalvelimella. Skripteiss\u00e4 on alkeellinen (mutta luultavasti riitt\u00e4v\u00e4) semafori, jotta ty\u00f6asema ja virtuaalikone eiv\u00e4t voi olla samaan aikaan k\u00e4ynniss\u00e4.<\/p>\n<p>Ty\u00f6asemaa voi rassata virtuaalikoneessa palvelimella komennolla <code class=\"\" data-line=\"\">\/opt\/workstation\/interact<\/code>, esimerkiksi n\u00e4in: <code class=\"\" data-line=\"\">\/opt\/workstation\/interact 3d-tulostin<\/code>.<\/p>\n<h2>Unifi<\/h2>\n<p>Kerhotilassa sijaitsevien verkkolaitteiden <a href=\"https:\/\/unifi.jkl.hacklab.fi\/\">Unifi-verkonhallinta<\/a> py\u00f6rii qemun p\u00e4\u00e4ll\u00e4 t\u00e4ll\u00e4 koneella.<\/p>\n<h2>Virtuaalikoneruletti<\/h2>\n<p>J\u00e4senille on tarjottu Android-virtuaalikoneita WhatsApp-sovelluksen ajamiseen, jotta voivat k\u00e4ytt\u00e4\u00e4 Matrix-silta <a href=\"https:\/\/github.com\/tulir\/mautrix-whatsapp\" target=\"_blank\" rel=\"noopener\">mautrix-whatsappia<\/a>. Virtuaalikoneen t\u00e4ytyy olla yhteydess\u00e4 Metan servereihin kerran pariin viikkoon. Kerran y\u00f6ss\u00e4 kaikki WhatsApp-koneet k\u00e4ynnistet\u00e4\u00e4n vuorotellen k\u00e4yntiin ja kutakin ajetaan puolisen tuntia. T\u00e4st\u00e4 huolehtii ajastin <code class=\"\" data-line=\"\">android_rotator.timer<\/code>.<\/p>\n<h2>Pupuverkon solmu<\/h2>\n<p>Kerhotila on kiinni Pupuverkossa, jota yll\u00e4pidet\u00e4\u00e4n yhteisty\u00f6ss\u00e4 Keski-Suomen radioamat\u00f6\u00f6rit ry:n (OH6AD) kanssa. Kerhotilasta on radiolinkkiyhteys IT Ihmeelle, jossa py\u00f6rii virtuaalikoneemme <em>Jonne<\/em>. Pupuverkon kautta kulkee mm. puhelinliikenne puhelinkeskukseemme <a href=\"https:\/\/pbx.hacklab.fi\/\"><em>Katri Helena<\/em><\/a>. Lis\u00e4ksi Pupuverkko tarjoaa kerhon nettiyhteydelle varareitin.<\/p>\n<h2>Varmuuskopiointi<\/h2>\n<p>Palvelin varmuuskopioidaan k\u00e4ytt\u00e4en ajastinta <code class=\"\" data-line=\"\">remote-backup.timer<\/code> .\u00a0 Varmuuskopiot sijaitsevat fyysisesti Viitasaarella.<\/p>\n<p>Huom! Koko levy\u00e4 ei varmuuskopioida sellaisenaan. Varmuuskopioskripti <code class=\"\" data-line=\"\">\/root\/backup.sh<\/code> ottaa levyj\u00e4rjestelm\u00e4st\u00e4 snapshotit ja mounttaa ne varmuuskopioinninaikaiseen hakemistorakenteeseen. T\u00e4m\u00e4 on hyv\u00e4 tiedostaa, jos tekee varmuuskopioista palautuksia, ett\u00e4 osaa m\u00e4\u00e4ritell\u00e4 hakemistopolun oikein. Katso <code class=\"\" data-line=\"\">\/root\/restore.sh<\/code>.<\/p>\n<h2>Levyj\u00e4rjestelm\u00e4<\/h2>\n<p>Levyj\u00e4rjestelm\u00e4 koostuu 4 x 2 TB SSD levyst\u00e4 jotka ovat Linuxin mdraid:lla RAID5-levypakassa. K\u00e4ytett\u00e4viss\u00e4 oleva kapasiteetti 6 TB. Levyj\u00e4rjestelm\u00e4ss\u00e4 LVM ja suurin osa osioista on btrfs-tiedostoj\u00e4rjestelm\u00e4ll\u00e4.<\/p>\n<p>Syy, miksi OpenZFS ei ole k\u00e4yt\u00f6ss\u00e4, on ett\u00e4 se ei tule lisenssisyist\u00e4 Linux-ytimen mukana. Olisi muuten kyll\u00e4 varmasti parempi ratkaisu. Toinen vaihtoehto, btrfs, ei ole ihmisten mielest\u00e4 viel\u00e4 riitt\u00e4v\u00e4n luotettava RAID-k\u00e4yt\u00f6ss\u00e4. Luovimme ep\u00e4t\u00e4ydellisen maailman ristiaallokossa.<\/p>\n<h2>Monitorointi<\/h2>\n<p><a href=\"https:\/\/net.pupu.li\/icingaweb2\/\">Jonnella on ajossa Icinga<\/a>, joka valvoo t\u00e4t\u00e4 konetta. Osa valvonnasta tapahtuu kolkuttelemalla konetta ulkopuolelta ja osa sis\u00e4puolelta k\u00e4ytt\u00e4en skripti\u00e4 <code class=\"\" data-line=\"\">~nagios\/shell<\/code>.<\/p>\n<h2>SMS-yll\u00e4pito<\/h2>\n<p>Kun SSH:lla ei p\u00e4\u00e4se sis\u00e4\u00e4n varsinaisesta eik\u00e4 varayhteydest\u00e4, voi yritt\u00e4\u00e4 saada yhteytt\u00e4 tekstiviestill\u00e4. Tekstiviestej\u00e4 kuuntelee <a href=\"https:\/\/www.kannel.org\/\" target=\"_blank\" rel=\"noopener\">Kannel<\/a>-sovellus. Palvelimessa on USB-liit\u00e4nt\u00e4inen 3G-mokkula, jossa prepaid-liittym\u00e4. Numero on tiedossa yll\u00e4pit\u00e4jill\u00e4. Lis\u00e4ksi komentojen ajamiseen tarvitsee Authenticator-sovelluksen, josta noudetaan tarvittava vaihtuva PIN. Komennot ovat seuraavat:<\/p>\n<table>\n<tbody>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN internet<\/code><\/th>\n<td>Testaa internetin reitit<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN uname<\/code><\/th>\n<td>Komennon <code class=\"\" data-line=\"\">uname -a<\/code> tuloste<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN uptime<\/code><\/th>\n<td>Komennon <code class=\"\" data-line=\"\">uptime<\/code> tuloste<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN reboot<\/code><\/th>\n<td>K\u00e4ynnist\u00e4 palvelin uudelleen<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN network restart<\/code><\/th>\n<td>K\u00e4ynnist\u00e4 systemd-networkd uudelleen<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">admin PIN ovi<\/code><\/th>\n<td>Avaa kerhotilan ovet 30 sekunniksi<\/td>\n<\/tr>\n<tr>\n<th><code class=\"\" data-line=\"\">time<\/code><\/th>\n<td>Hae kellonaika. Ei tarvitse PIN-koodia.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Jos PIN-koodi ei kelpaa, k\u00e4yt\u00e4 <code class=\"\" data-line=\"\">time<\/code>-komentoa kellonajan tarkastamiseen. TOTP tarvitsee toimiakseen oikean kellonajan.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kerhopalvelimella tarkoitetaan palvelinta nimet\u00e4\u00e4n Mari, joka sijaitsee kerhotilassa ja tarjoilee l\u00e4ht\u00f6kohtaisesti kerhotilassa tarvittavia palveluita. Sen osoite on lab.jkl.hacklab.fi erotuksena Jonnesta, jolla mm. yhdistyksen kotisivut ovat. Yll\u00e4pit\u00e4j\u00e4t: Dr. Jaska Zouppen risu jpa (laserweb) 3D-tulostimen et\u00e4k\u00e4ytt\u00f6 Et\u00e4tulostaminen onnistuu Google-kirjautumisella, ja t\u00e4t\u00e4 varten k\u00e4ytt\u00e4j\u00e4t t\u00e4ytyy lis\u00e4t\u00e4 vouch-proxyn konffiin. Muokkaa tiedostoa ~vouch\/vouch-proxy\/config\/config.yml jonka j\u00e4lkeen systemctl restart vouch-proxy. Kiinte\u00e4t IP-osoitteet [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"wzkb_product":[],"wzkb_category":[39],"wzkb_tag":[],"class_list":["post-3742","wz_knowledgebase","type-wz_knowledgebase","status-publish","hentry","wzkb_category-infra"],"acf":[],"_links":{"self":[{"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wz_knowledgebase\/3742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wz_knowledgebase"}],"about":[{"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/types\/wz_knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/comments?post=3742"}],"version-history":[{"count":37,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wz_knowledgebase\/3742\/revisions"}],"predecessor-version":[{"id":7254,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wz_knowledgebase\/3742\/revisions\/7254"}],"wp:attachment":[{"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/media?parent=3742"}],"wp:term":[{"taxonomy":"wzkb_product","embeddable":true,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wzkb_product?post=3742"},{"taxonomy":"wzkb_category","embeddable":true,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wzkb_category?post=3742"},{"taxonomy":"wzkb_tag","embeddable":true,"href":"https:\/\/xn--jyvskyl-7wae.hacklab.fi\/en\/wp-json\/wp\/v2\/wzkb_tag?post=3742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}