在使用ansible对目标机器执行带有环境变量的脚本时可能会遇到脚本无法正确执行,或者提示没有相关的命令,原因就是ansible不能读取目标机器/etc/profile系统环境文件,只能读取执行ansible命令用户的环境变量文件。
比如执行ansible指令的用户是yunwei,那么ansible只能读取/home/ansible/.bashrc文件中环境变量,解决办法是将需要用到的变量配置在yunwei用户的.bashrc文件中也配置一次
当然也可以这样临时使用
#先查看默认读取的环境变量
ansible all -m shell -a 'env'
#加载/etc/profile之后的环境变量
ansible all -m shell -a 'source /etc/profile && env'