ちゃんるいすのブログ

オタクエンジニアの雑記

AnsibleでOpenStackのserver groupを適用したインスタンスを作成する


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