Zeile 18: |
Zeile 18: |
| * 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. |
| | | |
| == Puppet Master == | | == Puppet Master == |
− | Besuche für einen guten Einstieg die [[https://git.nordwest.freifunk.net/groups/ffnw-puppet|Puppet-Gruppe]] und schaue auf die [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet/blob/master/README.md|README]] des [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet/|Puppet Repos]]. | + | Besuche für einen guten Einstieg die [https://git.nordwest.freifunk.net/groups/ffnw-puppet Puppet-Gruppe] und schaue auf die [https://git.nordwest.freifunk.net/ffnw-puppet/puppet/blob/master/README.md README] des [https://git.nordwest.freifunk.net/ffnw-puppet/puppet/ Puppet Repos]. |
| | | |
| === Wichtige kommandos === | | === Wichtige kommandos === |
Zeile 58: |
Zeile 58: |
| | | |
| === Dateistruktur auf dem Puppetmaster === | | === Dateistruktur auf dem Puppetmaster === |
− | Die Konfiguration des Puppetmaster für die verwalteten Nodes liegt in `/etc/puppetlabs/code`. Im Unterordner `environments` liegen der Entwicklungszweig `master` und der Produktivzweig `production`. Im ersteren wird entwickelt, zweiterer enthält die Konfigurationen die auf die Nodes geht, die im produktiven Einsatz sind. | + | Die Konfiguration des Puppetmaster für die verwalteten Nodes liegt in ''/etc/puppetlabs/code''. Im Unterordner ''environments'' liegen der Entwicklungszweig ''master'' und der Produktivzweig ''production''. Im ersteren wird entwickelt, zweiterer enthält die Konfigurationen die auf die Nodes geht, die im produktiven Einsatz sind. |
| | | |
| 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. |
| | | |
Zeile 74: |
Zeile 74: |
| git pull --rebase | | git pull --rebase |
| </pre> | | </pre> |
− | Dies führt zu einem Update aus dem [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet|puppet]]-Projekt. | + | Dies führt zu einem Update aus dem [https://git.nordwest.freifunk.net/ffnw-puppet/puppet puppet]-Projekt. |
| | | |
| === Einzelnes Modul updaten === | | === Einzelnes Modul updaten === |
Zeile 90: |
Zeile 90: |
| git pull --rebase | | git pull --rebase |
| </pre> | | </pre> |
− | Dies führt zu einem Update aus dem [[https://git.nordwest.freifunk.net/ffnw-puppet/puppet-data|puppet-data]]-Projekt. | + | Dies führt zu einem Update aus dem [https://git.nordwest.freifunk.net/ffnw-puppet/puppet-data puppet-data]-Projekt. |
| | | |
| == Troubleshooting == | | == Troubleshooting == |
| === 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 ([[Administration/Handbücher/Server-Basiskonfiguration#Hostname | 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 [[Administration/Dienste/Puppet-Agent#Einrichtung_des_Puppet-Agent | Einrichtung des Puppet-Agent]])? |
| | | |
| === Error: invalid byte sequence in US-ASCII === | | === Error: invalid byte sequence in US-ASCII === |
Zeile 102: |
Zeile 102: |
| | | |
| === Could not find class ::ssh for runner01.ffnw.de at === | | === Could not find class ::ssh for runner01.ffnw.de at === |
− | Wird ein externes Paket genutzt? Dann muss dieses auf dem Puppet master installiert werden. Siehe [[Technik/Dokumentation/Puppet#Externe_Puppet_Pakete]] | + | Wird ein externes Paket genutzt? Dann muss dieses auf dem Puppet master installiert werden. Siehe [[Administration/Dienste/Puppet-Server#Externe_Puppet_Pakete | Externe Puppet Pakete]] |
| | | |
| === Could not autoload puppet/parser/functions/ip_address === | | === Could not autoload puppet/parser/functions/ip_address === |