我正在尝试使用ansible在主机上的docker容器中挂载变量$ SSH_AUTH_SOCK的值。我正在使用ansible的shell模块。
shell: >
docker run -d
--name ****
-p ****:***
-h ****:****
-v {{ ansible_env.SSH_AUTH_SOCK }}:/ssh_auth.sock
<image name> /bin/bash /root/abc.sh
但它抛出了错误
一个或多个未定义的变量:'dict object'没有属性'SSH_AUTH_SOCK'
我尝试通过使用ansible -i inventory -m setup localhost提取setup模块的json并尝试使用
打印变量来调试此方法debug module debug:msg =“System has uuid {{ansible_env.AUTH_SOCK}}”
并显示相同的错误。
一个或多个未定义的变量:'dict object'没有属性 'SSH_AUTH_SOCK'
我正在附上下面的json片段:
"ansible_env": {
"HOME": "/home/vagrant",
"LANG": "en_US.UTF-8",
"LC_CTYPE": "en_US.UTF-8",
"LESSCLOSE": "/usr/bin/lesspipe %s %s",
"LESSOPEN": "| /usr/bin/lesspipe %s",
"LOGNAME": "vagrant",
"LS_COLORS": "*****",
"MAIL": "/var/mail/vagrant",
"OLDPWD": "*****",
"PATH": "****",
"PWD": "/home/vagrant/deploy/vagrant/ansible",
"SHELL": "/bin/bash",
"SHLVL": "1",
"SSH_AUTH_SOCK": "/tmp/ssh-syce2sxVuO/agent.17243",
"SSH_CLIENT": "10.0.2.2 53762 22",
"SSH_CONNECTION": "10.0.2.2 53762 10.0.2.15 22",
"SSH_TTY": "/dev/pts/0",
"TERM": "xterm",
"USER": "vagrant",
"XDG_RUNTIME_DIR": "/run/user/1000",
"XDG_SESSION_ID": "5",
"_": "/usr/local/bin/ansible"
},
我可以访问 ansible_env.HOME 到 ansible_env.SHLVL 的值,但是 ansible_env.SSH_AUTH_SOCK 的值可以 ansible_env.SSH_TTY 无法访问,并且正在抛出错误
一个或多个未定义的变量:'dict object'没有属性
有什么想法吗?