Änderungen

keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:  
== Entwicklung von Puppet Modulen ==
 
== Entwicklung von Puppet Modulen ==
 
Die Projektressourcen liegen unter:
 
Die Projektressourcen liegen unter:
* Puppet-Gruppe und Projektübersicht: https://git.nordwest.freifunk.net/groups/ffnw-puppet
+
* Puppet-Gruppe und Projektübersicht: https://git.nordwest.freifunk.net/groups/ffnw-puppet
* Puppet-Milestones: https://git.nordwest.freifunk.net/groups/ffnw-puppet/milestones
+
* Puppet-Milestones: https://git.nordwest.freifunk.net/groups/ffnw-puppet/milestones
    
Es ist absolut notwendig, dass du die [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet|README des Puppet-Base-Repos]] liest und verstehst, bevor du anfängst für Puppet zu entwickeln.
 
Es ist absolut notwendig, dass du die [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet|README des Puppet-Base-Repos]] liest und verstehst, bevor du anfängst für Puppet zu entwickeln.
Zeile 25: Zeile 25:  
=== Wichtige kommandos ===
 
=== Wichtige kommandos ===
 
==== Starten und Stoppen ====
 
==== Starten und Stoppen ====
* service puppetserver restart
+
* service puppetserver restart
 +
 
 
==== Agent vom Master entfernen ====
 
==== Agent vom Master entfernen ====
 
<pre>
 
<pre>
Zeile 61: Zeile 62:  
Die Ordnerstruktur der Zweige ist in folgender Grafik dargestellt. Sie ist komplexer als zunächst geplant und sicherlich noch verbesserbar, bietet gegenüber den bis dahin probierten, gängigeren Strukturen die folgenden Vorteile:
 
Die Ordnerstruktur der Zweige ist in folgender Grafik dargestellt. Sie ist komplexer als zunächst geplant und sicherlich noch verbesserbar, bietet gegenüber den bis dahin probierten, gängigeren Strukturen die folgenden Vorteile:
   −
* Jeder verwaltete Node kann beliebig viele unterschiedliche rollen (zB supernode, webserver, ...) einnehmen, die in roles-available und unter `:hierarchy` in der `hiera.yaml` definiert sind
+
* Jeder verwaltete Node kann beliebig viele unterschiedliche rollen (zB supernode, webserver, ...) einnehmen, die in roles-available und unter `:hierarchy` in der `hiera.yaml` definiert sind
* Jeder Parameter kann auf dem Node, in den Rollen oder auf allgemeiner ebene festgelegt werden. Durch Verwendung des `:merge_behavior: deeper` führt hiera diese Ebenen zusammen. Dies erspart redundante Definitionen und beugt Fehlern vor.
+
* Jeder Parameter kann auf dem Node, in den Rollen oder auf allgemeiner ebene festgelegt werden. Durch Verwendung des `:merge_behavior: deeper` führt hiera diese Ebenen zusammen. Dies erspart redundante Definitionen und beugt Fehlern vor.
* Die Klassen-Includes und die Konfiguration der Klassen liegen an ''einer'' Stelle, nämlich in den jeweiligen Hiera-Dateien der Nodes, Rollen oder allgemeinen Einstellungen.
+
* Die Klassen-Includes und die Konfiguration der Klassen liegen an ''einer'' Stelle, nämlich in den jeweiligen Hiera-Dateien der Nodes, Rollen oder allgemeinen Einstellungen.
    
{{attachment:puppet-hiera.svg.png|puppet-hiera.svg.png|width=300}}
 
{{attachment:puppet-hiera.svg.png|puppet-hiera.svg.png|width=300}}
Zeile 94: Zeile 95:  
=== Could not request certificate: execution expired ===
 
=== Could not request certificate: execution expired ===
 
Das heißt in der Regel, dass der Puppet agent den Puppet Master aufgrund einer Fehlkonfiguration nicht erreichen kann. Auf dem Puppet Agent prüfen:
 
