Tehtävä 6 – Oma puppet moduuli

GitHub – Repository – tässä ovat moduulin manifesteja.

Kurssin pääteeksi viimeisenä tehtävänä on rakentaa oma moduuli.

Vähän ajateltuna päätin valita tällaisen tehtävän, josta on hyötyä jatkossakin. WordPress asentavan moduulin teko kuulosti mielenkiintoiselta, mutta vähän haastavalta. Loppujen lopuksi päätin ryhtyä rakentamaan just sen.

Suunnittelu.

Kuten jokainen WordPress asentanut tietää, asennuksen kokonaisuus koostuu muutamasta asiasta. Ne ovat LAMP-asennus, tietokannan muokkaaminen (uusi käyttäjä, salasanat), WordPress paketin lataus ja asennus. Päätin tehdä oma manifesti jokaiselle vaiheille erikseen. Päätin käyttää myös Puppet Labs Package joka järjestää moduulin niin, että siitä voidaan muutamalla komennolla luoda tar.gz paketti ja asentaa toiseen koneen. Aloitin lataamalla sen.

$ sudo apt-get update 

$ wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb sudo dpkg -i puppetlabs-release-trusty.deb

$ sudo apt-get install puppet

$  sudo puppet module install puppetlabs-apache

$ sudo puppet module install puppetlabs-mysql

$ mkdir ~/MyModules

$ cd  ~/MyModules

Generoin moduulin rungon jonka sitten lähden muokkaamaan:

$ sudo puppet module generate do-wordpress --skip-interview

–skip-interview ohittaa tietojen syötön metadata.json tiedostoon jossa moduulin metadata sijaitse

Sitten kirjoitin ensimmäisen manifestin, joka käsitellee Apache ja PHP:tä

$ nano ~/MyModules/do-wordpress/manifests/web.pp

Käytä "Takaisin" painiketta katsottua manifestia GitHub.com:issa.

https://github.com/xelsinki/test/blob/master/web.pp

Seuraavaksi kirjoitin manifestin jossa sijaitsee muuttujat.

$ nano ~/MyModules/do-wordpress/manifests/conf.pp

https://github.com/xelsinki/test/blob/master/conf.pp

Ideana on se, että muuttujia vaihdetaan vain tässä tiedostossa. Kun moduuli käynnistetään toisella serverillä niin riittää, että yksityistietoja muokataan vain tässä.

Muuttujia on yhteensä 7:

$root_password – root käyttäjän salasana
$db_name – tietokannan nimi
$db_user – tietokannan käyttäjä
$db_host – host missä tietokanta sijaitse
$db_user_password -tietokannan käyttäjän salasana

ja vielä 2 muuttujia koostuvia mitkä tarvitaan seuraavassa manifestissa.

$db_user_host = "${db_user}@${db_host}" – käyttäjä@host

$db_user_host_db= "${db_user}@${db_host}/${db_name}.*" – käyttäjä@host/tietokanta.*

Seuraavaksi kirjoitin tietokanta moduulin:

$ sudo nano ~/MyModules/do-wordpress/manifests/db.pp

https://github.com/xelsinki/test/blob/master/db.pp

Tässä manifestissa muokataan MySQL Server ja Client tietoja.

– Määritetään root salasana
– Luodaan wordpress tietokanta
– Luodaan wordpress tietokannan käyttäjän
– Annetaan käyttäjälle täydet oikeuden muokata tietokanta

Seuraavaksi latasin wordpress asennus paketin. Valmista pakettia Ubuntun repositorissa ei ole, niin on helpompi ladata sen käsiin do-wordpress/files kansioon. Purasin sen /tmp kansioon, otin kopion wp-config-sample.php tiedostosta do-wordpress/template kansioon ja käytän sen runkona wordpress konfiguraatiossa. Sitten tyhjensin /tmp kansion ja avasin kopioidun tiedoston muokattavaksi.

mkdir ~/MyModules/do-wordpress/files
cd ~/MyModules/do-wordpress/files
wget http://wordpress.org/latest.tar.gz
mkdir ~/MyModules/do-wordpress/templates
cd /tmp
tar -xvzf ~/MyModules/do-wordpress/files/latest.tar.gz
cp /tmp/wordpress/wp-config-sample.php ~/MyModules/do-wordpress/templates/wp-config.php.erb
rm -rf /tmp/wordpress
sudo nano ~/MyModules/do-wordpress/templates/wp-config.php.erb

