#!/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マスターとRedHat 6クライアントを使用しています。ここで解決策を見ました。 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