Лакмусовая бумажка марионетки: профили и роли тестирования

Я новичок в приемочном тестировании марионеток, и я пытаюсь использовать лакмусовую бумажку. Однако мне трудно найти соответствующую документацию и примеры, чтобы полностью понять ее.

До сих пор я был только на этих двух сайтах, чтобы изучить структуру тестирования: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

Мне очень сложно работать с документацией, и я буду очень признателен за любую помощь!

0 ответов

Другие вопросы по тегам