https://github.com/xelsinki/test/blob/master/wp-config.php.erb

Laitoin sinne muuttujat.

<?php
define('DB_NAME', '<%= scope.lookupvar('wordpress::conf::db_name') %>');
define('DB_USER', '<%= scope.lookupvar('wordpress::conf::db_user') %>');
define('DB_PASSWORD', '<%= scope.lookupvar('wordpress::conf::db_user_password') %>');
define('DB_HOST', '<%= scope.lookupvar('wordpress::conf::db_host') %>');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

$table_prefix  = 'wp_';

define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

Seuraavaksi kirjoitin wordpress manifestin:

nano ~/MyModules/do-wordpress/manifests/wp.pp

https://github.com/xelsinki/test/blob/master/wp.pp

Tässä manifestissa puretaan ladattu latest.tar.gz (wordpress paketti), kopioidaan sen /var/www kansioon jossa sijaitse apachen pyörittämät web-sivut. Viimeisenä kopioidaan templateista aikaisemmin luomani wp-config.php.erb oikeaan paikaan josta wordpress hae konfiguraatiot.

Viimeisenä moduulin manifestina kirjoitin init.pp jossa märitän käynnistysvuorot:

nano ~/MyModules/do-wordpress/manifests/init.pp

https://github.com/xelsinki/test/blob/master/init.pp

Lopussa kootaan modulin:

$ cd ~/MyModules
$ sudo puppet module build do-wordpress
$ sudo puppet module install ~/MyModules/do-wordpress/pkg/do-wordpress-0.1.0.tar.gz

Nyt voidaan katsoa mitkä modulit ovat asennettu koneeseen.

$ sudo puppet module list

Sitten voi käynnistää modulin:

sudo puppet apply -e 'class {"wordpress":}'

Jos on imestynyt virheitä täytyy poistaa modulin:

sudo puppet module uninstall do-wordpress

Sitten korjata virheellinen manifesti ja koota paketti uudestaan.
(jos muutoksia eivät tule voimaan pitää poista ~/MyModules/do-wordpress/pkg/ kansion, jossa koottu paketti sijaitse. Sitten toistaa kokontumista)

 

Oma pakettini ei toimi vielä, olen just muokkaamassa sen.

Toimivan version julkaisen tässä ja GitHub:issa.

Sain sen toimimaan. Näytän esityksessä ja julkaisen korjaukset huomenna.

Lopputulos: Nyt WordPress voidaan asentaa muutamassa minuutissa.

Lähteet:

https://github.com/puppetlabs/puppetlabs-mysql

https://www.digitalocean.com/community/tutorials/how-to-create-a-puppet-module-to-automate-wordpress-installation-on-ubuntu-14-04

 

