Как получить скрипт cron, который должен вызывать chef-databag, чтобы получать имя пользователя и пароль при каждом запуске?

У меня есть cronjob, который выполняет скрипт Python. Сценарий python принимает два параметра username и pass.

например: execute.py vijay hTbY87

Требование состоит в том, чтобы взять это имя пользователя и перейти от dataBag, который у меня есть в chef. Мой пример, где мне нужно запустить этот cronjob, находится в AWS.

Есть ли способ получить такой cronjob?

2 ответа

Итак, если вы используете встроенный cron ресурс (вы можете использовать cron_d вместо ресурса есть некоторые тонкие различия), все это просто написание нужного вам кода на Ruby:

params = data_bag_item('bagname', 'itemname')

cron 'myscript' do
  command "python /path/to/execute.py #{params['user']} #{params['password']}"
  # Other properties here to set the schedule.
  # ...
end

Создайте файл cronrun.sh, который содержит следующее:

#!/usr/bin/env bash

crontab <<EOF
*/30 * * * * /path/to/execute.py vijay hTbY87 > /path/to/logs/output.log 2>&1
EOF

Это будет выполняться каждые 30 минут и будет направлять вывод (или сообщение об ошибке) в каталог журналов. Чтобы найти другой временной интервал, Google crontab.guru every ___ minutes или часы или дни или все, что вы хотите.

Убедитесь, что вы печатаете chmod +x cronrush.sh так что файл становится исполняемым.

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