puppet 部署的 bash 脚本内的 PM2 不起作用

puppet 部署的 bash 脚本内的 PM2 不起作用
#!/bin/bash

# install needed RPMS
yum -y install gcc-c++ git

# downlaod and compile node
wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
tar -xvzf  node-v0.12.7.tar.gz
cd node-v0.12.7
./configure
make
sudo make install

# install pm2 via npm
/usr/local/bin/npm install pm2 -g

# start processes.json
cd /home/admin/Order-Management/
/usr/local/lib/node_modules/pm2/bin/pm2 start processes.json

当我在本地运行上面的脚本时,它运行得很好,但是当我尝试在客户端计算机上使用 puppet 执行它时,最后一行抛出以下错误。

    /usr/bin/env: node: No such file or directory

我正在使用 RedHat 6 master 和 RedHat 6 client。我在这里看到了一个解决方案 https://stackoverflow.com/questions/30281057/node-forever-usr-bin-env-node-no-such-file-or-director但是它对我不起作用。

答案1

在使用 puppet 执行期间,节点可能不在您的 PATH 中。试试这个脚本:

#!/bin/bash

# install needed RPMS
yum -y install gcc-c++ git

# downlaod and compile node
wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
tar -xvzf  node-v0.12.7.tar.gz
cd node-v0.12.7
./configure
make
sudo make install

# install pm2 via npm
/usr/local/bin/node /usr/local/bin/npm install pm2 -g

# start processes.json
cd /home/admin/Order-Management/
/usr/local/bin/node /usr/local/lib/node_modules/pm2/bin/pm2 start processes.json

相关内容