Palvelinten hallinta - ICT4TN022-3
Takaisin juureen

Monimuotoinen kilpa

  1. Slave 01: Windows 10 Home 64-bit
  2. Slave 02: Windows 8.1 Professional 32-bit
  3. Slave 03: Windows 7 Professional 64-bit
  4. Slave 04: Windows Vista Ultimate 32-bit
  5. Slave 05: Oracle Solaris 11 64-bit
  6. Slave 06: Elementary OS 64-bit
  7. Slave 07: Linux Mint 18.3 Sylvia

Monimuotoinen kilpa

Tehtävänä oli hallita mahdollisimman montaa eri käyttöjärjestelmää puppetilla. Päätin toteuttaa puppetmasterin fyysisenä koneena, ja orjat Oracle VM Virtualboxilla virtuaalisina koneina.

Tähän mennessä orjuutetut:

$ sudo -i
$ cd /var/lib/puppet/yaml/facts/ && sudo egrep -w --color 'kernel:|operatingsystem:|lsbdistdescription:|operatingsystemmajrelease:|architecture:' *.yaml

desktop-dl4seg7.pp.htv.fi.yaml:    architecture: x64
desktop-dl4seg7.pp.htv.fi.yaml:    kernel: windows
desktop-dl4seg7.pp.htv.fi.yaml:    operatingsystem: windows
desktop-dl4seg7.pp.htv.fi.yaml:    operatingsystemmajrelease: "10"

elementary.pp.htv.fi.yaml:    kernel: Linux
elementary.pp.htv.fi.yaml:    operatingsystem: Debian
elementary.pp.htv.fi.yaml:    architecture: amd64
elementary.pp.htv.fi.yaml:    operatingsystemmajrelease: stretch/sid
elementary.pp.htv.fi.yaml:    lsbdistdescription: "elementary OS 0.4.1 Loki"

mint.pp.htv.fi.yaml:    kernel: Linux
mint.pp.htv.fi.yaml:    operatingsystem: LinuxMint
mint.pp.htv.fi.yaml:    architecture: x86_64
mint.pp.htv.fi.yaml:    operatingsystemmajrelease: "18"
mint.pp.htv.fi.yaml:    lsbdistdescription: "Linux Mint 18.3 Sylvia"

solaris.pp.htv.fi.yaml:    kernel: SunOS
solaris.pp.htv.fi.yaml:    operatingsystem: Solaris
solaris.pp.htv.fi.yaml:    architecture: i86pc
solaris.pp.htv.fi.yaml:    operatingsystemmajrelease: "11"

ubuntumate.pp.htv.fi.yaml:    kernel: Linux
ubuntumate.pp.htv.fi.yaml:    architecture: armv7l
ubuntumate.pp.htv.fi.yaml:    operatingsystem: Ubuntu
ubuntumate.pp.htv.fi.yaml:    lsbdistdescription: "Ubuntu 16.04.2 LTS"
ubuntumate.pp.htv.fi.yaml:    operatingsystemmajrelease: "16.04"

windows7-pc.pp.htv.fi.yaml:    architecture: x64
windows7-pc.pp.htv.fi.yaml:    kernel: windows
windows7-pc.pp.htv.fi.yaml:    operatingsystem: windows
windows7-pc.pp.htv.fi.yaml:    operatingsystemmajrelease: "7"

windows8-pc.pp.htv.fi.yaml:    architecture: x86
windows8-pc.pp.htv.fi.yaml:    kernel: windows
windows8-pc.pp.htv.fi.yaml:    operatingsystem: windows
windows8-pc.pp.htv.fi.yaml:    operatingsystemmajrelease: "8"

windowsvista-pc.pp.htv.fi.yaml:    architecture: x86
windowsvista-pc.pp.htv.fi.yaml:    kernel: windows
windowsvista-pc.pp.htv.fi.yaml:    operatingsystem: windows
windowsvista-pc.pp.htv.fi.yaml:    operatingsystemmajrelease: Vista

Puppetmasterin asennus / Ubuntumate for ARM-processors

