Henry Isakoff 🥕 Palvelinten Hallinta

| Palvelinten Hallinta | 5 min

Vagrant ja soitto moneen kotiin.

Tämän viikon raportissa asennamme vagrantin toimimaan hallintaraudalle (Mac OS), asennamme pari salt ympäristöä ja kokeillaan näiden kautta viime viikkoista kokonaisuutta. Tällä viikolla valtaosa järjestelmästä toimii Mäkillä joten käytetään brewiä paketinhallintaan ja parallelsia virtuaalikoneiden pohjalle. Käytetään myös vagrantin parallels pluginia toimittamaan vagrant-toiminnot parallelsin käyttöön.

Käytössäni on ARM (RISC) pohjainen applen m2 max läppäri.

Vagrant on lyhyesti automatisointijärjestelmä virtualikoneiden yläpuolelle. Tällä helppo rakentaa järjestelmiä parvena jos tavoitteena on ajaa monia virtuaalikoneita tekemään laajasti kokonaisuuksia.

Haudutetaan (brew) paketit

Asensin aikaisemmalla kurssilla brewin mäkille pyörittämään dockeria. Kertauksena: oiva mäkin paketinhallintajärjestelmä.

brew install vagrant

Brew

Minulla jo aikaisemmin asennettu parallels koneelleni. Käytän tätä harvakseltaan, mutta tähän tarkoitukseen tämä hyvä. Applen oma m-sarjan RISC prosessorit on itsessään huonosti optimoitu toimimaan muiden RISC-kantaisten linux-järjestelmien kanssa. Näissä softa on rakennettu lähelle rautaa, joten ohjelmat tuntuu kulkevan aika lähellä emuloinnin ja virtualisoinnin rajaa (jotkin arm-yhteensopivat järjestelmät virtualisoidaan ja joitain emuloidaan). TL;DR parallels on kallis, mutta mac os käyttäjänä aika helppo suositus.

Tähän väliin tarvitaan siis vagrantin plugin joka yhdistää toiminnan parallelsin kanssa.

vagrant plugin install vagrant-parallels

Brew

Näin voidaan alkaa rakentamaan pientä settiä.

Lyhyt oppimäärä verkostani

Tähän väliin huomautus verkkorakenteestani. Pystyisin jopa helpommin tekemään tämän koko setin karanteenissa, suoraan kahden rautani (kali+m2 mac) välissä. Vagrantilla nyt vaan luodaan virtuaalikone-pipetti. Tämä on hyvä tapa oppia ymmärtämään saltin ja vagrantin toimintaperiaatteita.

Myöskään en juurikaan käyttänyt parallelsia, niin katsotaan kuinka paljon tämä lähtee käsistä 😃 - ja esimerkiksi kuinka hyvin kumpikaan erikseen toimii ARMilla (RISC).

Vagrant pystyyn ja huomioita.

Käytetään nyt Bento-repon asennuspohjia jotka tarkoitettu vagrantille. Käytetään debianin uusinta varmasti toimivaa pohjaa. Tässä paljon muuttujia enkä tiedä uusimman debianin yleistä tukea ym. Eli bento/debian-12 on testikäyttöjärjestelmämme.

Tässä vaiheessa silmäilen vagrantin omaa dokumentointia ja netistä yleisesti eri pohjadokumentteja. Aloitetaan hyvin yksinkertaisella vagrant pohjalla joka itselläni seuraava - kommentit mukana. Otin suoraan pois kansio-jaon jotta parralels ei tuo ongelmia jatkossa.

Laitan tämän minun työkansiooni vagrantfile nimellä:

# -*- mode: ruby -*-
# vi: set ft=ruby :
#
# Täysin puhdas Vagrantfile, joka luo kaksi Debian 12 -konetta.
# Tämä tiedosto EI aja mitään komentoja tai asennuksia koneiden sisällä.

Vagrant.configure("2") do |config|
  # YLEISET ASETUKSET
  # Poistetaan jaetut kansiot käytöstä, jotta vältymme Parallels Tools -virheiltä.
  config.vm.synced_folder ".", "/vagrant", disabled: true

  # Käytetään vakaata Debian 12 -pohjaa.
  config.vm.box = "bento/debian-12"

  # MASTERI-KONE
  config.vm.define "masteri" do |masteri|
    masteri.vm.hostname = "masteri"
    masteri.vm.network "private_network", ip: "192.168.42.101"
  end

  # ALAMAINEN-KONE
  config.vm.define "alamainen" do |alamainen|
    alamainen.vm.hostname = "alamainen"
    alamainen.vm.network "private_network", ip: "192.168.42.102"
  end
end

vagrant up --provider=parallels

Pyöräyttää hommat käyntiin käyttäen tuota parallels pluginia. Voin lisätä suoraan zsh tietoihin tuon myös, mutta katson itse vagranttia hyvin väliaikaisena työkaluna.

Näillä pieni virtuaali-infra on pystyssä. Itse olen rajoittanut vahvasti mac os SIP avulla Parallelsin toimintaa, joten ensimmäisenä saan error-viestejä rajoitetusta toiminnasta. Tämä on siis hyvä merkki, että asiat toimii kuten haluankin.

Esto päällä

Muuten

vagrant ssh hostname (tähän koneen nimi)

Avaa ssh yhteyden vagrantin läpi. Tässä voidaan myös käyttää ihan hostin omaakin ssh yhteyttä, mutta ssh vagrantin läpi on puhtaampaa, kun ei tarvetta sormenjälkiin ym.

Parallels näyttää avoimet Vagrant pystyssä Vagrant pystyssä

Testasin myös pingin virtuaalikoneiden läpi. Vagrant pystyssä

Salt näiden välillä

Teen vielä viime viikon reseptitarjonnasta kokonaisuuden näyttämään miten kahden verkon välille salt pyörähtää toimintaan. Asennan nyt manuaalisesti masterille vain salt-master palvelun ja alamaiselle minion palvelun.

Isossa pipetissä tämäkin kannattaa tehdä prosessiin. Nyt tavoitteena vain osoittaa toiminta. Terolla hyvä ohje tähän.

Vagrant pystyssä

Alamaisella käyn lisäämässä /etc/salt/minion tiedostoon masterin ip-osoitteen - rullaan systemctl läpi homman taas käyntiin. Sitten masterilla hyväksyn avaimet ja testaan toiminnan pingillä.

Vagrant pystyssä Vagrant pystyssä

Tämän jälkeen viime viikolta käytän suoraan vaikka btop ja moro toiminnat pyörimään alamaiselle.

sudo salt '*' state.apply

Vagrant pystyssä Vagrant pystyssä

Kommentit

Vaikka vagrant tuntuu vähän ylimääräiseltä kierrokselta tähän, tämä oikein hyvä tapa opetella monen koneen hallintaa. Oiva työkalu lisää pakkiin.

Lisäksi Parallels, ARM debian ja kaikki binäärit toimivat todella hyvin keskenään. Odotin suurempia ongelmia.

Lähteet

Vagrantin pohjaa https://developer.hashicorp.com/vagrant/install https://github.com/chef/bento

Terolta https://terokarvinen.com/2023/salt-vagrant/#infra-as-code---your-wishes-as-a-text-file

Parallels mac os https://www.parallels.com https://github.com/Parallels/vagrant-parallels

Paketinhallintaa mäkille https://brew.sh

SIP (jos ei tuttu) https://support.apple.com/en-us/102149

Vanhoja läksyjä https://h.iskff.fi/tt/#h3 https://h.iskff.fi/sh/#h1 https://h.iskff.fi/ph/#h2

Kuvat optimoitu https://optimage.app

Käytetty aika: 2h