Я изучаю модуль python shade, чтобы автоматизировать некоторые задачи, используя нашу установку OpenStack.
Эта страница сообщает:
Создайте файл конфигурации, чтобы сохранить имя пользователя, пароль, имя_проекта в ~/.config/openstack/clouds.yml.
Я внимательно посмотрел; но я не мог найти никакой информации о том, как предоставить учетные данные в другом; например, как параметры для некоторых объектов, которые я мог бы создать в коде python.
Короче говоря: это возможно? Или это требование сразу же заставляет меня "отступать"; и вместо этого использовать OpenStack python sdk?
Ответ 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
Из того, что я понимаю, это помещает в ваш файл yml любые ключи, пароли или секретные файлы безопасности, которые мы используем с Travis.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"])