Как получить скрипт 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
так что файл становится исполняемым.