Puppet seadistamine Ubuntu süsteemis
Puppet paigaldus Ubuntu serveril
Sissejuhatus
Juhendi verisoon 1.1 Käesolev juhend on mõeldud inimesele, kes oskab UNIX käsurida ja saab aru mis info paikneb /etc/hosts failis.
Juhend käsitleb, kuidas installeerida ja seadistada Puppet master + kaks puppetit.
Selleks on vaja kolme masinat, millel jookseb ubuntu server.
Kõik näidetes kirjeldatud käsud käivitada administraatori õigustes.
example.com on näite domeen, vajadusel asenda see enda domeeniga.
Tarkvara versioonid:
- Ubuntu server 12.10
- Puppet 3.0.2
Paigalduse planeerimine
Puppeti taristu on võimalik üles ehitada erinevate mudelite alusel:
- tsentrailiseeritud (Agent / master)Keskne server pakub klientidele nende konfiguratsiooni. (Tasub tähelepanu pöörata serveri jõudlusele).
- Eraldiseisev või hajus (Standalone)Puppeti konfiguratsiooni sünkroniseeritakse masinate vahel kasutades muid vahendeid (näiteks versiooni haldust).
Selles juhendis käsitletav paigalduse tüüp on Agent / master
Agendid saavad oma konfiguratsiooni master serveri käest. Admnistraator peab haldama klientmasinate sertifikaate. Manifest faile tuleb kirjutada ainult puppetmaster serveri peal.
Võrgu seadistused
- 192.168.56.254 puppet.example.com puppe
- 192.168.56.201 puppetclient1.example.com
- 192.168.56.202 puppetclient2.example.com
- Puppet vajab toimimiseks töötavat nimelahendust, kas dns serveri näol (nõuab ka tagurpidi nimelahenduse toimimist) või iga masina hosts failis kirjed FQDN (täispikk domeeninimi) nimedega.
Tulemüüri seaded (Iptables)
Puppetmaster peab lubama sisenevad ühendused pordil 8140 (TCP)
Klientmasinad peavad lubama väljuvad ühendused puppetmaster 8840 pordi suunas.
Paigaldus
Puppet 3.0.2 versiooni paigaldamiseks peame kasutama puppetlab repositooriumit. Juhendi kirjutamise hetkel oli Ubuntu tarkvaravaramus Puppet 2.7. Serverile paigaldame paketi puppetmaste ja klientmasinatele puppet
Puppetmaster paigaldus
Puppetmasteri paigalduseks lisame puppetlabs repositooriumi ning paigaldame paketti puppetmaster.
wget http://apt.puppetlabs.com/puppetlabs-release-quantal.deb dpkg -i puppetlabs-release-quantal.deb apt-get update apt-get install puppetmaster -y
Peale installatsiooni käivitatakse puppetmaster automaatselt.
Puppet kliendi paigaldus ja käivitamine
wget http://apt.puppetlabs.com/puppetlabs-release-quantal.deb dpkg -i puppetlabs-release-quantal.deb apt-get update apt-get install puppet -y
Peale paigaldus tuleb seadistada puppet automaatselt käivituma. Selleks muuda failis /etc/default/puppet rida START=no.
START=yes
ning käivita kliendi poolel teenus puppet
service puppet start
Puppet kliendi käivitusintervall
Kui on vajadus muuta puppet kliendi käivitusintervalli, siis tuleb lisada faili /etc/puppet/puppet.conf rida runinterval = <aeg sekundites>.
puppet.conf
#/etc/puppet/puppet.conf [agent] runinterval = 600
Klientide lisamine puppetmasterile
Peale käivitumist pöörduvad klientmasinad vaikimisi aadressile puppet.example.com ning teevad sertifikaadi taotluse. Seda saab näha käsuga: Oluline on siinkohal ära märkida, et serveri ja kliendi FQDN peab olema mõlemalt poolt lahenduv, muidu läheb sertifikaatidega autentimine katki ning klientide lisamine Puppetmasterisse ei õnnestu.
puppet cert list
Sertifikaatitaotluste allkirjastamiseks tee järgnevat:
puppet cert sign puppetclient1.example.com puppet cert sign puppetclient2.example.com
Kontrollida saab:
puppet cert list –all
Peale seda on puppetmaster valmis oma alluvaid juhtima.
Seadistuste näited
Test 2: Vim, vimrc ja htop paigaldus
Allolev kujutab puppet-i seadistuste kataloogipuud (/etc/puppet/). Loodud või muudetud failid ja kataloogid on pakus kirjas.
/etc/puppet/ ├── auth.conf ├── files/ │ └── vimrc ├── fileserver.conf ├── manifests/ │ ├── classes/ │ │ ├── htop.pp │ │ └── vim.pp │ └── site.pp ├── modules/ ├── puppet.conf └── templates/
fileserver.conf
[files] path /etc/puppet/files allow *.example.com
Loon ka vastava kataloogi:
mkdir /etc/puppet/files
Loodud kataloogi kopeerin /etc/vim/vimrc faili.
manifests/site.pp
Faili kust kõik saab alguse. Selleks, et luua taaskasutatavaid komponente või klasse ning neid paremini hallata, loome kataloogi /etc/puppet/manifests/classes/ kuhu edaspidi paigutame klasside kirjeldused. Need tuuakse site.pp failile külge.
#site.pp import 'classes/*.pp' node 'basenode'{ include htop } node 'puppetmaster.example.com' inherits 'basenode' { } node 'puppetclient1.example.com' inherits 'basenode' { include vim } node 'puppetclient2.example.com' inherits 'basenode' { include vim }
manifests/classes/htop.pp
Htop-i paigaldamiseks loome klassi htop.pp ning nõuame, et paigaldatav versioon oleks tarkvaravaramust kõige uuem.
class htop ($version = 'latest') { package {'htop': ensure => $version } }
manifests/classes/vim.pp
Vim-nox paigaldamiseks loome klassi vim.pp ning nõuame, et paigaldatav versioon oleks tarkvaravaramust kõige uuem. Lisaks sellele kopeeritakse eelnevalt ettevalmistatud vimrc fail puppetmasterist /etc/vim/ kataloogi.
class vim ($version = 'latest') { package {'vim-nox': ensure => $version }
file { "/etc/vim/vimrc": source => "puppet:///files/vimrc", } }
Diagnostika võimalused
Süntaksilisi vigu aitas minul kõige paremini siluda allolev meetod, kus ei lasta protsessidel taustale minna.
Puppetmaster
Vigade tekkimisel soovitan puppetmaster teenuse seisma panna ning käivitada uuesti –verbose ja --no-daemonize
service puppetmaster stop puppet master --verbose –-no-daemonize
Puppet agent
Peatame puppet teenuse ning käivitame ta käsurealt.
service puppet stop puppet agent --test
Puppet kliendi eemaldamine ja lisamine ehk sertifikaatide haldus
Kuidas tühistada kliendi sertifikaati (a'la vahetad arvutid välja ja tahad uue kliendi registreerida juba olemasoleva nimega)
Olemasolevate sertifikaatide vaatamine
Selleks, et näha millised kliendid puppetmasteril küljes on käivita:
puppet cert --list --all #+ "puppetclient2.example.com" (SHA256) B7:6D:A5:A2:65:94:80:5E:C0:43:8E:EF:7D:AD:D9:16:FB:CF:4A:6D:BA:82:D5:08:ED:CD:8A:A4:8F:06:FE:E9 #+ "puppetmaster.example.com" (SHA256) 64:D1:F3:47:E6:88:8C:4B:FF:5A:1C:B3:E1:4A:41:C5:51:B2:95:90:52:1A:EA:13:B4:55:F1:78:AB:04:7F:B9 (alt names: "DNS:puppet", "DNS:puppet.example.com", "DNS:puppetmaster.example.com")
Sertifikaadi tühistamine
Olemasolevate kliendisertifikaatide kuvamine:
puppet cert --list –all
Näidisena eemadame kliendi puppetclient1
puppet cert clean puppetclient1.example.com
Peale sertifikaadi tühistamist taaskäivita puppetmaster.
service puppetmaster restart
Sertifikaadi taasväljastamine
Kliendi uuesti puppetmasteri külge lisamiseks tuleb kõigepealt tühistatud sertifikaadid eemaldada, selleks kustutame /var/lib/puppet/ssl / kataloogi ära. Sama FQDN-i aga täiesti uue masina puhul pole kustutada vaja.
rm -r /var/lib/puppet/ssl
Puppetmasterist uue sertifikaadi taotlemiseks käivita
puppet agent --test --waitforcert 120
Sertifikaadi taotluse allkirjastamine.
puppet cert --sign puppetclient1.example.com
Viited
http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html
http://docs.puppetlabs.com/guides/installation.html
http://www.packtpub.com/puppet-2-7-for-reliable-secure-systems-cloud-computing-cookbook/book
Koostas:
Toivo Pärnpuu