Linkki levityspaketin kotisivulle

Masterina käytin Raspberry Pi 3 Model B:tä, jossa käyttöjärjestelmänä Ubuntumate (Ubuntu 16.04.2 LTS)

Masterin asennus:

$ sudo apt-get update
$ sudo apt-get install -y puppet puppetmaster
$ sudo puppet cert list --all

Puppet oli allekirjoittanut oman hostinsa sertifikaatin, nimellä "ubuntumate.pp.htv.fi". Seuraavaksi se oli laitettava puppet.confiin serveriksi. Lisäsin /etc/puppet/puppet.conf -tiedostoon [master]-tägin alle seuraavaa:

dns_alt_names = ubuntumate.pp.htv.fi

Ja loppuun vielä [agent]-kohdan seuraavilla tiedoilla:

[agent]
server = ubuntumate.pp.htv.fi
runinterval = 60

Seuraavaksi asensin hellopuppet-testimoduulini gitistä:

$ sudo apt-get install -y git
$ git clone https://github.com/matiasraisanen/hellopuppet.git
$ cd hellopuppet
$ sudo cp -r modules/ /etc/puppet/

Ja lisäsin seuraavan koodin /etc/puppet/manifests/site.pp -tiedostoon:

node 'ubuntumate.pp.htv.fi'{
	include hellopuppet
}

Vielä oli laitettava noden osoite hosts-tiedostoon. Editoin /etc/hosts -tiedostoa lisäämällä ensimmäisen rivin perään ubuntumate.pp.htv.fi. Ensimmäinen rivi näytti siis tältä:

127.0.0.1 localhost ubuntumate.pp.htv.fi

Ja puppet agent-palvelu päälle:

$ sudo puppet agent --enable

Sitten tarkastettiin oliko hello-tiedosto paikallaan:

matias@ubuntumate:~$ cat /tmp/helloPuppet.txt
Hello World!

Paikallaan oli, joten moduuli toimii, ja puppetmasterilla oli yksi orja.

Selvitin, mitä puppet saa irti ensimmäisen orjan käyttöjärjestelmästä:

$ sudo -i
$ cd /var/lib/puppet/yaml/facts/
$ egrep -w --color 'operatingsystem:|lsbdistdescription:|operatingsystemmajrelease:' *.yaml

operatingsystem: Ubuntu
lsbdistdescription: "Ubuntu 16.04.2 LTS"
operatingsystemmajrelease: "16.04"

Tätä syntaksia voin käyttää selvittämään orjuuttamani käyttöjärjestelmät.

Loin vielä autosign.confin helpottamaan ssl-sertifikaattien hyväksymistä:

$ echo "*.pp.htv.fi" | sudo tee /etc/puppet/autosign.conf

Näin Puppet hyväksyy kaikki .pp.htv.fi loppuiset sertifikaatit automaattisesti. Tuotantoympäristössä tämä on turvallisuusriski, mutta testiympäristössä voin tätä hyvin käyttää.

1. Windows 10 Home

Seuraavaksi oli orjuutettava Windows-kone. Alustana käytin pöytäkonettani:

MBMSI Z170A GAMING M5 (MS-7977)
CPUIntel(R) Core(TM) i7-6700K CPU @ 4.00GHz
MEM8.00 GB DDR4
HDDSeagate Barracuda 500GB ST3500418AS
GPUASUS GeForce GTX 970

Tällä koneella loin Virtualboxilla virtuaalikoneen, jossa käyttöjärjestelmänä Windows 10 Home, Version 1703 (Updated March 2017) 64-bit (English)

Ensiksi poistin UAC:n käytöstä. Painoin Windows-näppäintä ja kirjoitin "uac". Seuraavasta ikkunasta raahasin valitsimen "never notify"-kohtaan ja käynnistin koneen uudestaan.

Seuraavaksi oli asennettava Puppet. Tarkistin Linux-koneellani puppetin version komennolla sudo puppet --version. Versionumero oli 3.8.5, joten latasin Windowsilla Puppet Agentista saman version. Latasinpuppetlabsista tiedoston "puppet-3.8.5-x64.msi". Tämä tiedosto pitää asentaa admin-oikeuksin.

