Лакмусовая бумажка марионетки: профили и роли тестирования
Я новичок в приемочном тестировании марионеток, и я пытаюсь использовать лакмусовую бумажку. Однако мне трудно найти соответствующую документацию и примеры, чтобы полностью понять ее.
До сих пор я был только на этих двух сайтах, чтобы изучить структуру тестирования:https://puppet.com/blog/integrate-litmus-acceptance-tests-into-cd-for-pe/ и https://puppetlabs.github.io/litmus/
Первый вопрос; Я видел, что на этой странице https://puppet.com/blog/integrate-litmus-acceptance-tests-into-cd-for-pe/ написано, что название теста должно мне
<module-name>_spec.rb
, но что, если я использую r10k и хочу протестировать роль или профиль? Если его назвать как-то вроде
profile_base_linux.rb
?
Второй вопрос: Ниже вы видите пример приемочного теста по указанной выше ссылке. У приемочного теста есть марионеточный код. Является ли этот код копией того, что находится в другом месте (например, в классе, который я создал)? Является ли этот код марионетки особенным в том смысле, что он одновременно проверяется? Будет ли этот код развернут, чтобы я мог потом протестировать его с помощью таких вещей, как
idempotent_apply(pp_ssh_dir_in_user_home)
? И если да, нужно ли мне копировать код из моего кода марионетки и вставлять его в тесты или есть способ импортировать код?
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
Мне очень сложно работать с документацией, и я буду очень признателен за любую помощь!