标签:登录 win port 命令执行 代理上网 需要 export source 服务器
被管理服务器需要使用http和https代理才能上网,如在/etc/profile中设置了此时通过ssh连接到服务器,执行yum,会走这个代理,安装软件没有问题。
但是在ansible服务器端,通过ansible在客户端执行yum会发现,命令执行时yum连接不到外网,导致命令执行失败。
#ansible app -m yum -a "name=iftop state=present"
此时需要在客户端 /etc/bashrc 文件添加代理配置
export http_proxy=http://172.16.16.80:8080
之后执行成功。
原因
login shell 和 non-login shell
ansible这类ssh远程执行是non-login shell,不会加载etc/profile,~/.bash_profile,而是加载etc/bashrc和~/.bashrc
结论
ansible这类远程执行的non-login shell 并不会加载/etc/profile和~/.bash_profile下的环境变量,只是加载~/.bashrc和/etc/bashrc
如果需要在ansible中执行需要特定环境变量的命令,可以在执行前source一下~/.bash_profile, 或者将环境变量写在~/.bashrc 。
Ansible 被管理机需要使用代理上网时yum不能联网的问题
标签:登录 win port 命令执行 代理上网 需要 export source 服务器
原文地址:http://blog.51cto.com/207698/2137194