escitalopram cialis for sale lexapro 20mg effects of stopping lexapro suddenly viagra tesco canada viagra viagra without a doctor prescription usa acyclovir ointment 5 buy viagra what is cipro side effects of tamoxifen ciprofloxacin used for lowest cialis prices cialis savings card tamoxifen cialis dosage zovirax cream ciprofloxacin coverage levitra generic viagra on line viagra soft viagra single packs zithromax 500 mg what is ciprofloxacin used for cialis 30 day trial coupon acyclovir 800 mg 5 times a day viagra costs generic cialis acyclovir 800mg cialis coupon 20 mg pfizer viagra viagra 100 mg how to wean off lexapro without withdrawals ciprofloxacin when will cialis go generic cialis vs viagra best price viagra female viagra is ciprofloxacin a penicillin acyclovir 200mg cialis pharmacy prices ciprofloxacin eye drops finasteride 5mg side effects cialis free trial cialis voucher ciprofloxacin drops how does viagra work azithromycin for uti acyclovir dosing buy generic viagra tamoxifen and bone pain how to take cialis viagra generico azithromycin tamoxifen citrate levitra 20mg finasteride for women lexapro benefits for women levitra 20 mg precio farmacia cipro drug class azithromycin 500 erfahrungen what is ciprofloxacin prescribed for tamoxifen side effects in women over 55 levitra 20mg cost per pill cipro antibiotics daily cialis lexapro side effects in men vardenafil 20mg viagra vs cialis vs levitra cialis patent expiration date extended viagra without a doctor prescription lexapro medication viagra uk viagra 50mg propecia lexapro para que sirve viagra effects viagra prices cipro for uti viagra natural escitalopram 10 mg cialis dosage recommendations what is cialis ciprofloxacin hcl how long does viagra last 9 levitra at walmart how to get off lexapro cialis coupon azithromycin cost lexapro and weight gain tamoxifen side effects viagra sex order viagra what is finasteride buy levitra online viagra 100 cealis cialis side effects cialis discount ciprofloxacin dosage azithromycin tablets finasteride 5mg tab side effects lexapro tamoxifen cost how much does cialis cost tamoxifen langzeitfolgen viagra activate zovirax lexapro generic cialis prices cialis without a doctor’s prescription lexapro coupons cipro antibiotic viagra en ligne livraison 24h side effects of acyclovir does lexapro cause weight gain ciprofloxacin hcl 500 mg side effects lexapro and weight gain in women ciprofloxacin hcl 500 mg viagra pillen kruidvat liquid cialis ciprofloxacin drug class over the counter viagra cipro side effects ciprofloxacin 500mg viamedic cialis cialis vs viagra herbal viagra cialis testimonials lexapro vs wellbutrin what does viagra do finasteride efectos secundarios tamoxifen and foods to avoid generic for lexapro what does ciprofloxacin treat azithromycin three times a week azithromycin class cialis pricing cialis coupons printable viagra 100mg tablets retail price ciprofloxacin bnf what is cipro used for viagra for sale uk finasteride side effects in men cialis price viagra vs cialis vs levitra cialis 20mg directions what is lexapro what does ciprofloxacin 500mg treat azithromycin 250 mg how long for lexapro to work cialis generic availability lexapro 10 mg what is lexapro used for viagra alternatives online cialis azithromycin 500 mg viagra vs cialis what is escitalopram ciprofloxacin side effects levitra vs viagra azithromycine eg 500 mg bijsluiter sophia viagra cialis coupon print finasteride 5 mg canadian viagra cipro viagra from canada azithromycin 250mg cialis coupons from manufacturer cialis canadian pharmacy nolvadex azithromycin for strep throat zovirax ointment viagra for women azithromycin pregnancy finasteride dosage is azithromycin penicillin 200 cialis coupon cialis alternative cipro 500 cialis patent expiration 2017 azithromycin liquid viagra bestellen viagra vs cialis revatio vs viagra what is acyclovir levitra cialis on line cialis pills viagra price azithromycin vs erythromycin cialis online azithromycin without a doctor’s prescription acyclovir for cold sores side effects of finasteride 5mg what infections does ciprofloxacin treat what is cipro usually prescribed for cialis copay card azithromycine 250 mg buying viagra what is azithromycin used for finasteride tablets azithromycin 5 day dose pack viagra for sale cialas escitalopram effets secondaires zithromax dosage how to wean off lexapro lexapro generic name viagra kaufen viagra canada what is ciprofloxacin what is azithromycin for finasteride medication equipe argentine viagra viagra for men discount viagra viagra medicine levitra prezzo in farmacia azithromycin 250mg tablets 6 pack lexapro manufacturer website side effects of cialis viagra on line no prec propecia side effects azithromycin pediatric dosing zithromax viagra sans ordonnance vardenafil vs viagra ciprofloxacin side effects after age 60 finasteride for hair loss cialis samples overnight cialis coupons ciprofloxacin dosierung cyalis cialis levitra 10 mg prezzo ciprofloxacin spc cipro dangers finasteride 1mg cialis generic lexapro withdrawal symptoms cialis trial escitalopram oxalate ciprofloxacin 250 mg cialis professional cialis dosage strengths cialis or viagra canada cialis viagra generic erectile dysfunction cialis finasteride permanent side effects viagra nebenwirkungen levitra prices generic lexapro viagra pills is tamoxifen chemotherapy levitra vs viagra for hardness levitra online tamoxifen interaction azithromycin coverage finasteride vs dutasteride cost of cialis acyclovir cialis pills for sale thuoc azithromycin ciprofloxacin for dogs escitalopram 10mg acyclovir 400 mg ciprofloxacin class lexapro weight gain cipro side effects in elderly what is viagra tamoxifen nebenwirkungen generic cialis at walmart lexapro vs celexa buy cialis how does acyclovir work zoloft vs lexapro lexapro for anxiety cheap cialis cialis daily cipro uses escitalopram 20 mg what is tamoxifen used for levitra coupons zovirax pills cialis medication acyclovir vs valacyclovir finasteride 5mg side effects mayo clinic cialis 10 mg viagra tablet canadian cialis cialis coupons 2017 acyclovir medication lexapro and weight loss what bacteria does ciprofloxacin kill cialis cheap viagra samples viagra coupons cialis 30 day sample levitra rezeptfrei deutschland lexapro side effects acyclovir dose finasteride long term effects online viagra generic viagra 100mg lexapro and wellbutrin combination therapy azithromycin pregnancy category wholesale cialis tamoxifen therapy escitalopram nebenwirkungen how to use viagra cialis for bph what is lexapro for zithromax antibiotic acyclovir cream acyclovir 800 mg for shingles ciprofloxacin 500 ciprofloxacin side effects in women viagra ohne rezept auf rechnung viagra ohne rezept aus deutschland side effects of ciprofloxacin how does lexapro work side effects of finasteride finasteride reviews cilias levitra 20 mg von bayer ciprofloxacin 500 mg for urinary tract infection is azithromycin viagra alternative levitra bayer 20mg meilleur prix viagra coupon lexapro overdose levitra without a doctor prescription lexapro 10mg side effects of azithromycin 250 mg zovirax for cold sores cialis sample azithromycin medscape acyclovir ointment azithromycin side effects buy cialis online cialis 5mg daily tamoxifen bijwerkingen acyclovir dosage for cold sores azithromycin 250 lexapro side effects men discount cialis acyclovir 800 mg ciprofloxacin dose buy levitra ciprofloxacin ophthalmic solution cialis 20mg cialis for women what is acyclovir for ciprofloxacin uses azithromycin for pneumonia escitalopram side effects what is acyclovir used for viagra dosage acyclovir 400mg finasteride side effects of lexapro levitra vs viagra cialis 5mg tamoxifen side effects in women side effects of lexapro in women zovirax dosage azithromycin and alcohol what is tamoxifen levitra 20 mg cost walmart buy viagra online women viagra azithromycin drug class effects of stopping finasteride what is finasteride used for azithromycin tablet sex viagra for women finasteride results price cialis cialis otc lexapro side effects in women escitalopram 10 mg para que sirve utilisation viagra lexapro cipro and tendonitis cialis tadalafil cialis from canada generic levitra ciprofloxacin 500mg antibiotics side effects azithromycin dosage finasteride 5 mg tab cialis effects generic viagra side effects of lexapro 10 mg lexapro withdrawal azithromycin z pak lexapro dosing cialis website cialis for men side effects of ciprofloxacin 500 mg viagra pill finasteride hair loss azithromycin 500 antibiotic ciprofloxacin finasteride 5mg cialis patent expiration cheap levitra generic levitra vardenafil 20mg common side effects of ciprofloxacin 500 mg stopping lexapro lexapro dosages ciprofloxacin nebenwirkungen what does finasteride do cialis for daily use viagra receptfritt what is azithromycin pfizer viagra coupons from pfizer ciprofloxacin hydrochloride ophthalmic generic cialis tadalafil is lexapro a controlled substance ciprofloxacin 250mg acyclovir for shingles generic for cialis viagra side effects how long for azithromycin to take effect free cialis viagra wiki side effects of azithromycin ciprofloxacin 500 mg tabletten viagra cialis viagra tablets side effects of viagra natural viagra wellbutrin and lexapro buy generic levitra ciprofloxacin hydrochloride viagra cost cialis reviews finasteride effets secondaires cialis samples acyclovir side effects finasteride side effects viagra what works better than viagra tamoxifen and weight gain lexapro bula viagra substitute post finasteride syndrome zithromax z-pak ciprofloxacin hcl 500 mg tab what does azithromycin treat cialis 20 mg viagra 100mg azithromycin 500mg cialis cost cialis 5 mg lexapro reviews cheap viagra cipro dosage weaning off lexapro azithromycin eye drops levitra dosage lexapro 5mg azithromycin uses levitra 20 mg cost of viagra azithromycine levitra coupon tamoxifen lawsuits lexapro vs zoloft first few days on lexapro finasteride and enlarged prostate azithromycin 250 mg treatment ciprofloxacin 500 mg lexapro dosage cialis canada celexa vs lexapro where to buy viagra acyclovir dosage how does cialis work levitra erfahrungen ciprofloxacin 500mg tablets ciprofloxacin 500mg antibiotics free viagra viagra wikipedia cialis generic tadalafil withdrawal from lexapro viagra online