Das heißt in der Regel, dass der Puppet agent den Puppet Master aufgrund einer Fehlkonfiguration nicht erreichen kann. Auf dem Puppet Agent prüfen:
* Ist ein FQDN als Hostname gesetzt ([[Technik/Dokumentation/Server-Basiskonfiguration#Hostname]])?
+
* Ist ein FQDN als Hostname gesetzt ([[Technik/Dokumentation/Server-Basiskonfiguration#Hostname]])?
* Ist in der Puppet-Config ein Puppet-Paster eingetragen (server=puppet.ffnw.de, siehe [[Technik/Dokumentation/Puppet#Einrichtung_des_Puppet-Agent]])?
+
* Ist in der Puppet-Config ein Puppet-Paster eingetragen (server=puppet.ffnw.de, siehe [[Technik/Dokumentation/Puppet#Einrichtung_des_Puppet-Agent]])?
    
=== Error: invalid byte sequence in US-ASCII ===
 
=== Error: invalid byte sequence in US-ASCII ===
* https://git.nordwest.freifunk.net/ffnw-puppet/puppet-grmlzsh/issues/1
+
* https://git.nordwest.freifunk.net/ffnw-puppet/puppet-grmlzsh/issues/1
    
=== Could not find class ::ssh for runner01.ffnw.de at ===
 
=== Could not find class ::ssh for runner01.ffnw.de at ===
Zeile 104: Zeile 105:     
=== Could not autoload puppet/parser/functions/ip_address ===
 
=== Could not autoload puppet/parser/functions/ip_address ===
{{{
+
<pre>
 
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, Could not autoload puppet/parser/functions/ip_address: no such file to load -- netaddr at /etc/puppetlabs/code/environments/production/modules/icvpn/templates/bird.epp:29:13 on node ol01.sn.ffnw.de
 
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, Could not autoload puppet/parser/functions/ip_address: no such file to load -- netaddr at /etc/puppetlabs/code/environments/production/modules/icvpn/templates/bird.epp:29:13 on node ol01.sn.ffnw.de
}}}
+
</pre>
    
See README of ipcalc module: https://git.nordwest.freifunk.net/ffnw-puppet/puppet-ipcalc
 
See README of ipcalc module: https://git.nordwest.freifunk.net/ffnw-puppet/puppet-ipcalc
{{{
+
<pre>
 
puppetserver gem install netaddr
 
puppetserver gem install netaddr
 
service puppetserver restart  
 
service puppetserver restart  
}}}
+
</pre>
    
=== File[/etc/dnsmasq.conf] doesn't seem to be in the catalog ===
 
=== File[/etc/dnsmasq.conf] doesn't seem to be in the catalog ===
Zeile 122: Zeile 123:  
=== Usermanagement ===
 
=== Usermanagement ===
 
User anlegen, User löschen, SSH Keys einem neuen User hinzufügen, Homedir anlegen
 
User anlegen, User löschen, SSH Keys einem neuen User hinzufügen, Homedir anlegen
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-user|Source des Modules]]
+
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-user|Source des Modules]]
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-user/blob/master/README.md|Modul Readme]]
+
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-user/blob/master/README.md|Modul Readme]]
    
=== Unattended Upgrades ===
 
=== Unattended Upgrades ===
 
Das Modul Unattended-Upgrades automatisiert den Update-Prozess für einige Pakete sodass hier bei den meisten Paketen keine händischen Upgrades gemacht werden müssen.
 
Das Modul Unattended-Upgrades automatisiert den Update-Prozess für einige Pakete sodass hier bei den meisten Paketen keine händischen Upgrades gemacht werden müssen.
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-unattended_upgrades|Source des Modules]]
+
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-unattended_upgrades|Source des Modules]]
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-unattended_upgrades/blob/master/README.md|Modul Readme]]
+
* [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-unattended_upgrades/blob/master/README.md|Modul Readme]]