ansible踩坑——环境变量问题

问题现象

使用ansible启动远程服务器的node服务,环境变量未被加载

本地测试打印环境变量为空
在这里插入图片描述
定位原因

1、环境变量问题

首先ansible使用的是ssh的方式下发命令,为no login shell的方式登陆
ubuntu的配置文件~/.bashrc中有以下注释
在这里插入图片描述

第一行表明~/.bashrc这个文件会被no login shell加载
第二个位置表明如果不是交互式运行则直接退出了,因此环境变量要写在这个return之前

ansible命令格式

可以看到使用双引号""和单引号''的结果不同,单引号能取得值
在这里插入图片描述
查看PS1,单引号的双引号的结果也不相同
在这里插入图片描述

环境变量PATH

ubuntu安装了pm2之后,ansible无法远程使用,并且远程执行ansible $IP -m shell -a "$PATH"能取到node的路径

解决方案:将node的路径写到/etc/enviroment

遗留问题:

  • 1、在ansible中为什么有的命令使用单引号和双引号都能获取值,而又的命令只能使用单引号
  • 2、ubuntu和centos启动加载环境变量的不同
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值