Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet 木偶石蕊:测试配置文件和角色_Puppet_Acceptance Testing_Litmus_R10k - Fatal编程技术网

Puppet 木偶石蕊:测试配置文件和角色

Puppet 木偶石蕊:测试配置文件和角色,puppet,acceptance-testing,litmus,r10k,Puppet,Acceptance Testing,Litmus,R10k,我不熟悉木偶验收测试,我正在尝试使用石蕊。然而,我很难找到propper文档和示例来充分理解它 到目前为止,我只在这两个网站上学习测试框架: 和 第一个问题;我看到这个页面说测试的名称应该是我\u spec.rb,但是如果我使用的是r10k并且想要测试角色或配置文件呢?它应该被命名为类似于profile\u base\u linux.rb 第二个问题:下面是上面链接中的验收测试示例。验收测试有一些伪代码。这段代码是驻留在其他地方(比如我创建的类)的副本吗?这是木偶代码,但在某种意义上说,它是特

我不熟悉木偶验收测试,我正在尝试使用石蕊。然而,我很难找到propper文档和示例来充分理解它

到目前为止,我只在这两个网站上学习测试框架: 和

第一个问题;我看到这个页面说测试的名称应该是我
\u spec.rb
,但是如果我使用的是r10k并且想要测试角色或配置文件呢?它应该被命名为类似于
profile\u base\u linux.rb

第二个问题:下面是上面链接中的验收测试示例。验收测试有一些伪代码。这段代码是驻留在其他地方(比如我创建的类)的副本吗?这是木偶代码,但在某种意义上说,它是特殊的测试在同一时间?是否要部署此代码,以便我以后可以使用诸如
幂等应用(pp_ssh_dir_in_user_home)
之类的东西对其进行测试?如果是这样,我是否必须从我的puppetcode复制代码并粘贴到测试中,或者是否有方法导入代码

require 'spec_helper_acceptance'

pp_ssh_dir_in_user_home = <<-PUPPETCODE
    class { sshkeymgmt:
      users => {
        test1 => {
          ensure => present,
          gid => 5001,
          uid => 5001,
          homedir => '/home/test1',
          sshkeys => ['ssh-rsa AAAA...Hot Test1'],
        },
        test2 => {
          ensure  => present,
          gid  => 5002,
          uid  => 5002,
          homedir  => '/home/test2',
          sshkeys => ['ssh-rsa AAAA...pnd Test2'],
        },
      },
      groups => {
        test1 => {
          gid => 5001,
          ensure => present,
        },
        test2 => {
          gid => 5002,
          ensure => present,
        },
      },
      ssh_key_groups => {
        ssh1 => {
          ssh_users => ['test1', 'test2'],
        },
      },
      authorized_keys_base_dir => '',
      authorized_keys_owner => '',
      authorized_keys_group => '',
      authorized_keys_permissions => '',
      authorized_keys_base_dir_permissions => '',
    }
PUPPETCODE

idempotent_apply(pp_ssh_dir_in_user_home)

describe file('/home/test2/.ssh/authorized_keys') do
  it { is_expected.to be_file }
  its(:content) { is_expected.to match %r{ssh-rsa AAAA\.\.\.pnd Test2} }
end

# a different way to check for a user account
describe user('test1') do
  it { is_expected.to exist }
  it { is_expected.to belong_to_primary_group 'test1' }
  it { is_expected.to have_home_directory '/home/test1' }
  it { is_expected.to have_uid 5001 }
  it { is_expected.to have_authorized_key 'ssh-rsa AAAA...Hot Test1' }
end
要求“规格帮助器验收”
pp_ssh_dir_in_user_home={
确保=>存在,
gid=>5001,
uid=>5001,
homedir=>'/home/test1',
sshkeys=>['ssh-rsa AAAA…热测试1'],
},
test2=>{
确保=>存在,
gid=>5002,
uid=>5002,
homedir=>'/home/test2',
sshkeys=>['ssh-rsa AAAA…pnd Test2'],
},
},
组=>{
test1=>{
gid=>5001,
确保=>存在,
},
test2=>{
gid=>5002,
确保=>存在,
},
},
ssh_密钥_组=>{
ssh1=>{
ssh_users=>['test1','test2'],
},
},
授权密钥\u基本\u目录=>'',
授权密钥所有者=>'',
授权密钥组=>'',
授权密钥\u权限=>'',
授权的\u密钥\u基本\u目录\u权限=>'',
}
木偶码
幂等元应用(pp\u ssh\u dir\u in\u user\u home)
描述文件('/home/test2/.ssh/authorized_keys')的作用
它{is_expected.to be_file}
它的(:content){u应该匹配%r{ssh rsa AAAA\.\.\.pnd Test2}}
结束
#检查用户帐户的另一种方法
描述用户('test1')所做的工作
它{应该存在}
它{应该属于{u主组'test1'}
它{应该有{home}目录'/home/test1'}
它{应该有{uid 5001}
它{应该有{授权的{密钥'ssh rsa AAAA…Hot Test1'}
结束

我有一个非常困难的时间与文件,并将非常感谢任何形式的帮助

由于文档似乎表明您可以定义多个验收测试,因此似乎不太可能要求所有验收测试都具有相同的名称。事实上,文档似乎根本没有指定任何必需的命名,尽管我认为
.rb
扩展实际上可能是一个需求,也可能是前面的
\u spec
部分。与一般要求相反,特定的规范rb可能是与将石蕊测试集成到CD for PE工具相关的要求。