美文网首页
ansible远程没有环境变量

ansible远程没有环境变量

作者: 心水Diana | 来源:发表于2019-11-13 11:31 被阅读0次

    ansible 远程过去 java -version

    提示找不到命令
    

    首先,在脚本中添加echo $JAVA_HOME ,which java ,echo $(whoami),然后用ansible远程执行,发现为root用户但输出为空和找不到java; 其次,在~/.bash_profile中添加环境变量,用ansible远程执行脚本,发现依然输出为空和找不到java环境变量; 最后,考虑ansible执行的环境变量与登录时使用的环境变量不同,所以将JAVA_HOME写在/etc/bashrc中,用ansible远程执行脚本,发现执行正常; 至此,确定ansible执行过程中并未调用/etc/profile和~/.bash_profile

    解决

    ansible远程执行的是non-login shell 并不会加载/etc/profile和~/.bash_profile下的环境变量,只加载~/.bashrc和/etc/bashrc 如果需要在ansible中执行需要特定环境变量的命令,将环境变量写在~/.bashrc ,然后source一下~/.bash_profile。

    相关文章

      网友评论

          本文标题:ansible远程没有环境变量

          本文链接:https://www.haomeiwen.com/subject/yadhictx.html