Painoin windows-näppäintä, ja kirjoitin "cmd". Haku löytää Command Promptin, jonka avasin klikkaamalla oikealla hiiren napilla, ja valitsin "Run as administrator".

Avautuvaan komentokehotteeseen kirjoitin seuraavan komennon navigoidakseni downloads-kansioon ja asentaakseni puppetin:

cd \users\viljami\downloads
puppet-3.8.5.-x64.msi

Painelin nextiä ja hyväksyin ehdot, ja kun asennusohjelma kysyi masterin osoitetta, kirjoitin siihen "ubuntu.pp.htv.fi". Seuraavaksi masteri oli vielä lisättävä windowsin hosts-fileen:

cd \windows\system32\drivers\etc
notepad hosts

Tuohon tiedostoon lisäsin uudelle riville master-koneen IP:n ja nodenamen:

192.168.1.113 ubuntumate.pp.htv.fi

Tein vielä yhteyskokeilun:

ping ubuntumate.pp.htv.fi

Sain pingeihin vastauksia, joten yhteys toimi.

Seuraavaksi ajoin puppet agentin. Painoin windows-painiketta ja kirjoitin "command prompt with puppet", ja avasin taas administratorina:

Ajoin kehotteessa komennon "puppet agent -tdv". Tämän pitäisi lähettää masterille sertifikaatin hyväksymispyyntö. Kirjoitin masterkoneella komennon

sudo puppet cert list

Listalla oli uusi sertifikaatti, nodelta "desktop-dl4seg7.pp.htv.fi". Hyväksyin sen komennolla

sudo puppet cert sign desktop-dl4seg7.pp.htv.fi

Seuraavaksi tuli luoda masterkoneella testimoduuli Windows-ympäristöön:

sudo mkdir -p /etc/puppet/modules/hellowindows/manifests
sudoedit /etc/puppet/modules/hellowindows/manifests/init.pp

class hellowindows {
	file {"C:/helloWindows.txt":
		content => "Hello World!",
	}
}

Seuraavaksi lisättiin tämä moduuli ajoon:

sudoedit /etc/puppet/manifests/site.pp

Tiedostoon koodi:

node 'desktop-dl4seg7.pp.htv.fi'{
	include hellowindows
}

Ja ajoin puppetin uudestaan Windows-koneella komennolla "puppet agent -tdv"

Tiedosto oli paikallaan, joten homma toimii!

2. Windows 8.1 Professional 32-bit

Windows 8.1:llä asennus oli aika samanlaista kuin 10:llä. Aluksi poistin UAC:n käytöstä. Painoin Windows-näppäintä ja kirjoitin uac:

Ja käynnistin koneen uudestaan. Seuraavaksi avasin komentokehotteen admin-oikeuksin: Painoin Windows-näppäintä, kirjoitin "cmd", ja valitsin "run as administartor"

Komentokehotteessa annoin komennot:

cd c:/windows/system32/drivers/etc
notepad hosts

Lisäsin hosts-tiedostoon ubuntumaten, lisäämällä yhden rivin:

192.168.1.113 ubuntumate.pp.htv.fi

Seuraavaksi latasin puppet installerin. Käytin pakettia puppet-3.8.5.msi, sillä minulla oli 32-bittinen versio käyttöjärjestelmästä: https://downloads.puppetlabs.com/windows/ puppet-3.8.5.msi

Annoin komentokehotteessa komennon:

cd c:/users/viljami/downloads
puppet-3.8.5.msi

Asennusohjelmassa annoin masterin osoitteeksi ubuntumate.pp.htv.fi, ja ajoin asennuksen. Ajoin puppetin kuten Windows 10:ssä:

Avautuneeseen komentokehotteeseen annoin komennon puppet agent -tdv

Seuraavaksi katsoin master-koneella että uusi sertifikaatti on allekirjoitettu, ja lisäsin uuden noden (windows8-pc.pp.htv.fi) site.pp:hen hellowindows-moduulin jakeluun.

