Rootmanual:Puppet: Skillnad mellan sidversioner

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 17: Rad 17:
'''Konfiguration'''
'''Konfiguration'''


SITE.pp är den primära filen för puppet, här i specifieras vilka saker på varje enskild maskin som ska inkluderas av puppet, detta görs med node statements.
'''SITE.pp''' är den primära filen för puppet, här i specifieras vilka saker på varje enskild maskin som ska inkluderas av puppet, detta görs med node statements.
Noderna är uppbyggda så att det finns ett par generella nodtyper som sedan noder för de enskilda maskinerna ärver av. Exempelvis kan det se ut såhär för arbetstationer
Noderna är uppbyggda så att det finns ett par generella nodtyper som sedan noder för de enskilda maskinerna ärver av. Exempelvis kan det se ut såhär för arbetstationer
Rad 24: Rad 24:
}
}


'''environment.pp''' här i definieras alla generiska paket som ska installeras på maskiner (paket som hör samman med tjänster definieras tillsammans med tjänsten i en egen fil)
Filen är uppbyggd i ett antal olika klassifieringar av paket, var och en i sin typ uppdelat i olika distributioner/operativsystem. Vanligast är väl att man vill lägga till nått paket på begäran av användare, för debian system så gör man detta igenom att lägga till ett paket i listan under '''user-packages::debian''' (denna inkluderas automatiskt av user-packages klassen på följande sätt:

class user-packages
{
include "user-packages::$operatingsystem"
}
Detta innebär att ska man köra på ett nytt operativsystem måste en specifik version av user-packages (och alla andra relevanta paket sektioner i filen) skapas för det operativsystemet för att saker ska fungera.





Versionen från 29 september 2009 kl. 12.33

För att köra puppet på en nyinstallerad maskin för vilken det finns existerande pupet konfiguration:

  • Om maskinen inte finns i puppet sedan tigidare, lägg till den på rätt ställe i SITE.pp samt se till att maskinspecifika filer i Files/ finns (bl.a. xorg.conf).
  • Se till att maskinen har ett korrekt hostname och IPv4 address satt.
  • Installera puppet
  • Använd t.ex. SCP för att kopiera över /opt/puppet/conf ifrån någon annan maskin till nått temporärt ställe
  • Kör "make install" i mappen du precis kopierade över, datorn kommer då att konfigureras som den ska se ut, puppet confarna kommer att checkas ut i /opt/puppet/conf och cronjob kommer att installerat som ser till att köra puppet med conf därifrån lite då och då
  • När du känner dig klar och det verkar fungera, rensa bort mappen du kopierade över, den behövs nu inte längre.

För att ändra i puppetconfen gör du följande:

  • Checka ut svn repositoryt i /lysator/puppet till nått lämpligt ställe och gör dina ändringar där.
  • Kör sedan make dry för att se vad dina ändrignar kommer göra och att det inte är några fel i dina filer.
  • Innan du checkar in ändringarna, kör även make run och testa dina ändringar.
  • Checka in ändringarna.
  • Cronjobb på puppetfierade maskiner kommer att se till att ändringarna appliceras sedan.


Konfiguration

SITE.pp är den primära filen för puppet, här i specifieras vilka saker på varje enskild maskin som ska inkluderas av puppet, detta görs med node statements. Noderna är uppbyggda så att det finns ett par generella nodtyper som sedan noder för de enskilda maskinerna ärver av. Exempelvis kan det se ut såhär för arbetstationer

node "ws1", "ws2", "ws3" inherits workstations
{
}

environment.pp här i definieras alla generiska paket som ska installeras på maskiner (paket som hör samman med tjänster definieras tillsammans med tjänsten i en egen fil) Filen är uppbyggd i ett antal olika klassifieringar av paket, var och en i sin typ uppdelat i olika distributioner/operativsystem. Vanligast är väl att man vill lägga till nått paket på begäran av användare, för debian system så gör man detta igenom att lägga till ett paket i listan under user-packages::debian (denna inkluderas automatiskt av user-packages klassen på följande sätt:

class user-packages
{
 include "user-packages::$operatingsystem"
}

Detta innebär att ska man köra på ett nytt operativsystem måste en specifik version av user-packages (och alla andra relevanta paket sektioner i filen) skapas för det operativsystemet för att saker ska fungera.