2.4. 安装 HTTP 服务器
我们的 Puppet 模块将安装运行 HTTP 服务器所需的软件包。这需要一个资源定义来为 httpd 软件包定义配置。
在模块的清单目录中 , 创建一个名为 httpd.pp 的新清单文件:
touch mymodule/manifests/httpd.pp
# touch mymodule/manifests/httpd.pp
此清单将包含我们模块的所有 HTTP 配置。为了进行组织,我们将将此清单与 init.pp 清单分开。
在新的 httpd.pp 清单中添加以下内容:
class mymodule::httpd { package { 'httpd': ensure => installed, } }
class mymodule::httpd {
package { 'httpd':
ensure => installed,
}
}
此代码定义了名为 httpd
的 mymodule
的子类,然后定义 httpd 软件包的软件包资源声明。ensure latex installed
属性告知 Puppet 检查是否安装了软件包。如果没有安装,Puppet 将执行 yum
来安装它。
我们还需要将这个子类包含在我们的主清单文件中。编辑 init.pp 清单:
class mymodule { include mymodule::httpd }
class mymodule {
include mymodule::httpd
}
现在需要测试模块。运行以下命令:
puppet apply mymodule/examples/init.pp --noop
# puppet apply mymodule/examples/init.pp --noop
...
Notice: /Stage[main]/Mymodule::Httpd/Package[httpd]/ensure: current_value absent, should be present (noop)
...
此输出通知消息是 ensure InventoryService installed 属性
的结果。current_value absent
表示 Puppet 已经检测到没有安装 httpd 软件包。如果没有 --noop
选项,Puppet 将安装 httpd 软件包。
puppet apply
命令将清单中的配置应用到您的系统。我们使用 test init.pp 清单,它引用 init.pp 清单。--noop
对配置执行空运行,它只显示输出,但不实际应用配置。