Chef - создание cronjob и тестирование его с Inspec - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь настроить cronjob для запуска команды (в этом примере ls) один раз в день. Для этого я использую ресурс cron .

Проблема в том, что я не знаю, как проверить это с Inspect. Я пытался использовать crontab , но он не работает.

Вот код:

// code
cron 'my-ls' do
  minute '1'
  hour '0'
  command 'ls'
end

// test
describe crontab.commands('ls') do
  its('minutes') { should cmp '1' }
  its('hours') { should cmp '0' }
end

Неверно говорить, что:

×  hours should cmp == "0"

     expected: "0"
          got: []

     (compared using `cmp` matcher)

     ×  minutes should cmp == "1"

     expected: "1"
          got: []

     (compared using `cmp` matcher)

PS: Я также пытался с cron_d, используя cron cookbook

1 Ответ

0 голосов
/ 01 октября 2018

Вот самый простой способ заставить эти тесты работать:

Шаг 1: создайте текстовый файл с именем cronls.txt с этими данными:

1 0 * * * ls -al

Шаг 2: Превратите его в задание cron с помощью этой команды:

crontab -a cronls.txt

Шаг 3. В своей поваренной книге шеф-повара добавьте эти элементы управления в default_test.rb:

control 'cron-1' do
  describe crontab do
    its('commands') { should include 'ls -al' }
  end
end

control 'cron-2' do
  describe crontab.commands('ls -al') do
    its('minutes') { should cmp '1' }
    its('hours') { should cmp '0' }
  end
end

Шаг 4. Выполните тесты InSpec:

inspec exec test/integration/default/default_test.rb

Результаты - это то, что вы ожидаете:

  ✔  cron-1: crontab for current user
     ✔  crontab for current user commands should include "ls -al"
  ✔  cron-2: crontab for current user with command == "ls -al"
     ✔  crontab for current user with command == "ls -al" minutes should cmp == "1"
     ✔  crontab for current user with command == "ls -al" hours should cmp == "0"

Это не единственный способ сделать это (или даже лучший способ), но он должен помочь вам. Дополнительные сведения о ресурсе crontab см. В документации InSpec:

https://docs.chef.io/resource_cron.html

...