Apache-2.2
用於設置 Web 伺服器的範例 puppet 清單
只是用 puppet 弄濕了我的腳(到目前為止只是閱讀),並希望有一些範例(現實生活)清單/食譜可以設置一個典型的 web 伺服器,比如 apache/mysql/php 等,以及基本的伺服器加固( Ubuntu)
使用 puppet 最好記住的是嘗試為所有清單創建模組,以便程式碼可以輕鬆地用於多個伺服器和環境。
還可以通過這種方式使用 SVN 或 GIT,您可以輕鬆跟踪更改並檢查給定應用程序所需的配置文件。正如 kashani 所說,Puppet Forge和Example42都可以作為很好的參考。
下面是我為 Web 伺服器創建的範例清單。如果需要,這將為您提供安裝/解除安裝 Web 伺服器的選項。您會注意到它使用事實來檢查作業系統和體系結構以安裝正確的 RPMS (Centos)。儘管您可以輕鬆地將其作為模板並使用正確的包名稱擴展到 Ubuntu。
class apache ($disable = "false", $apacheconf = "default") { if $disable == "false" { $installed = present $enable = true $ensure = "running" } else { $installed = absent $enable = false $ensure = "stopped" } case $operatingsystem { 'CentOS', 'RedHat': { if $architecture == "x86_64" { package { 'httpd': name => "httpd.x86_64", ensure => $installed, } } else { package { 'httpd': name => "httpd.i386", ensure => $installed, } } service { 'httpd': ensure => $ensure, enable => $enable, } file { "http.conf": path => "/etc/httpd/conf/httpd.conf", owner => root, group => root, mode => 0644, source => $apacheconf ? { 'default' => "puppet:///modules/apache/httpd.conf", } } } } }
要向基本清單添加附加功能,您只需從另一個清單中呼叫它。比如安裝SSL http伺服器。在下面的程式碼中,您會看到 –include apache– 用於呼叫上面的清單,然後還安裝其他選項。
class apache::ssl ($disable = "false") { include apache if $disable == "false" { $installed = present $enable = true $ensure = "running" } else { $installed = absent $enable = false $ensure = "stopped" } case $operatingsystem { 'CentOS', 'RedHat': { case $architecture { 'x86_64': { package { 'mod_ssl': name => "mod_ssl.x86_64", ensure => $installed, require => Package['httpd'], } } 'i386':{ package { 'mod_ssl': name => "mod_ssl.i386", ensure => $installed, require => Package['httpd'], } } } } } }