我正在研究 python shade模块,以便使用我们的 OpenStack 安装来自动化一些任务。
本页说明:
创建一个配置文件,将您的用户名、密码、project_name 存储在 ~/.config/openstack/clouds.yml 中。
我仔细看了看;但我找不到任何信息如何以不同的方式提供凭据;例如,作为我可以在 python 代码中创建的某些对象的参数。
长话短说:这可能吗?或者这个要求是否立即迫使我“离开阴影”?并改用 OpenStack python sdk?
我不是 python 专家,但经过一番搜索“其他”openclient 模块是如何做到的;也许以下可以工作(来自您的链接的示例代码;只是一点增强):
from shade import *
auth_data = {
# URL to the Keystone API endpoint.
'auth_url': 'url',
# User credentials.
'user_domain_name': ...
}
稍后执行此操作:
cloud = openstack_cloud(cloud='your-cloud', **auth_data)
据我了解,这会将任何密钥、密码或安全敏感文件放在我们与 Travis.yml 一起使用的 yml 文件中,并保留在本地目录中并添加到 git ignore 中。
话虽这么说,这是使用 python 和 twitter api 函数,我很确定它使用或引用了一个名为 tweepy 的程序。
这对我们很有帮助,听起来对你来说可能很接近。
让我知道这是否有帮助。
with open("secrets.yml") as f:
content = f.read()
# from secrets.yml import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET
secret = yaml.load(content)
##################################################################################################
# authorize tweepy with CONSUMER_KEY and CONSUMER_SECRET
auth = tweepy.OAuthHandler(secret["CONSUMER_KEY"], secret["CONSUMER_SECRET"])
auth.secure = True
# read in ACCESS_TOKEN and ACCESS_SECRET variables to tweepy
auth.set_access_token(secret["ACCESS_TOKEN"], secret["ACCESS_SECRET"])