一次saltstack环境变量的坑
现场环境:
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环境变量的坑的更多相关文章
- 修改npm安装的全局路径和配置环境变量的坑
修改npm安装的全局路径和配置环境变量的坑 转自:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前 ...
- JDK11安装后,环境变量的坑
安装了最新的JDK11,安装完后设置环境变量,打开CMD,没生效 检查了3遍,都没发现问题,在PATH中将JAVA设置移到第一也不行 最后偶然发现,在点击如图右下的‘编辑文本’,用文本方式编辑时,发现 ...
- pyqt5环境变量踩坑记
之前用一个cmd脚本 wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_PATH",username="<s ...
- Pyhon环境变量的一些坑
在正常的情况下,使用编译器执行Python文件,无需考虑环境变量的改变 例:sum --one --one1.py --two --two1.py 在执行one.py文件需要调用 two.py中某个方 ...
- Win10 jdk的安装以及环境变量的配置,及需要注意的坑
此篇文章献给自己,希望下次长点记性 最近本人终于有时间开始学习appium,并且开始在电脑上配置环境,第一步就是在我那刚装的Win10 系统上安装jdk,过程并不顺利,由于之前都是用的win7,几乎都 ...
- windows-bat配置环境变量的几个坑点
今天因为学校机房问题,想自动化安装vim,不料在编bat的时候不熟练,搞了很久. 坑点1.%path%访问到的是用户的path,而不是系统的path.所以增加环境变量的时候只能增加用户的path.我就 ...
- 记录安装 java 环境,部署环境变量遇到的小坑
情况:先安装 jdk 7,再安装 jdk8,发现 java 的环境自动变成了 jdk8 解决: 1.在 系统的环境变量下,多出了一行: C:\Program Files (x86)\Common Fi ...
- 访问进程环境变量environ时的一个坑
在unistd.h中定义了变量char **environ;来表示当前所有环境变量,一般来说访问特定环境变量可以用getenv,但是想遍历所有环境变量就得使用environ. 即在程序内全局声明ext ...
- Java JDK的安装以及环境变量的配置
安装并配置完Android SDK之后,本想着可以做个简单的APP应用了,只是依然提示我“请确认Java JDK是否安装”类似的报错,于是又进行了Java JDK的安装以及环境变量的配置. 1.下载地 ...
随机推荐
- HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu_3068 最长回文(Manacher算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others) M ...
- SQL Server 加密案例解析
一.概述 加密是一种安全措施,有时候甚至是法律要求.作为攻破Windows系统的最后一道防线,通过加密可以保证在没有密钥的情况下获取备份或者物理介质变得毫无意义. 二.概念 加密层次结构 加密层次结构 ...
- flume1.8 Interceptors拦截器(五)
1. Flume Interceptors Flume有能力修改/删除流程中的events.这是在拦截器(interceptor)的帮助下完成的.拦截器(Interceptors)是实现org.apa ...
- ubuntu开启openssh-server,ssh[xshell]
在虚机中安装了ubuntu,但是从宿主机器上ping 22的端口始终不通,查询原因,虚机只安装了 openssh-client. 运行Terminal $-> sudo apt-get inst ...
- 改进ban冒泡排序
设置一标志性变量pos,用于记录每趟排序中最后一次进行交换的位置.由于pos位置之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos位置即可. //改进后算法如下: function bubb ...
- phpstudy php5.4以上版本伪静态设置 thinkphp
http://www.thinkphp.cn/topic/35958.html <IfModule mod_rewrite.c> Options +FollowSymlinks -Mult ...
- 如何查看sublime安装了哪些插件
你应该安装过package control. 那么只要这样:按ctrl+shift+p,输入package,选择list packages,就看到了. 或者直接查看Installed Packages ...
- Tomcat 源码分析(二)——Request处理全过程
前一篇博客,我总结了Tomcat对于生命周期组件的管理.在了解了容器的启动之后,我们开始剖析它的内部运行机制.今天我们来分析一下Tomcat如何处理Request.Socket作为网络通信的基础也是R ...
- Aliase_小白学Python_Day0_前言
听到有老师介绍,说你为什么不把你的学习过程保存下来,一是当做总结,二是作为分享.我想,也对.这算是我的第一个博客,本次想写写我为什么选择学习Python. 很多人都问过我一个问题,行业那么多,你为什么 ...