我對使用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文件中的錯誤,無法安裝。 –