Palvelinten Hallinta H6: Oma (DAW) Moduuli

Tehtävässä käytetty tietokone

paskaware.png

LMMS -moduuli

Teron palvelinten hallinnan ict4tn022-3 –kurssilla tehtävä olin luoda oma moduuli. Valitsin moduulin aiheeksi Digital Audio Workstation ohjelman asennuksen, joista valitsin LMMS. Asensin skriptin avulla puppetin, ja määritin Init.pp -kansioon asentumaan LMMS:n, luomaan uudelle käyttäjälle käyttäjänkansiot, (jotta LMMS avautuu suoraan oletustilaansa) sekä suorittamaan apt-get päivityksen jonkin muutoksen tapahtuessa.

kysyy tota.png

(Ohjelman avautuessa kysytään kyseisen kansion luontia)

nkpkp

Asennettuani LMMS:n, huomasin ettei ohjelman mukana tule Vestige -pluginia, joka olisi DAW:n toiminnallisuudessa hyödyllinen, joten asetin moduulin tavoitteeksi asentaa automaattisesti tuo kyseinen plugin.

novestige

Vestigen lisäys

Lähdin etsimään tietoa, miten saisin asennettua kyseisen pluginin LMMS:ään, ja päädyin löytämään repositorit ja niiden asennusohjeet sitä varten.

Ladattuani ja ajettuani repot, sekä asennettuani LMMS:n uudestaan, ohjelmaan ilmestyikin Vestige.

VEstigetääl.png

Tämän jälkeen aloitin puhtaalta pöydältä, ja lähdin selvittämään kuinka suorittaa tekemäni toiminnot moduulissa. Päädyin googlettamaan asiaa, ja päädyin ohjeisiin, joita muovaamalla sain aikaiseksi kokeilumoduulit repojen lataamisen.

class kokeilu {

exec {‘retrieve_kxstudio-repos_9.4.6~kxstudio1_all.deb’:
command => “/usr/bin/wget -q https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_9.4.6~kxstudio1_all.deb -O /home/xubuntu/kxstudio-repos_9.4.6~kxstudio1_all.deb”,
}

}

 

class kokeilu {

exec {‘retrieve_kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb’:
command => “/usr/bin/wget -q https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb -O /home/xubuntu/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb”,
}

}

Kyseiset kokeilumoduulit ajamalla, sain ladattua repot, sekä ajettua ne.

 

 

 

Seuraavaksi lähdin selvittämään miten ajaa ladatut  repot, ja päädyin muokkaamaan aiempia moduuleja:

class kokeilu {exec {‘sudo dpkg’:
command => “/usr/bin/dpkg -i /home/xubuntu/kxstudio-repos_9.4.6~kxstudio1_all.deb”,
}

}

 

class kokeilu {

exec {‘sudo dpkg’:
command => “/usr/bin/dpkg -i /home/xubuntu/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb”,
}

}

Asennukset näyttivät onnistuvan.

asennustoimii.png

Moduulin kokeilua

Ajettuani kootun moduulin, tajusin että moduulin järjestys pettää, ja moduuli yrittää suorittaa repoja, jotka latautuvat vasta suorituksen jälkeen.

virheeeror.png

Muokkasin moduulin repolatauksiin before -metaparametrit, sekä apt-get updateen notifyn, jotta päivitys tapahtuu ennen LMMS:n asennusta repositoreilla.

vestige1.png

Lopputuloksena moduuli latasi tarvittavat repot Vestigen lataamiseen, ja Vestige asentui LMMS:n yhteydessä.

Alla video moduulin ajosta:

Videon moduulissa joudun avaamaan LMMS:n manuaalisesti, mutta loin version jossa ohjelma avautuu moduulin lopuksi, mutta jostain syystä LMMS väitti ettei ole luotu uuden käyttäjän hakemistoja, ja LMMS:n vakiopolku herjaantui, kun loi ennestään vakiopolun päälle moduulilla saman polun.

Moduuli execillä

class daw {

exec {‘retrieve_kxstudio-repos_9.4.6~kxstudio1_all.deb’:
command => “/usr/bin/wget -q https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_9.4.6~kxstudio1_all.deb -O /home/xubuntu/kxstudio-repos_9.4.6~kxstudio1_all.deb”,
before => Exec[‘sudo dpkg’],
}
exec {‘retrieve_kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb’:
command => “/usr/bin/wget -q https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb -O /home/xubuntu/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb”,
before => Exec[‘sudo dpkg’],
}
exec {‘sudo dpkg’:
command => “/usr/bin/dpkg -i /home/xubuntu/kxstudio-repos_9.4.6~kxstudio1_all.deb ; /usr/bin/dpkg -i /home/xubuntu/kxstudio-repos-gcc5_9.4.6~kxstudio1_all.deb”,
}
file { ‘/home/xubuntu/lmms’:
ensure => ‘directory’,
before => Exec[‘lmms’],
}
file { ‘/home/xubuntu/lmms/presets’:
ensure => ‘directory’,
before => Exec[‘lmms’],
}
file { ‘/home/xubuntu/lmms/projects’:
ensure => ‘directory’,
before => Exec[‘lmms’],
}
file { ‘/home/xubuntu/lmms/samples’:
ensure => ‘directory’,
before => Exec[‘lmms’],
}
exec { ‘apt-get update’:
command => ‘/usr/bin/apt-get update’,
subscribe => Exec[‘sudo dpkg’],
notify => Package[‘lmms’],
}
package { “lmms”:
ensure => ‘installed’,
allowcdrom => true,
}
exec { ‘lmms’:
command => “/usr/bin/lmms”,
require => Package[‘lmms’],
}
}

Moodulia tehtiin aikaväleillä:

5.12 klo. 11.30-13.20

10.12 klo. 21:00-6:28

11.12 klo. 22:02-02:19

Lähteet:

https://www.puppetcookbook.com/posts/exec-a-command-in-a-manifest.html

https://docs.puppet.com/puppet/3.8/

http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5

https://lmms.io/wiki/index.php?title=Working_with_VSTs

http://kxstudio.linuxaudio.org/Repositories#Ubuntu

https://stackoverflow.com/questions/18844199/how-to-fetch-a-remote-file-e-g-from-github-in-a-puppet-file-resource

https://github.com/Irmagma/daw/blob/master/puppet/modules/daw/manifests/init.pp

https://github.com/Irmagma/dawmodulescript/blob/master/dawmodule.sh

https://ask.puppet.com/question/31062/how-to-execute-two-commands-one-after-the-other-in-puppet-program/

https://puppet.com/docs/puppet/5.3/lang_relationships.html

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s