Palvelinten hallinta - ICT4TN022-3
Takaisin juureen

Kotitehtävä h1
29.10.2017

1. Demonin asennus puppetilla

Tein moduulin, joka asentaa Mumble-serverin ja konfiguroi asetustiedoston.

Renki-serverilläni pyörii mumble, jonka asetustiedostoon olen tehnyt omat säätöni. Olen mm. muuttanut nimen, muuttanut käyttäjien maksimimäärää jne.

Tarkastelin ensiksi puppetilla asetustiedoston tietoja:

$ sudo puppet resource file /etc/mumble-server.ini
file { '/etc/mumble-server.ini':
  ensure  => 'file',
  content => '{md5}44dfa61212feab4e9afbef8a00e72a05',
  ctime   => '2017-10-06 15:13:18 +0300',
  group   => '120',
  mode    => '640',
  mtime   => '2017-10-06 15:13:18 +0300',
  owner   => '0',
  type    => 'file',
}

Tästä minua lähinnä kiinnostaa tyyppi file.

Seuraavaksi loin init.pp:n:

$ mkdir -p mumble/modules/mumble/manifests
$ nano mumble/modules/mumble/manifests/init.pp

Ja kirjoitin seuraavan koodin(ilman #kommentteja tosin):

class mumble {
	package { 'mumble-server':	
	#Paketin nimi
		allowcdrom => "true",	
			#Asennus onnistuu myös livetikulta
		ensure => "installed",	
			#Varmistaa että paketti on asennettu
	}

	service { 'mumble-server':	
	#Seuraavaksi käsitellään palvelua
		ensure => 'running',	
			#Varmistaa, että se on ajossa
		enable => 'true',	
			#Palvelu käynnistyy bootissa
		require => Package['mumble-server'],	
			#vaaditaan että mumble-server asennettu
	}												

	file { "/etc/mumble-server.ini":
	#käsitellään ini.tiedostoa
		ensure  => 'file',		
			#Varmistetaan, että se on tiedosto
		content => template('mumble/mumble-server.ini.erb'),	
			#Sisältö templatesta
		require => Package['mumble-server'],		
			#Vaaditaan paketti mumble-server
		notify => Service['mumble-server'],		
			#Käynnistetään palvelu uudestaan
	}
}

Halusin käyttää templatea, jolla luon mumble-server.inin. Käytin apuna tätä ohjetta.

$ mkdir mumble/modules/mumble/templates
$ nano mumble/modules/mumble/templates/mumble-server.ini.erb

Tuohon tiedostoon copypastesin koko sisällön serverilläni olevasta mumble-server.inistä.

Seuraavaksi loin site.pp:n, jonka kautta ajan moduulit:

$ mkdir mumble/manifests
$ cd mumble/manifests
$ echo "include mumble" | tee site.pp

Latasin valmiin moduulin githubiin.

Asensin VirtualBoxissa Ubuntu Server 16.04.3 LTS:n ja testasin puppet-moduulia siinä. Asensin koneelle gitin ja puppetin, ja kloonasin moduulin gitistä:

$ git clone https://github.com/matiasraisanen/mumble.git

Ja seuraavaksi testasin moduulin:

$ cd mumble
$ sudo puppet apply --modulepath modules/ manifests/site.pp

Kone raksutti aikansa ja oli aika testata tulokset. Käynnistin Mumblen pöytäkoneellani ja yhdistin VirtualBox-koneen IP:hen:

Servulle pääsee, ja welcome messagekin on päivittynyt. Tästä päättelin, että paketti asentui oikein, ja mumble-server.ini päivitettiin omilla conffeillani.