码迷,mamicode.com
首页 > 其他好文 > 详细

一次saltstack环境变量的坑

时间:2018-02-11 14:42:08      阅读:2400      评论:0      收藏:0      [点我收藏+]

标签:node   nodejs   分享   com   设置   path   执行   分析   info   

现场环境:

salt-minion端:

ip:10.0.3.149     环境:使用 nvm装的nodejs    受用nodejs自带的npm 安装pm2

sal-master端:

IP:10.0.3.145   环境安装salt-master

问题描述:

在master端使用命令执行:

salt "10.0.3.149" cmd.run "pm2 list"    提示pm2命令未找到,但是在salt-minon端执行pm2是正常的,现场截图如下:

技术分享图片

 

技术分享图片

问题分析:

既然提示命令未找到,但是salt-minion是正常的那么说明这个安装没问题的。

是不是有可能是其服务的用户的原因?起的不是root用户?

检查:执行命令:salt "10.0.3.149" cmd.run "whoami"  ,显示就是root用户

技术分享图片

既然用户是正确的,那就很有可能是环境变量的问题,检查环境变量:

salt-master.   执行 salt "10.0.3.149" cmd.run "echo $PATH"   输出一下

技术分享图片

salt-minon端:执行echo $PATH

技术分享图片

发现不同了吧,果然是环境变量的原因。那么,问题又来了,既然都是root用户为啥环境还能不一样呢?

上网查找,看到这么一篇文章,这哥们的情况和我的挺像,查考他的文章坐下设置:https://www.90hsa.com/223.html

分析:

在salt-minon的启动脚本中,根据上面的那篇文章,看到了这个调用

技术分享图片

进入这个被调用的文件中,看到这个了这个:技术分享图片

再看上面的调用方法,就会发现,当用这个启动脚本的时候就是调用这个文件,调用的同时会继承这个文件中的环境变量,但是这个里面没有node和pm2的环境变量

所有就会出现pm2命令找不到的提示

 解决方法:

方法一:

.使用上面那篇文章里面的方法:

salt 10.0.3.149 cmd.run ‘echo $PATH‘  shell=‘/bin/bash‘ runas=‘root‘

技术分享图片

salt 10.0.3.149 cmd.run ‘pm2 list‘  shell=‘/bin/bash‘ runas=‘root‘

技术分享图片

 

 方法二:

在functions 添加环境变量到PATH中技术分享图片

重启客户端就可以了,若是出现使用node其服务的是时候报错/etc/pm2的话,在

/root/.bash_profile  中添加:export HOME=/root   

技术分享图片

就好了

如果有其他好的方法请指教!!!!!!

 

一次saltstack环境变量的坑

标签:node   nodejs   分享   com   设置   path   执行   分析   info   

原文地址:https://www.cnblogs.com/tugeboke/p/8440838.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!