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