flask keychain ansible之前关系的问题

发布于 2022-09-02 20:24:08 字数 1455 浏览 19 评论 0

这是我之前的一个问题: 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 容器部署下要怎样获取这个变量的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉殇 2022-09-09 20:24:08

已自行解决,命令前直接加载这个变量

os.popen('source /root/.keychain/CentOS6x64-Int-sh;/usr/local/python27/bin/ansible -i %s selecthost -m ping' %hosttemp_file)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文