加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 手动应用puppet类

发布时间:2020-12-13 23:13:26 所属栏目:Windows 来源:网络整理
导读:我正在测试一个类似于以下内容的puppet init.pp文件(在 Windows上): class myclass { package { 'java': ensure = installed,provider = 'msi',source = 'S:puppet-repojdk1.6.0_31.msi',install_options = { 'INSTALLDIR' = 'C:toolsjava' },}} 然后我
我正在测试一个类似于以下内容的puppet init.pp文件(在 Windows上):
class myclass {    
 package { 'java':
    ensure => installed,provider => 'msi',source => 'S:puppet-repojdk1.6.0_31.msi',install_options => { 'INSTALLDIR' => 'C:toolsjava' },}
}

然后我的site.pp文件看起来像:

node default {
  include myclass
}

我创建了一个只调用myclass模块的tests / init.pp文件:

class { 'myclass': }

我可以运行tests / init.pp文件,它确实正确安装了java.我想知道是否有办法从命令行运行myclass模块而不创建单独的tests / init.pp文件.或者也许我可以将myclass中的package语句移动到它自己的.pp文件中,并将其包含在init.pp中,然后如果我愿意,我可以运行该单独的.pp文件.有什么更正确的方法呢?

首先,如果您还不知道,则需要验证语法的技巧:
puppet parser validate my_file.pp

现在,你如何对新类进行现场测试可能会因你的部署而有所不同,但我可以告诉你我是如何做到的,也许它会对你的情况有所帮助.或者也许ServerFault上的每个人都会告诉我我有多错.

在任何给定的环境中,我都有一组使用继承的节点声明:

node base_production_environment {
  include ssh
  include ntp
  include whatever_else
}

node /prod-appd+.mycompany.com/ inherits base_production_environment { }

现在,当我编写一个新类时,我想在推出它之前先在特定系统上测试它,所以我添加一个更具体的(通过主机名)节点声明,以便它将覆盖不太具体(通过正则表达式)的声明,像这样:

node 'prod-app7.mycompany.com' inherits base_production_environment {
  include my_new_class
}

我对此进行了简化,以突出显示使用特定节点声明进行抽样检查新类.在将它们推广到生产之前,我们还使用environments将更改推广到不太关键的环境.

所以我只是重新阅读你的问题,我想到你可能正在使用推模块目录方法,而不是使用puppetmaster.如果这是真的,您可以包含一个用于测试目的的类,例如:

puppet apply --modulepath=C:puppet-modules -e "include my_class"

不过,我不知道这是否是Windows下puppet的正确目录语法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读