我对使用puppet的cron类型的environment attribute感到困惑。这似乎是一个奇怪的地方设置路径,因为如果我有多个cron作业,我想设置它似乎会碰撞。除了每个cron工作的特定工作之外,是否不应将其设置在对用户来说全球所有cron作业的地方?用木偶设置cron环境变量
1
A
回答
0
本,在我看来,它对cron工作非常有意义。考虑一下,举个例子:在PHP中有一个名为Composer的依赖管理工具,并且说我想通过cron安排自动更新到我的依赖关系。如果有很多依赖关系和/或只需要很长时间来更新它们,则该工具将超时,这就是为什么它接受COMPOSER_PROCESS_TIMEOUT环境变量的原因。因此通过设置
environment => 'COMPOSER_PROCESS_TIMEOUT=2000',
我会有效地改变这种特殊情况下的超时而不触及其他任何东西。
希望它是有道理的,并清除空气一点。
0
我不相信env变量会相互冲突。 cron资源似乎在命令执行时设置变量。所以它不应该说在其他cron作业期间设置。
例如。
# Puppet Name: pe-mcollective-metadata
0,15,30,45 * * * * /opt/puppet/sbin/refresh-mcollective-metadata
# Puppet Name: report_baseline
0 20 * * * PATH=/opt/puppet/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin /opt/puppet/bin/puppet inspect 1> /dev/null
所以,你可以在这里看到的是,刷新mcollective元数据的工作没有PATH变量集跑,但report_baseline工作做的时候。
+1
我测试了这个以及在Ubuntu/Puppet 3.3上,环境变量在作业前设置在一个单独的行*中。 – Alex
相关问题
- 1. 在木偶中设置木偶目录环境
- 2. 设置环境变量
- 3. 设置Maven环境变量
- 4. 设置Java环境变量?
- 5. 设置apache环境变量
- 6. 设置环境变量
- 7. DrJava设置环境变量
- 8. C设置环境变量
- 9. 设置环境变量
- 10. C#设置环境变量
- 11. 设置环境变量(kubernetes)
- 12. 设置环境变量Windows
- 13. htaccess设置环境变量
- 14. Elasticsearch设置环境变量
- 15. 设置环境变量Linux
- 16. 木偶变量不变性
- 17. 环境变量无法在cron任务中设置
- 18. 如何访问Docker设置环境变量从Cron作业
- 19. 随时随地设置cron作业并访问环境变量
- 20. 烧瓶/ gunicorn:从环境变量设置环境变量
- 21. 从另一个Jenkins环境变量设置Jenkins环境变量
- 22. 木偶类与环境目录
- 23. 使用AWS Opsworks设置环境变量
- 24. 使用saltstack设置环境变量
- 25. 使用subshell设置环境变量
- 26. GIT:设置应用环境变量
- 27. 使用SSH设置环境变量
- 28. 使用Process.start设置环境变量
- 29. 使用perl设置环境变量
- 30. 使用Puppet设置环境变量
我明白为什么你可能想为你的特定cron作业设置一个环境变量,但是我仍然不明白如何设置影响多个cron作业的全局环境变量,比如PATH。这是这个问题真正要问的部分。 –
Ben,再次阅读您的问题,我能想到的唯一一件事情就是: Cron {= {'PATH =/bin:/ usr/bin:/ usr/sbin', } 这将为所有cron资源设置“环境”,我相信您可以通过连接到默认值来添加更多环境变量,例如: cron {“my-command” environment +>'...', } –
不起作用:“所有资源规范都要求名称”。如果我指定了一个名称,那么我得到:“ - ”:15:错误的命令 crontab文件中的错误,无法安装。 –