Fleet NodeJS部署教程

时间:2013-03-12 16:29:31

标签: node.js deployment continuous-integration

我正在尝试使用Fleet:https://github.com/substack/fleet部署一些NodeJS应用程序。我已经多次阅读过引用的博客文章,并且已经获得了部分成功的设置。

我可以在服务器

创建一个车队集线器 - > fleet hub --port=7000 --secret=beebop 创建一个舰队无人机 - > fleet drone --hub=localhost:7000 --secret=beebop

我可以在我的开发机器上

添加默认的fleet repo - > fleet remote add default --hub=172.16.10.147:7000 --secret=beebop

然后我再次在服务器上 产生节点过程 - > fleet spawn -- app.js 3000,输出如下:

drone#ubuntu
└─┬ pid#bba906
  ├── status:   respawning
  ├── commit:   keystone-web/4eab770ded77b25a949795d0aed5727dd2783c4f
  └── command:  node app.js

我在我启动Fleet中心的目录中看到已部署的应用程序:

drwxr-xr-x 4 root root 4096 Mar 12 10:49 .
drwxr-xr-x 4 root root 4096 Mar 12 10:10 ..
drwxr-xr-x 8 root root 4096 Mar 12 10:49 myapp.4eab770ded77b25a949795d0aed5727dd2783c4f
drwxr-xr-x 9 root root 4096 Mar 12 10:27 myapp.eb350403b214f1023aff8405552ca27454673463
user@ubuntu:/opt/nodeapps/test/deploy$

我的问题是我现在应该可以访问网络应用,例如本地主机//:3000

当我尝试这样做时,网络浏览器会报告该地址没有任何内容。

Fleet的博客文章旁边是否有任何教程?我觉得我错过了一步。

提前致谢,

1 个答案:

答案 0 :(得分:1)

有关详细信息,请参阅脚本。这就是我所做的,它适用于我的场景:

#!/bin/bash
option1="development"
option2="test"
option3="demo"
chosen=""

echo please enter environment setting for fleet/node deployment 1: "'"development"'" 2: "'"test"'" 3: "'"demo"'"
read env

if [[ $env == 1 ]]
    then
        chosen=$option1
elif [[ $env == 2 ]]
    then
        chosen=$option2
elif [[ $env == 3 ]]
    then chosen=$option3
else
    echo "you didn't enter a valid environment setting"
            echo "your options are" "1:'"$option1"'" "or" "2:'"$option2"'"
            exit
fi

echo deploying to "'"$chosen"'"
sleep 1
echo starting fleet deploy
fleet deploy --remote=$chosen
echo running npm install
fleet exec --remote=$chosen npm install
echo spawning application
fleet spawn --remote=$chosen --env.NODE_ENV=$chosen node app.js
fleet ps --remote=$chosen