Author: Jan Thomas
Puppet Labs - The Company behind Puppet
Puppet - The OpenSource version
Puppet Enterprise- The commercial version
The Community- Active and vibrant
Documentation - Main and Official reference
PDF Docs - For download and offline access
Puppet Modules: Module Forge, GitHub
MEN NB! Vi skal bruke minst mulig av de. Offisiell velsignet modulliste vil komme på wikien
MCollective - Infrastructure Orchestration framework
Hiera - Key-value lookup tool where Puppet data can be placed
PuppetDB - An Inventory Service and StoredConfigs backend
Puppet DashBoard - A Puppet Web frontend and External Node Classifier (ENC)
The Foreman - A well-known third party provisioning tool and Puppet ENC
Geppetto - A Puppet IDE based on Eclipse
Dette lab-oppstettet lager 3 stk virtualbox VMer ved hjelp av Vagrant; 2 linux og en solaris11. Den ene linuxen blir satt opp som puppetmaster med dashboard og puppetdb. Den andre linuxen og solaris11 er tenk som klienter.
NB! Laben er utviklet på PC med linux som hoved-os, og derfor kun testet der. Har du windows på din PC, er det nytt farvann og ukjent terreng, men både Virtualbox, Vagrant og Git skal være mulig å installere på Windows. Se feks http://guides.beanstalkapp.com/version-control/git-on-windows.html for instruksjoner.
-
Sjekk at du har en PC som oppfyller kravene:
- PC: Kapabel til å kjøre 64bits programvare (linux: sjekk linux-bits)
NB! Husk å installere 64-bits versjon av programmene under!!! - Diskplass: Minimum ~10G Detaljer:
.../lab ~50Mb ~/vagrant.d (holds the .box files) ~2.6G ~/VirtualBox VMs (holds the Virtualbox machines) ~ VM maks disk (de er laget med en tynn vmdk diskfil, dvs filen vokser etterhvert som mer og mer installeres i VMen):
VM Max disk puppet 4G client1 20G client2 30G - RAM: Du bør ha 2G RAM ledig for å kjøre alle 3 lab-boxene. Detaljer (dette kan overstyres i Vagrantfile):
VM RAM puppet 384M client1 224M client2 512M - PC: Kapabel til å kjøre 64bits programvare (linux: sjekk linux-bits)
-
Installer VirtualBox
-
Installer Vagrant
-
Installer Git (eller for linux:
sudo yum install git
/sudo apt-get install git
-
Lag en egen lab katalog
-
Klon dette prosjektet:
git clone https://github.com/janth/vagrant.git
Hvis du kjører windows:
- Legg følgende i din
/etc/hosts
/%SystemRoot%\system32\drivers\etc\hosts
172.16.10.10 puppet.evry.dev puppet pm 172.16.10.11 client1.evry.dev client1 c1 172.16.10.12 client2.evry.dev client2 c2
- Legg vagrant box ssh-rsa key i din ssh config: https://github.com/mitchellh/vagrant/tree/master/keys TBD...
- Oppdater modulene som brukes for å sette opp lab'en
TBD...
Hvis PCen din kjører linux:
-
Kjør vagrant...
# Denne fikser de manuelle stegene for windows automatisk! ;-> bin/1stSetup.sh vagrant up puppet vagrant provision puppet vagrant up client1 vagrant up client2
Deretter...
- Sjekk dashboard (http://172.16.10.10:3000/), du skal se 3 noder (ja, puppetmaster puppet (aka puppet.evry.dev) er node av seg selv)
- Skriv puppetkode. NB! Se wiki for EVRY 8D44 Puppet Best Practice (http://212.18.136.81/wiki/display/MV/Puppet)
- Ved dagens slutt:
- Husk å lagre alle filer, commit kode til ditt repo, push til origin
- La VMene hvile:
vagrant suspend client1
vagrant suspend client2
- Neste dag:
vagrant resume client1
vagrant resume client2
To valg:
- Enten https://github.com/rodjek/vim-puppet (har bedre keyword farging) som er enklest hvis en bruker vim bundle/vundle/pathogen:
- git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- vim ~/.vimrc
- legg til følgende:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" Required: Let Vundle manage Vundle
Bundle 'gmarik/vundle'
Bundle 'rodjek/vim-puppet'
Bundle 'godlygeek/tabular'
Bundle 'scrooloose/syntastic'
" SnipMate + vim-snippets
Bundle 'MarcWeber/vim-addon-mw-utils'
Bundle 'tomtom/tlib_vim'
Bundle 'garbas/vim-snipmate'
Bundle 'honza/vim-snippets'
filetype plugin indent on " required!
- last inn:
vim +BundleInstall +qall
- Eller hent http://downloads.puppetlabs.com/puppet/puppet.vim og legg i din ~/.vim/syntax
Alternativ editor: Geppetto (Eclipse plugin): http://cloudsmith.github.io/geppetto/
- Dashboard: http://172.16.10.10:3000/
- PuppetDB: http://172.16.10.10:8080/
- CLI spørringer: sudo puppet agent --test curl -k -H "Accept: yaml" https://puppet:8140/production/facts/puppet.evry.dev curl -H "Accept: application/json" http://puppet:8080/v2/facts/puppet.evry.dev curl -H "Accept: application/json" http://puppet:8080/v2/metrics/mbean/java.lang:type=Memory
tail -f /var/log/puppet*/* /usr/share/puppet-dashboard/log/*
- puppet-lint site/site.pp
- puppet apply --noop --verbose site/site.pp
- Bruk alltid siste versjon av vagrant: http://downloads.vagrantup.com/
- Installer puppet: http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html
- Installer puppet-lint: http://puppet-lint.com/