簡體   English   中英

如何使用通用規范或元配置生成upstart和monit配置文件?

[英]How do I generate upstart and monit configuration files using a common spec or meta-configuration?

我正在使用grunt將節點Web應用程序部署為upstart服務,並使用monit監視它。 然而:

  1. 我的暴發和monit配置相互重復了一點
  2. Upstart不會在env節中進行變量擴展
  3. 我找不到動態配置.override的方法(ala upstart .override文件)

我的問題

這意味着我正在尋找一個可以用來生成uptstart .conf和monit conf.d / files的grunt插件或其他工具。 你能幫我找一個(或建議一個更好的方式來運行我的節點網絡應用程序)?

相當粗糙的解決方案?

說實話,upstart和monit文件的下划線模板可能已經足夠了,如果沒有現成的解決方案,那么我將把它包裝成一個grunt插件,但這感覺就像其他人必須要解決的問題也遇到過這樣的情況,所以我想有一個解決方案,我找不到它。

詳情

更詳細一點來說明這三個問題。 我的新貴conf文件看起來像這樣:

setuid node
setgid node

# ...

script
    mkdir -p /home/node/.my-app
    echo $$ > /home/node/.my-app/upstart.pid
    /usr/local/bin/node /var/node/my-app/server.js >> /var/node/my-app/logs/console.log 2>&1
end script

# ...

我的monit配置如下所示:

check process node with pidfile /home/node/.my-app/upstart.pid
    start program = "/sbin/start my-app" with timeout 60 seconds
    stop program  = "/sbin/stop my-app"
    if failed host localhost port 17394 protocol http 
        and request "/monit.html"
        then restart
    if 3 restarts within 5 cycles then timeout

如您所見,PID文件路徑和配置目錄在兩者之間重復(問題1),我很樂意參數化monit文件中的主機,端口和請求URL(問題3)。

對於問題2(在upstart的env節中沒有變量擴展, 這里的錯誤報告),有一些解決方法適用於*腳本塊中使用的變量,這些變量被解釋為bash腳本,但它們似乎在conf中不起作用文件本身。 我認為這使得無法指定應用程序應在配置文件中運行的用戶ID?

我剛才提到的那些技巧:

  • 方法1 :不要使用env - 將預腳本中的變量回顯到文件,然后再將其提供
  • 方法2 :在需要它的所有腳本體中復制變量擴展
  • 方法3 :將變量存儲在文件中,並使用命令替換將其捕獲

...或建議更好地運行我的節點Web應用程序

請改用Unitech的PM2

我使用PM2運行所有節點應用程序。 它工作正常,易於配置。 它具有自動生成啟動腳本的內置功能。 它為您提供記錄,監控和易於維護。

這是一篇展示亮點的好文章

安裝

npm install -g pm2

啟動應用

pm2 start app.js

顯示運行的應用

pm2 list

制作一個啟動腳本

pm2 startup [ubuntu|centos|systemd]

有關其github頁面自述文件的更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM