Skillnad mellan versioner av "Rootmanual:Puppet"

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
(There is no SITE.pp)
 
(15 mellanliggande sidversioner av 7 användare visas inte)
Rad 3: Rad 3:
 
== Lysators puppetkonfiguration ==
 
== Lysators puppetkonfiguration ==
   
Vår konfiguration finns i ett SVN-repository i filsystemet:
+
Vår konfiguration finns i ett git-repository i en zone på biggles:
   
file:///lysator/puppet
+
Endast läsaccess: git://puppet.lysator.liu.se/
  +
Läs- och skrivaccess: ssh://puppet.lysator.liu.se/opt/puppet
   
 
Det är inte så hjälpsamt att titta på repositoriet som det är, så för att få något användbart ur det bör du checka ut en kopia.
 
Det är inte så hjälpsamt att titta på repositoriet som det är, så för att få något användbart ur det bör du checka ut en kopia.
   
svn co file:///lysator/puppet/trunk <målkatalog>
+
git clone ssh://puppet.lysator.liu.se/opt/puppet <målkatalog>
   
 
== Hur konfigurerar jag min dator med hjälp av Puppet? ==
 
== Hur konfigurerar jag min dator med hjälp av Puppet? ==
   
 
För att köra puppet på en nyinstallerad maskin för vilken det finns existerande puppetkonfiguration:
 
För att köra puppet på en nyinstallerad maskin för vilken det finns existerande puppetkonfiguration:
* 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).
+
* 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.
+
* Se till att maskinen har ett korrekt hostname och korrekta IPv4- och IPv6-adresser satta. Se även till att även IPv6-adressen finns med i /etc/hosts.
* Installera puppet
+
* Installera puppet (samt git och build-essential).
  +
* Kopiera <tt>/opt/puppet/conf.git</tt> från en maskin som redan kör puppet (exempelvis [[faust]]) till <tt>/tmp/puppet</tt>.
* 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
 
  +
* Se till att du är i en screen samt är inloggad som root
* 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å
+
* Kör <tt>make install</tt> 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.git 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.
 
* När du känner dig klar och det verkar fungera, rensa bort mappen du kopierade över, den behövs nu inte längre.
   
  +
== Hur man ändrar Lysators puppetkonfiguration ==
För att ändra i puppetconfen gör du följande:
 
  +
* Checka ut svn repositoryt i /lysator/root/puppet till nått lämpligt ställe och gör dina ändringar där.
 
  +
* Införskaffa en kopia av <tt>ssh://puppet.lysator.liu.se/opt/puppet</tt> med ovan nämnda metod.
* 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.
 
  +
* Gör dina ändringar, kör add och commit med bra loggmedelanden som du känner för under tiden
* Innan du checkar in ändringarna, kör även make run och testa dina ändringar.
 
  +
* Kör <tt>make dry</tt> för att kontrollera dina ändringar (man kan eventuellt vilja bli root redan nu då man annars får att en del ändringar kommer att göras som inte alls kommer att göras pga att man inte har läsaccess till en del saker).
* Checka in ändringarna.
 
  +
* Bli root.
* Cronjobb på puppetfierade maskiner kommer att se till att ändringarna appliceras sedan.
 
  +
* Kör <tt>make run</tt> för att testköra dina ändringar.
  +
* Se till att dina ändringar fungerar.
  +
* Kör (inte som root) 'git push' för att checka in dina ändringar.
  +
* Vänta på cronjobbet som applicerar puppetreglerna var fjärde timme på alla andra datorer.
   
   
Rad 34: Rad 40:
 
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
 
 
node "ws1", "ws2", "ws3" inherits workstations
+
node "ws1", "ws2", "ws3"
 
{
 
{
  +
include workstations
 
}
 
}
   
Rad 55: Rad 62:
 
Övriga .pp filer hanterar diverse tjänster och inkluderas av olika sorters noder ifrån SITE.pp, vilka man behöver ändra i när man lägger till en ny nod med nytt os beror på vad det är för sorts nod. Enklast är att bara kolla i SITE.pp vilka klasser som inkluderas och sedan ta klasserna i tur och ordning och se om det är något som måsta läggas till för att det ska fungera.
 
Övriga .pp filer hanterar diverse tjänster och inkluderas av olika sorters noder ifrån SITE.pp, vilka man behöver ändra i när man lägger till en ny nod med nytt os beror på vad det är för sorts nod. Enklast är att bara kolla i SITE.pp vilka klasser som inkluderas och sedan ta klasserna i tur och ordning och se om det är något som måsta läggas till för att det ska fungera.
   