Ajoin Windows-koneella komennon puppet agent -tdv, ja tarkistin onko hellowindows.txt paikallaan

Ja näin oli Windows 8.1 orjuutettu

3. Windows 7 Professional 64-bit

Aluksi UAC pois päältä:

Seuraavatkin vaiheet oli samat kuin Windows 10:lla, joten kerron ne vain tiivistetysti:

  1. Muokkasin hosts-filen -> 192.168.1.113 ubuntumate.pp.htv.fi
  2. Latasin ja asensin puppet-3.8.5-x64.msi:n
  3. Ajoin Windows-koneella puppet agentin
  4. Lisäsin masterilla uuden noden (windows7-pc.pp.htv.fi)
  5. Ajoin Windows-koneella agentin uudestaan
  6. Varmistin, että hellowindows.txt on ilmestynyt

Ja näin oli Windows 7 orjuutettu

4. Windows Vista Ultimate 32-bit

UAC pois päältä:

Ja käynnistin koneen uudestaan.

Seuraavaksi muokkasin hosts-tiedoston: Windows-näppäin -> cmd.exe -> run as administator -> cd c:/windows/system32/drivers/etc -> notepad hosts

Lisäsin rivin 192.168.1.113 ubuntumate.pp.htv.fi

Latasin puppetin 32-bittisestä paketista: https://downloads.puppetlabs.com/windows/ puppet-3.8.5.msi

Asennus: Windows-näppäin -> cmd.exe -> run as administator -> cd c:/users/viljami/downloads -> puppet-3.8.5.msi

Asensin masterille uuden noden (windowsvista-pc.pp.htv.fi) hellowindows-paketin jakeluun

Ajoin puppet agentin Windows-koneella:

puppet agent -tdv

Ja varmistin että hellowindows.txt löytyy:

Ja näin oli Windows Vista orjuutettu.

5. Oracle Solaris 11 64-bit

Linkki jakelupaketin kotisivulle

Oraclessa käytin terminaalia antaakseni komennot.

Hosts-filen muokkaus:

$ sudoedit /etc/hosts

==>

192.168.1.113 ubuntumate.pp.htv.fi

Puppetin asennus:

$ sudo pkg install puppet
$ sudo nano /etc/puppet/puppet.conf

==>

[main]
server=ubuntumate.pp.htv.fi

Lisäsin uuden noden (solaris.pp.htv.fi) masterille, hellopuppet-(linux)moduulin jakeluun.

Ja ajoin komennon sudo puppet agent -tdv, jonka jälkeen tarkastin onko hellopuppet.txt paikallaan:

Siellä on, Oracle Solaris orjuutettu

6. Elementary OS 64-bit

Linkki jakelupaketin kotisivulle

Tein shell-skriptin, joka asentaa Debian-koneen puppet-orjaksi, jotta säästyn manuaaliselta työltä. Skriptin sisältö on tämä.(Avaa vaikka notepadilla)

Skripti muttaa (graafisen järjestelmän) näppäimistökielen suomeksi, päivittää pakettitiedot, lisää hosts-tiedostoon merkinnän puppetmasterista, asentaa puppetin, lisää puppet.confiin tiedon puppetmasterista ja asettaa puppetin pyytämään konfiguraatioita 60 sekuntin välein, ja viimeisenä käynnistää puppet-agentin.

Skripti ajetaan kahdella komennolla tuoreessa käyttöjärjestelmässä:

$ wget renki.dy.fi/aptget.sh
$ bash aptget.sh

Ajoin skriptin ja varmistin, että hellopuppet.txt löytyy:

7. Linux Mint 18.3 Sylvia

Linkki jakelupaketin kotisivulle

Aluksi lisäsin masterilla hellopuppet-moduulin jakeluun mint.pp.htv.fi.

Seuraavaksi orjuutin Mintin kahdella komennolla:

$ wget renki.dy.fi/aptget.sh
$ bash aptget.sh

Valmista tuli