【问题标题】:Authentication only via config file?仅通过配置文件进行身份验证?
【发布时间】:2017-07-02 12:29:42
【问题描述】:

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

page 指示:

创建一个配置文件,将您的用户名、密码、project_name 存储在 ~/.config/openstack/clouds.yml 中。

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

长话短说:这可能吗?或者这个要求是否立即迫使我“离开阴影”?并改用 OpenStack python sdk

【问题讨论】:

    标签: python openstack openstack-shade


    【解决方案1】:

    我不是 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)
    

    【讨论】:

    • 整洁。我不太在乎声望点,但可以肯定的是,我不会抱怨它:-)
    • 仍然是最佳答案 - 所以你明白了!
    【解决方案2】:

    据我了解,这会将任何密钥、密码或安全敏感文件放在我们与 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"])
    

    【讨论】:

    • 我会检查的。但请删除您的其他答案 - 因为它不是答案,而是评论!
    • 然后;我不太确定您的意思是什么:A)我实际上想使用“尽可能少的文件输入 B)auth 在您的示例中具有什么类型;这与 python shades 有什么关系图书馆?!
    • shades 库与 tweepy 没有任何关系,它们都是 python 并且可以一起工作。使用“尽可能少的文件输入”是好的。是否有特定的原因需要大量减少代码?使用我的代码,我需要尽可能快地启动和运行原型,因此我们弯曲和调整代码以使其正常工作,而不是制作完美的代码。 tweedy 花了 5 分钟。
    • 我的问题是:我们想使用 jenkins 作业自动创建/配置虚拟机;这将被许多用户使用。因此,我真的不希望构建将密码以纯文本形式存储在硬盘驱动器上的某个“众所周知”文件中的作业。好吧,我的问题是关于阴影的——我需要一个解决方案;而不是为了其他工具?!
    • 好的,嗯。 1 您可以将文件保存在可以使用 jenkins 发送到虚拟机的文件夹中。我指的是在单独的文件夹中使用 YML 文件作为密码是相当正常的,因此它对我们来说是一个已知的安全选项。您可能不需要使用 tweepy。只需将文件保存在 YML 中。 Openstack 只是显示有一种用户密码方式,因此它可能不是内置的。 docs.openstack.org/infra/shade/usage.html 祝你好运。
    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多