Ansible で OpenStack を使う準備

openstacksdk

Ansible は brew とかで入れるより、外部モジュールを使う際は Ansible も pip で入れたほうが幸せになれる。

$ pip install openstacksdk

openstack credentials

Web GUI からダウンロードできる -openrc.sh を適用しておく
clouds.yamlを Ansible を実行するディレクトリに置くでもOK。

$ source <project-name>-openrc.sh

interpreter

inventory はこんな感じに。

[openstack]
127.0.0.1 ansible_connection=local ansible_python_interpreter=/usr/bin/env python

server group 作成

---
- name: create server group
os_server_group:
state: present
name: "servergroup-prd"
policies:
- anti-affinity
register: result

インスタンス作成

scheduler_hintsを使う。
groupには名前じゃなくてID。

---
- name: create instance
os_server:
state: present
name: test
image: centos7
flavor: flavor
security_groups:
- prd-web
nics:
- net-name: provider-hoge
scheduler_hints:
group: "{{ result.server_group.id }}"
wait: yes