设置p并安装apache软件包问题

时间:2018-09-05 19:24:27

标签: apache ubuntu module puppet

出于测试目的,我想使用puppet在Ubuntu 16.4 puppet master上设置puppet并部署apache,而不必通过以下步骤来使用节点:

$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb

通过运行以下命令安装软件包:

$ dpkg –i puppet5-release-xenial.deb

更新软件包列表

$ apt-get update

安装人偶服务器

$ sudo apt-get install puppetserver

在我们的Puppet服务器上,安装puppetlabs-apache模块:

$ sudo puppet module install puppetlabs-apache

在清单目录中,需要创建一个init.pp类。 /etc/puppet/modules/apache/manifests/init.pp

class apache2 {
    package {'apache2':
          ensure => 'present',
    }
}

要尝试安装我使用的apache软件包:

$ sudo puppet apply init.pp

然后我得到了以下内容:

Notice: Compiled catalog for osboxes.home in environment production in 0.03 seconds
Notice: Finished catalog run in 0.04 seconds

当我检查是否安装了apache时,没有安装。

我要去哪里错了?

1 个答案:

答案 0 :(得分:3)

如果您的Apache模块位于正确的模块路径中,那么问题就在于您没有任何代码来包含该模块。

为简单起见,让我们忽略Puppet主文件上的文件结构,等等,只创建一个文件apache.pp(将其保存在/ tmp或您喜欢的任何位置)并提供以下内容:

class apache2 {
    package {'apache2':
        ensure => 'present',
    }
}

include apache2

现在尝试:

$ sudo puppet apply apache.pp

您应该看到Puppet安装了apache2软件包。

但是,按照惯例,为了与Puppet母版正确集成,您现在需要将此内容放置在预期的文件位置。

类apache(您已经拥有的代码)必须位于文件${modulepath}/apache2/manifests/init.pp中。

这是为了满足Puppet的 autoloader 。您可以找到有关here的更多信息。

同时, modulepath 已记录在here中,它可能因Puppet的版本以及所有设置方式而异。

要找出您的模块路径,请尝试:

$ sudo puppet config print modulepath

现在,如果所有文件都已放置到位,那么接下来您应该能够以其他方式包括该类,如下所示:

$ sudo puppet apply -e "include apache2"

一旦工作成功,就该阅读roles and profiles模式了。