Mer dokumentation för puppet finns på http://reductivelabs.com/trac/puppet och framförallt är det
+
Mer dokumentation för puppet finns på http://reductivelabs.com/trac/puppet
  +
  +
== Installera Puppet ==
  +
  +
På många system är den puppet som pakethanteraren tillhandahåller föråldrad, och i många falls saknas den helt.
  +
För att installera på dem systemen kan någonting i stil med nedan göras.
  +
  +
=== CentOS 7 ===
  +
{{Föråldrad}}
  +
  +
<pre>rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
  +
yum install puppet</pre>
   
 
[[Kategori:Rootmanual]]
 
[[Kategori:Rootmanual]]
  +
[[Kategori:Instruktioner]]

Nuvarande version från 21 december 2020 kl. 14.33

Lysator kör huvudsakligen Puppet för att administrera arbetsstationerna i ~, men det vore önskvärt om vi kunde börja använda puppet till alla sorters tjänster.

Lysators puppetkonfiguration

Vår konfiguration finns i ett git-repository i en zone på biggles:

Endast läsaccess: git://puppet.lysator.liu.se/
Läs- och skrivaccess: ssh://puppet.lysator.liu.se/opt/puppet

Det är inte så hjälpsamt att titta på repositoriet som det är, så för att få något användbart ur det bör du checka ut en kopia.

git clone ssh://puppet.lysator.liu.se/opt/puppet <målkatalog>

Hur konfigurerar jag min dator med hjälp av Puppet?

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

  • 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 korrekta IPv4- och IPv6-adresser satta. Se även till att även IPv6-adressen finns med i /etc/hosts.
  • Installera puppet (samt git och build-essential).
  • Kopiera /opt/puppet/conf.git från en maskin som redan kör puppet (exempelvis faust) till /tmp/puppet.
  • Se till att du är i en screen samt är inloggad som root
  • 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.git 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.

Hur man ändrar Lysators puppetkonfiguration

  • Införskaffa en kopia av ssh://puppet.lysator.liu.se/opt/puppet med ovan nämnda metod.
  • Gör dina ändringar, kör add och commit med bra loggmedelanden som du känner för under tiden
  • Kör make dry för att kontrollera dina ändringar (man kan eventuellt vilja bli root redan nu då man annars får att en del ändringar kommer att göras som inte alls kommer att göras pga att man inte har läsaccess till en del saker).
  • Bli root.
  • Kör make run för att testköra dina ändringar.
  • Se till att dina ändringar fungerar.
  • Kör (inte som root) 'git push' för att checka in dina ändringar.
  • Vänta på cronjobbet som applicerar puppetreglerna var fjärde timme på alla andra datorer.


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"
{
  include workstations
}

workstations noden tar i sin tur och ärver vidare från mer generella noder samt inkluderar klasser som är specifika för arbetsstationer.

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.

Notera att det finns två nivåer av uppdelningar av paketen, dels är det olika huvudklasser vilka är de som inkluderas utifrån (klasserna som inte har något ::operativystem efter sig), igenom att använda sig av olika sådana kan man få uppelning på vilken typ av maskiner paket ska finnas (arbetsstationer, cpuservrar mm). Och sedan är det inom varje sådan kategori uppdelat per operativsystem då paket ofta kan ha olika namn och så på olika operativsystem.

puppet.pp hanterar att allt som behövs för att alla puppetmanifest ska fungera okej finns på plats, att puppet manifesten hålls uppdaterade, cronjob för puppet existerar och att puppetkörningar loggas.

Övriga .pp filer hanterar diverse tjänster och inkluderas av olika sorters noder ifrån SITE.pp, vilka man behöver ändra i när man lägger till en ny nod med nytt os beror på vad det är för sorts nod. Enklast är att bara kolla i SITE.pp vilka klasser som inkluderas och sedan ta klasserna i tur och ordning och se om det är något som måsta läggas till för att det ska fungera.

Mer dokumentation för puppet finns på http://reductivelabs.com/trac/puppet

Installera Puppet

På många system är den puppet som pakethanteraren tillhandahåller föråldrad, och i många falls saknas den helt. För att installera på dem systemen kan någonting i stil med nedan göras.

CentOS 7

Varning! Den här informationen är troligtvis föråldrad. Om du har tid, kontrollera gärna hur verkligheten ser ut och uppdatera den här sidan.


rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
yum install puppet