OpenStack Client openrc config in cloud.yaml auslagern
Um mit der openstack-cli zu arbeiten habe ich bisher die openrc der jeweiligen Umgebung runtergeladen, angepasst und gesourced. Bei mehreren Umgebungen wird das schnell unübersichtlich.
source ~/.openrc.dev; openstack server list
source ~/.openrc.devadm; openstack server list
source ~/.openrc.fancycloud; openstack server list
[...]
Beim experimentieren mit dem Ansible OpenStack Cloud Modul sind mir die Notes ins Auge gestrochen.
Auth information is driven by os-client-config, which means that values can come from a yaml config file in /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml or ~/.config/openstack/clouds.yaml, then from standard environment variables, then finally by explicit parameters in plays. More information can be found at http://docs.openstack.org/developer/os-client-config
- $HOME/.config/openstack/cloud.yaml angelen
---
clouds:
dev:
auth:
auth_url: http://cloud.example:5000/v3/
project_name: ansible
domain: ansible
username: ansible
password: 4ns1ble
region_name: Region1
devadm:
auth:
auth_url: http://cloud.example:5000/v3/
project_name: admin
domain: Default
username: admin
password: admin
region_name: Region1
fancycloud:
auth:
auth_url: http://another.fancy.cloud.example:5000/v3/
project_name: der-jd
username: jd
password: jd
region_name: Region42
[...]
Jetzt kann ich meine Umgebungen einfach mit --os-cloud ansteuern.
openstack --os-cloud dev server list
openstack --os-cloud devadm server list
openstack --os-cloud fancycloud server list
- hosts: localhost
tasks:
- name: instance with cloud.yaml
os_server:
cloud: fancycloud
image: Debian 9
name: example-instance1
key_name: ansible
availability_zone: nova
flavor: tasty42
network: jd-net
Last update:
March 22, 2021