2016-09-08 121 views
2

是否有可能从crontab执行一个非常好的剧本?我们有一个需要在特定时间运行的剧本,但我知道cron不喜欢ssh。从crontab的ansible playbook

塔有一个内置的调度引擎,但我们并没有兴趣使用塔。其他人如何安排完善的剧本?

回答

1

您可以使用cron作业来运行您的剧本。
Ansible调用ssh与-tt切换到强制TTY,所以它应该很好。
只是检查以下内容:

  • 工作的用户可以访问使用SSH私钥
  • 的工作环境是正确的(PYTHONPATH等)
  • 有主机上没有包混合物(如ansible通过PIP安装,并在同一时间APT)

还要检查this方便评论有关quiet选项缺少ansible:

有对crontab的一招:运行ansible-剧本如下:

*/15 * * * * if ! out=`ansible-playbook yourplaybook.yaml`; then echo $out; fi 

这样,你得到完整的输出,但只有ansible退出了非零状态。

+0

传递'ansible-vault'密码怎么样? –

+1

@AK有方便的'--vault-password-file' [option](http://docs.ansible.com/ansible/playbooks_vault.html#running-a-playbook-with-vault),它允许从文件甚至是其他脚本标准输出。 –

+0

谢谢康斯坦丁。我能够使用cron安排一个不同的剧本,它工作得很好。我有问题的剧本包含一个似乎有问题的python脚本。 –