Haaga-Helia ammattikorkeakoulu

Palvelinten Hallinta


27.10.2023

h1 Viisikko

x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)

Karvinen 2023: Create a Web Page Using Github

  • Rekisteröidy Githubiin
  • Luo uusi repositorio, Lisää readme.me tekstitiedosto
  • Lisää .md tiedosto
  • Kirjoita tekstia ja tallenna
  • Sivusi on julkaistu
  • Karvinen 2023: Run Salt Command Locally

  • Salt:ia käytetään normaalisti hallitsemaan isoja määriä orjatietokoneita verkossa
  • Samat toiminnot toimivat niin Linux kuin Windowssissa
  • Kaikista tärkeimmät komennot ovat pkg, file, service, user and cmd.
  • a) Asenna Salt (salt-minion) koneellesi.

    Lisäsin paketin hallintaan tiedot mistä Saltin voi hakea komennoilla, jotka näytettiin tunnilla.
    Sen jälkeen ”sudo apt-get update” ja ”sudo apt-get install salt-minion”

    ”sudo salt-call - -version” Sulfur versio on asentuneen Saltista koneella.

    b) Viisi tärkeintä. Näytä esimerkit viidestä tärkeimmästä Saltin tilafunktiosta: pkg, file, service, user, cmd. Analysoi ja selitä tulokset.

    ”sudo salt-call --local -l info state.single pkg.installed tree”
    Paketti pitää olla asennettuna, tässä tapauksessa tree komento asensi ohjelman, jos komennon laittaa uudestaan tuo changed=1 ei tulostu, koska mikään ei muutu tilanteessa, kun tree on jo asennettu.

    Loin tmp kansioon helloilkka tiedoston komennolla touch helloilkka ja sen jälkeen ajoin salt komennon ”sudo salt-call --local -l info state.single file.managed /tmp/helloilkka” salt löysi tiedoston ja ei tehnyt muutoksia siihen.

    Apache2 palvelin pyöri koneella, Sammutin apachen pyörimästä komennpolla: “sudo salt-call --local -l info state.single service.running apache2 enable=False”

    Komento “sudo salt-call --local -l info state.single user.present ilkkah”
    Tarkastaa on ilkkah käyttäjä kirjautuneena sisään. Näin todellakin tässä tapauksessa on. Ehkä hyödyllisempi, kun on useampia orjia.

    sudo salt-call --local -l info state.single cmd.run 'touch /tmp/test' creates="/tmp/test"
    Salt loi tiedoston test kansioon /tmp/

    c) Idempotentti. Anna esimerkki idempotenssista. Aja 'salt-call --local' komentoja, analysoi tulokset, selitä miten idempotenssi ilmenee.

    Udestaan komento ” sudo salt-call --local -l info state.single pkg.installed tree”
    tree paketti oli jo asennettuna, joten tulos on idempotentti. Komennon voi ajaa usemman kerran ja tulos ei muutu.

    d) Tietoa koneesta. Kerää tietoja koneesta Saltin grains.items -tekniikalla. Poimi kolme kiinnostavaa kohtaa, näytä tulokset ('grains.item osfinger virtual') ja analysoi ne.

    Tästä puuttui terokarvinen.com sivuilta ohjeet. En alkanut selvittämään omatoimisesti. Muistaakseni ei tunnillakaan käyty läpi.

    Lähteenä on käytetty: Terokarvinen.com

    Haaga-Helia ammattikorkeakoulu

    Palvelinten Hallinta


    05.11.2023

    h2 karjaa

    Host kone

  • Prosessori: Intel i7-11700K
  • Muisti: 32Gb ddr 4
  • Näytönohjain: 3080RTX Mobile 16Gb
  • SSD: 2tb Samsung 980 PPO NVMe, SSD2 2tb Samsung 970 EVO NVMe
  • 1 Näyttö: Clevo 17,3” 4k 60Hz, 2 Näyttö: Acer Predator 43” 4k 120Hz ja 3 Näyttö: Acer Predator 24” FHD 144Hz
  • Cattle, not pets.

    x) Lue ja tiivistä. (Tässä x-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen tai kuunteleminen ja tiivistelmä riittää. Tiivistämiseen riittää muutama ranskalainen viiva.)

    Slater 2017: What is the definition of "cattle not pets"?. (Vain tuo yksi vastaus DevOps Stack Exchangen kysymykseen)

  • Ennen serverit olivat kuin lemmikkejä, jos serveri kaatui, piti ryhtyä hommiin, että se saadaan takaisin ylös. Nykyään servereitä on useampia ja toinen ottaa roolin, jos yksi kaatuu.
  • Ennen serverit olivat uniikkeja järjestelmiä, joita ihminen ohjasi. Nykyään ne ovat automatisoituja, että ihmisten tekemisiä ei välttämättä tarvita, jos serveri kaatuu vaan automaatio hoitaa homman ja serveri palaa linjoille tai se tuhotaan. Tämä ei kyllä ole optimia, se kannattaa mieluummin ”jäädyttää” ja tutkia perimmäinen syy miksi serveri ylipäätään kaatui.
  • Karvinen 2017: Vagrant Revisited – Install & Boot New Virtual Machine in 31 seconds (Suosittelen koneeksi 'vagrant init debian/bullseye64')

  • - “sudo apt-get update” paketin hallinnan päivitys
  • - “sudo apt-get -y install vagrant” vagrantin asennus
  • - “vagrant init bento/ubuntu-16.04” ubuntun alustus vagrantille
  • - “vagrant up” koneet ylös
  • - “vagrant ssh” ssh yhteys vagrantiin
  • - “vagrant destroy” koneet alas
  • Karvinen 2023: Salt Vagrant - automatically provision one master and two slaves

  • - Artikkeli käsittellee Vagrantin asennusta yhdellä masterilla ja kahdella orjalla
  • - Artikkeli on tehty raudalla pyörivää linux asennusta varten, ei sovellu windowsille suoraan
  • - Artikkelia voi soveltaa Vagrantin asennukseen Windowsille
  • a) Asenna Vagrant. (Toiminee parhaiten isäntäkäyttöjärjestelmässä, siis siinä, joka pyörii raudalla)

    Vagrantin asennus windowsille Vmwaren kanssa osoittautui jokseenkin haastavaksi, ohjeita ei ollut paljon. Jo pitkään ollut tämä mielessä, joten päätin asentaa Linuxin toiseksi käyttöjärjestelmäkseni pääkoneeseen Windowsin rinnalle. Valitsin Linuxiksi Debian 12.
    Asensin Rufuksen Windowsille ja loin bootaavan usb tikun Debianilla

    Kirjoitan seuraavan osion ulkomuistista.
    Debianin asennus onnistui mutta tuli grafiikka bugeja, en aluksi päässy kirjautumaan roottina, mutta komento ”su – root” onnistui sen tekemään. Koitin päivittää näytönohjaimen ajureita, se osoittautui hankalaksi. Näytön ohjain on Nvidia 3080 RTX mobile paketinhallinnasta niitä ei löytynyt. Nvidian sivuilta sain .run tiedoston, jonka muokkasin ”chmod u+x tiedostonimi” suoritetavaksi tiedostoksi kaikki tämä kun näyttö pomppi miten sattuu ja oli hankalaa lukea. komento ./nvidia-drivers-xxx-xxx.run. Installeri varoitti, että X-server pyörii ja se pitää lopettaa. Googlasin, mutta ohjeet eivät auttaneet, tietokone oli ohjeiden jälkeen aina käynnistettävä reset napilla uudestaan. Ohjeita oli esim. CTR+ALT+F1 tai ”sudo service gdm stop” Kokeilin useita muitakin metodeja ratkaista ongelma, asensin jopa kahteen kertaan koko Debianin ja lopuksi kokeilin vielä Ubuntua asentaa, mutta se tökkäsi jo asennus vaiheessa mustaan ruuttuun. Tähän kaikkeen meni aikaa yli 6 tuntia
    Päätin palata asentamaan Vagrantin Windowsille, koska Linuxin asentaminen raudalleni tuntuu olevan todella haastava homma. Tällä hetkellä Grubissa on pari debiania asennettuna. Mitenhän sen siivoaisi? 😊
    Googlasin ohjeet vagrantin asennukseen Windows 11 ja Vmawarelle, löysin Github sivun: Install vagrant with vmware for windows 11 (github.com)
    Latasin ja asensin Gon (ohjelmointikieli), uudelleen asennus vaadittin
    Skippasin kohdan 2, koska minulla oli jo Vmware asennettuna.
    Latasin ja asensin Vagrantin VMware Utilityn.
    Aloin asentamaan pluginia Vmwarelle, näiden ohjeiden mukaan: Introducing the Vagrant VMware Desktop Plugin (hashicorp.com)
    Pyysin lisää aikaa tehtävien tekoon ja jatkan tästä..
    jatkoin 6.11.2023
    Selvitin tuo Vagrant VMware Desktop Plugin on maksullinen, koitan vielä asentaa Ubuntun tuoreimman ei LTS version koneelleni.

    Sain Ubuntun version 23.10 ilman ongelmia pyörii nyt raudan päällä siis. Nyt tehtävien pariin.

    a) Asenna Vagrant. (Toiminee parhaiten isäntäkäyttöjärjestelmässä, siis siinä, joka pyörii raudalla) ja b) Yksi maankiertäjä. Asenna yksi kone Vagrantilla, ota siihen SSH-yhteys, osoita että netti toimii.

    Komento ”sudo apt-get install vagrant virtualbox” komento asensi vagrantin ja virtualboxin
    komento alustaa Debianin version bullseye64 toimimana vagrantissa ja luo Vagranfile tiedoston, tiedostolla voi muokata asetuksia ympäristössä ”vagrant init debian/bullseye64”

    Debian/bullseye64 ei löytynyt aluksi, joten vagrant latasi sen.

    Synkronoidut kansiot ovat päällä, tämä pitää kyllä opetella laittamaan pois päältä. Komentohan tuossa onkin jo annettu valmiiksi, kun muuttaa ilmeisesti vagrantfilessä olevia tietoja.

    Komento ”vagrant ssh” ja siellä pyörii debian ja olen kirjautuneena sisään

    c) Oma orjansa. Asenna Salt herra ja orja samalle koneelle.

    Tehtävä pitäisi olla paremmin avattu. Eli vagrant koneelle vai pääkoneelle.
    Asennan pääkoneelle. ”sudo apt-get update”, ”sudo apt-get install salt-minion”
    eipä asennukkaan myöskään ubuntuun. Lisäsin paketinhallintaan näiden ohjeiden mukaisesti: Docs.saltprojet.io

    sitten komento uudestaan ”sudo apt-get update” ja sudo apt-get install salt-minion” ja vielä komento ”sudo apt-get install salt-master”, kummatkin asentuivat hienosti

    Yritin käynnistää salt masterin ja minionin, eipä lähteneetkään käyntiin. Koitin ohjeiden mukaan, vaikka ne ovatkin debianille, mutta käsittääkseni Ubintu on debian pohjainen distro, joten ne saattavat toimia.
    Laitoin komennon ”sudo systemctl enable salt-master && systemctl start salt-master” ja ukomennon ”sudo systemctl enable salt-minion && systemctl start salt-minion”

    komento ”ps aux -e | grep salt” löytyi prosessit joita salt-minion ja salt-master käytttä. Se siis oli nyt asennettu koneelle.

    arkastin vielä saltin version komennolla ” salt-call --version”

    Asenna Saltin herra-orja arkkitehtuuri toimimaan verkon yli. (Verkko voi olla virtuaalinen verkko paikallisten virtuaalikoneiden välillä, kuten muissakin alakohdissa)

  • ”vagrant up”
  • ”vagrant ssh”
  • ”sudo apt-get update”
  • ”sudo apt-get install curl”
  • ”sudo mkdir /etc/apt/keyrings”
  • ”sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg”
  • ”echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye main" | sudo tee /etc/apt/sources.list.d/salt.list”
  • ”sudo apt-get update”
  • ”sudo apt-get install salt-minion”
  • ”logout”
  • komento ”sudo hostname I” tällä sai masterin ip:n selville

    komento ”nc -vz 192.168.178.70 4505” portiin kytekeytyminen tcp yhteydellä onnistui eli portti on ylipäättään auki.

    ”vagrant ssh”
    ”sudo apt-get install micro”
    ”sudo micro etc/salt/minion”
    lisätään tiedostoon master: 192.168.178.70 id: ilkkah

    ”sudo systemctl enable salt-minion && systemctl start salt-minion”
    eipä antanut vagrant virtuaalikone käynnistää salt-minionia
    ”ps aux -e | grep salt”
    kyllä se siellä pyöri kuitenkin

    kokeilin käynnistää salt orjan uudestaan näiden ohjeiden mukaan: Terokarvinen.com salt-quickstart salt master and slave on ubuntu
    ”sudo systemctl restart salt-minion.service”
    sitten ”logout” mutta vagrant kone sanoo, että There are stopped jobs. Mitköhän nyt sitten? :)
    Googlasin ja ohjeita Stackexchange.com
    uudestaan vaan komento ”exit”

    ”sudo hostname I” ei antanut mitään tulosta
    ”salt-master” väärin uudelleen käynnistetty salt-master
    ”sudo salt-master” taas väärin uudelleen käynnistetty salt-master” virhe ilmoitus, koska se pyörii jo. Pitäisi käynnistää udeelleen systemctl avulla
    ”sudo hostname -I” kuitenkin antaa nyt IP osoitteen
    ”sudo salt-key -A” The key glob ’*’ does not match any unaccepted keys. En kyllä tajua missä vika
    Kävin katsomassa vielä etc/salt/minion tiedostoa ja ip osoitteessa oli kirjoitusvirhe. Korjasin sen ja tadaa.

    Komento ”sudo salt-key” paljasti, että orjaoli ilmoittautunut.
    Komento ”sudo salt-ket -A” hyväksyin vaimen.

    Ja testaus, että orja vastaa ja toimi.

    Lähteenä on käytetty: Terokarvinen.com

    Haaga-Helia ammattikorkeakoulu

    Palvelinten Hallinta


    12.11.2023

    h3 Versio

    a) Online. Tee uusi varasto GitHubiin (tai Gitlabiin tai mihin vain vastaavaan palveluun). Varaston nimessä ja lyhyessä kuvauksessa tulee olla sana "winter". Aiemmin tehty varasto ei kelpaa. (Muista tehdä varastoon tiedostoja luomisvaiheessa, esim README.md ja GNU General Public License 3) ja b) Dolly. Kloonaa edellisessä kohdassa tehty uusi varasto itsellesi, tee muutoksia, puske ne palvelimelle, ja näytä, että ne ilmestyvät weppiliittymään.

    Loin repositorion Github nettisivuilla, en luonut vielä ssh avainta. katsoin miten tämä toimii.
    komennolla ”git clone repostorion osoite.git” sain kopioitua repositorion koneelle. Githubissa laitoin repostitorion publiciksi ja loin read.me tiedoston ja kirjoitin siihen hieman tekstiä.
    Homma ei toiminut, kysyi käyttäjätunnusta ja salasanaa ja niillä en päässyt sisään.
    Loin komennolla ”ssh-keygen” Enter Enter ssh avaimen ja kopioin sen Githubin ssh avaimiin sen jälkeen poistin virtuaalikoneelta tuon kansion ja kloonasin sen uudestaan.

    Muokkasin microlla README.md tiedostoa ja lisäsin tekstin testi.
    Komento ”git add README.md”
    Komento “git commit -m “tekstiä…”
    ja komento ”git push”

    Repositorio oli päivittynyt Githubiin

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

    Lisäsin tekstiä ”tyhmä muutos” REDME.md tiedostoon

    komento ”git add README.md” Komento “git reset –hard”
    Git palautti version aikaisempaan

    d) Tukki. Tarkastele ja selitä varastosi lokia. Tarkista, että nimesi ja sähköpostiosoitteesi näkyy haluamallasi tavalla ja korjaa tarvittaessa.

    Author commitin tekijä
    Date pvm ja kellonaika, aikavyöhyke
    commitin sisältö

    Lähteenä on käytetty: Terokarvinen.com