仅通过配置文件进行身份验证?

Authentication only via config file?

我正在研究 python shade 模块,以便使用我们的 OpenStack 安装自动执行一些任务。

这个page指示:

Create a configuration file to store your user name, password, project_name in ~/.config/openstack/clouds.yml.

我仔细看了看;但我找不到任何关于如何以 不同 方式提供凭据的信息;例如,作为我可以在 python 代码中创建的某些对象的参数。

长话短说:这可能吗?或者这个要求会立即迫使我"off shade";并使用 OpenStack python sdk 代替?

我不是 python 专家,但经过一番搜索 "other" openclient 模块是如何做到的;也许以下可以工作(您的 link 中的示例代码;只是一点增强):

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忽略。

据说这是使用 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"])