现场环境:

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环境变量的坑的更多相关文章

  1. 修改npm安装的全局路径和配置环境变量的坑

    修改npm安装的全局路径和配置环境变量的坑 转自:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前 ...

  2. JDK11安装后,环境变量的坑

    安装了最新的JDK11,安装完后设置环境变量,打开CMD,没生效 检查了3遍,都没发现问题,在PATH中将JAVA设置移到第一也不行 最后偶然发现,在点击如图右下的‘编辑文本’,用文本方式编辑时,发现 ...

  3. pyqt5环境变量踩坑记

    之前用一个cmd脚本 wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_PATH",username="<s ...

  4. Pyhon环境变量的一些坑

    在正常的情况下,使用编译器执行Python文件,无需考虑环境变量的改变 例:sum --one --one1.py --two --two1.py 在执行one.py文件需要调用 two.py中某个方 ...

  5. Win10 jdk的安装以及环境变量的配置,及需要注意的坑

    此篇文章献给自己,希望下次长点记性 最近本人终于有时间开始学习appium,并且开始在电脑上配置环境,第一步就是在我那刚装的Win10 系统上安装jdk,过程并不顺利,由于之前都是用的win7,几乎都 ...

  6. windows-bat配置环境变量的几个坑点

    今天因为学校机房问题,想自动化安装vim,不料在编bat的时候不熟练,搞了很久. 坑点1.%path%访问到的是用户的path,而不是系统的path.所以增加环境变量的时候只能增加用户的path.我就 ...

  7. 记录安装 java 环境,部署环境变量遇到的小坑

    情况:先安装 jdk 7,再安装 jdk8,发现 java 的环境自动变成了 jdk8 解决: 1.在 系统的环境变量下,多出了一行: C:\Program Files (x86)\Common Fi ...

  8. 访问进程环境变量environ时的一个坑

    在unistd.h中定义了变量char **environ;来表示当前所有环境变量,一般来说访问特定环境变量可以用getenv,但是想遍历所有环境变量就得使用environ. 即在程序内全局声明ext ...

  9. Java JDK的安装以及环境变量的配置

    安装并配置完Android SDK之后,本想着可以做个简单的APP应用了,只是依然提示我“请确认Java JDK是否安装”类似的报错,于是又进行了Java JDK的安装以及环境变量的配置. 1.下载地 ...

随机推荐

  1. UVALive 3882 - And Then There Was One【约瑟夫问题】

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  2. Kruscal(最小生成树)算法模版

    ;//最大点数 ;//最大边数 int n,m;//n表示点数,m表示边数 struct edge{int u,v,w;} e[maxm];//u,v,w分别表示该边的两个顶点和权值 bool cmp ...

  3. 解决jsp中编辑和删除时候弹出框闪退的问题。

    ---恢复内容开始--- /* 火箭设备特殊记载</li> <!-- yw4 --> */ function getYw4DL(){ var controlparm={&quo ...

  4. HDU 5122 K.Bro Sorting(模拟——思维题详解)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5122 Problem Description Matt's friend K.Bro is an A ...

  5. SDP(1):ScalikeJDBC-基本操作介绍

    简单来说:JDBC是一种开放标准的跨编程语言.跨数据库类型编程API.各类型数据库产品厂商都会按它的标准要求来提供针对自身产品的JDBC驱动程序.最主要的这是一套成熟的工具,在编程人员中使用很普及.既 ...

  6. TPshop学习(8)微信支付

    http://blog.csdn.net/phper8/article/details/76383415 学习内容: https://www.kancloud.cn/tpshop/thinkphp5/ ...

  7. tp系统常量定义

    (2013-03-06 14:16:31) 转载▼ 标签: it 是已经封装好的系统常量 主要是用在控制器下面的动作当中 这样能很大的提高我们的开发效率 主要有下面的一些      手册上面都有的   ...

  8. parse_url   解析 URL,返回其组成部分

    parse_url - 解析 URL,返回其组成部分 array parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一 ...

  9. 与改写url取文件的方法:NetworkRequest和DataAccessSerivice 文件

    与改写url取文件的方法:NetworkRequest和DataAccessSerivice 文件 CMDNMapDataCache.cpp  读取二进制代码的方法

  10. Android调试错误-No resource identifier found for attribute 'showAsAction'

    转载自:http://www.bubuko.com/infodetail-498830.html 1.问题描述: 24\YoumiAndroidSdk\demo\offers\res\menu\mai ...