现场环境:

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. UVA 11039-Building designing【贪心+绝对值排序】

    UVA11039-Building designing Time limit: 3.000 seconds An architect wants to design a very high build ...

  2. A + B Problem II(大数加法)

    http://acm.hdu.edu.cn/showproblem.php?pid=1002 A + B Problem II Time Limit: 2000/1000 MS (Java/Other ...

  3. ACM_并查集

    //题意:ignatius过生日,客人来到,他想知道他需要准备多少张桌子.然而一张桌子上面只能坐上相互熟悉的人, //其中熟悉可定义成为A与B认识,B与C认识,我们就说A,B,C相互熟悉 .例如A与B ...

  4. 搭建vue开发环境的步骤

    相信很多人在刚开始学习vue这个框架的时候,在最开始搭建开发环境的时候,都会遇到一些大大小小的坑,我之前在学习angular的时候搭建过一次,过了一个月后在搭建第二次的时候,竟然有一些混乱,所以今天想 ...

  5. 浅尝辄止WPF自定义用户控件(实现颜色调制器)

    主要利用用户控件实现一个自定义的颜色调制控件,实现一个小小的功能,具体实现界面如下. 首先自己新建一个wpf的用户控件类,我就放在我的wpf项目的一个文件夹下面,因为是一个很小的东西,所以就没有用mv ...

  6. c语言基础学习02_windows系统下的cmd命令

    =============================================================================注意:cmd的命令很多,需要用的时候可以查询即 ...

  7. enum与typedef enum

    enum与typedef enum的用法 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON  1#define T ...

  8. APP测试时常用adb命令

    ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机),故在其实工作可以给我们 ...

  9. QQ邮箱开启SMTP服务的步骤

    首先要确保你的QQ邮箱已经要开启超过一个月.对于新开启的邮箱,腾讯是不开放这些功能的. 方法/步骤 首先点QQ头像旁边的信封符号进入邮箱. 当然你也可以使用 mail.qq.com进邮箱 进入邮箱后点 ...

  10. php常用数据结构

    # 常用数据结构--------------------------------------------------------------------------------## 树(Tree)- ...