Puppet

From HackerNet
Revision as of 10:57, 5 June 2015 by Sparco (talk | contribs)
Jump to: navigation, search

Puppet är ett automatiseringsverktyg för servrar. Puppet är ett väldigt kraftfullt verktyg, du kan få en fil att se likadan ut på 1000 olika servrar på bara 2 minuter eller att se till att SSH confen är den samma. Puppet kan köras i både Unix och Windows miljör. Många stora företag använder Puppet tex, Google, Twitter, Spotify, Dell. Puppet är mycket användbart om man har servrar med olika operativsystem. Skillnaderna mellan olika operativsystem spelar ingen roll, man kan sätta upp en huvudserver och lagra konfigurationer för alla servrar. Huvudservern kallas master och klienterna kör agenter. Klienterna ansluter regelbundet till mastern för att synkronisera sina konfigurationer och rapportera alla lokala ändringar tillbaka till mastern. Master måste vara av samma version eller nyare än de agenter som ansluter till den. Puppet finns i Enterprise eller som open source.

Installation

Server

Ubuntu 14.04 LTS

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y install puppetmaster rdoc ntp
sudo touch /etc/puppet/manifests/site.pp

Fedora 21 Server

sudo yum update && sudo yum install puppet-server ntp
sudo touch /etc/puppet/manifests/site.pp 

Klient

sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install puppet ntp
sudo yum update && sudo yum install puppet ntp

Namnuppslag

Default för att hitta till mastern gör klienterna ett namnuppslag på puppet. Sätt upp i din DNS så att puppet pekar mot mastern. T.ex. puppet.exempel.se. Sedan på klienten:

echo "search exempel.se" | sudo tee -a /etc/resolv.conf

Om klienten använder DHCP kan det hända att resolv.conf skrivs över.
Testa

ping puppet

Det måste också vara öppet för klienterna mot mastern på TCP 8140

Konfiguration

Kommandotabell

Pre-2.6

Post-2.6

puppetmasterd puppet master
puppetd puppet agent
puppet puppet apply
puppetca puppet cert
ralsh puppet resource
puppetrun puppet kick
puppetqd puppet queue
filebucket puppet filebucket
puppetdoc puppet doc
pi puppet describe

SSL

All kommunikation görs med SSL och certifikat används för autentisering.
På klient:

sudo puppet agent --waitforcert 120 --test

På server:

sudo puppet cert list
sudo puppet cert sign klient.exempel.se

Puppetmasterd