多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 管理 Apache 服务 Apache 是一款流行的 web 服务器,然而对于其配置者来说并不轻松。 Puppet 可以在一定程度上缓解配置者因管理 Apache 服务器所带来的痛苦。 #### 操作步骤 1. 如果 Apache 模块还不存在就创建它: ``` # mkdir /etc/puppet/modules/apache # mkdir /etc/puppet/modules/apache/templates # mkdir /etc/puppet/modules/apache/manifests ``` 2. 使用如下内容创建 /etc/puppet/modules/apache/manifests/init.pp 文件: ``` class apache { package { "apache2-mpm-prefork": ensure => installed } service { "apache2": enable => true, ensure => running, require => Package["apache2-mpm-prefork"], } file { "/etc/apache2/logs": ensure => directory, require => Package["apache2-mpm-prefork"], } file { "/etc/apache2/conf.d/name-based-vhosts.conf": content => "NameVirtualHost *:80", require => Package["apache2-mpm-prefork"], notify => Service["apache2"], } } ``` 3. 在一个节点中添加如下代码: ``` include apache ``` 4. 运行 Puppet: ``` # puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1309189590' notice: /Stage[main]/Apache/Package[apache2-mpm-prefork]/ensure: ensure changed 'purged' to 'present' notice: /Stage[main]/Apache/File[/etc/apache2/logs]/ensure: created notice: /Stage[main]/Apache/File[/etc/apache2/conf.d/name-basedvhosts. conf]/ensure: defined content as '{md5}78465aacbd01eb537b94 1b21ae0af8b8' info: /Stage[main]/Apache/File[/etc/apache2/conf.d/name-basedvhosts. conf]: Scheduling refresh of Service[apache2] notice: Finished catalog run in 39.45 seconds ``` #### 更多用法 在下一节中,我们将看到如何为 Apache 定义虚拟主机的内容。 然而你可能会发现,你需要为整个 Apache 服务器(包括虚拟主机)提供特殊的配置选项。 你可以使用 Puppet 通过部署 apache2.conf 来配置这些选项, 但是将配置片段放在 /etc/apache2/conf.d 目录中会更加整洁清晰。 例如,你可以在 init.pp 中添加如下代码: ``` define snippet() { file { "/etc/apache2/conf.d/${name}": source => "puppet:///modules/apache/${name}", notify => Service["apache2"], } } ``` 并在节点上包含如下的代码片段: ``` apache::snippet { "site-specific.conf": } ```