这是我之前的一个问题: ansible的key问题
现在在服务器上直接使用:
[root@localhost ~]# python manage.py
运行项目时,flask 的 web 页面开始调用 ansible 可以正常使用,但当部署到 gunicorn+supervisord 环境后又出现了密钥问题。
然后查了一下,keychain 会生成一个环境变量在
[root@localhost ~]# cat /root/.keychain/localhost.localdomain-sh
SSH_AUTH_SOCK=/tmp/ssh-zVeUXf2093/agent.2093; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2094; export SSH_AGENT_PID;
当直接 ipython 调用时候可以获取到:
[root@localhost ~]# ipython
Python 2.7.9 (default, Apr 12 2016, 16:14:35)
Type "copyright", "credits" or "license" for more information.
IPython 4.2.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [2]: import os
In [3]: os.system('env | grep SSH_A')
SSH_AGENT_PID=2094
SSH_AUTH_SOCK=/tmp/ssh-zVeUXf2093/agent.2093
SSH_ASKPASS=/us
当时把这些写到 flask 中,用 web 容器启动起来后,就无法获取到
服务端写:
mylogger.info('====================')
mylogger.info(os.popen('env|grep SSH_A').read())
mylogger.info('================')
日志输出:
====================
================
两个 “==========”
中间没内容,没有获取到这个环境变量,
所以想问下这个在 web 容器部署下要怎样获取这个变量的?
已自行解决,命令前直接加载这个变量