出于测试目的,我想使用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
安装puppet服务器
$ sudo apt-get install puppetserver
在我们的Puppet服务器上,安装puppetlabs-apache模块:
$ sudo puppet module install puppetlabs-apache
在manifests目录中,需要创建一个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时,它还没有安装。
我哪里错了?
发布于 2018-09-06 10:26:05
如果Apache模块位于正确的模块路径中,那么问题是您没有任何代码来包含该模块。
为了简单起见,让我们忘记Puppet master上的文件结构等等,只需创建一个apache.pp文件(将其保存在/tmp中或您喜欢的任何位置),并为其提供以下内容:
class apache2 {
package {'apache2':
ensure => 'present',
}
}
include apache2
现在试一试:
$ sudo puppet apply apache.pp
您应该会看到Puppet install the apache2包。
但是,按照惯例,并且为了与Puppet master正确集成,您现在需要将此内容放在预期的文件位置。
apache类(您已经拥有的代码)需要在文件${modulepath}/apache2/manifests/init.pp
中。
这是为了满足Puppet的自动加载器。您可以找到有关该here的更多信息。
同时,模块路径是记录在here中的,它可以根据Puppet的版本以及如何设置一切而有所不同。
要找到您的模块路径,请尝试:
$ sudo puppet config print modulepath
现在,如果您已经准备好了所有的文件,那么接下来应该能够以不同的方式包含该类,如下所示:
$ sudo puppet apply -e "include apache2"
一旦您得到了工作,就可以阅读roles and profiles模式了。
https://stackoverflow.com/questions/52192133
复制相似问题