Devstack, включаем neutron

Исходные данные

  • развернутый дефолтный devstack
  • девстек имеет две сетевые карты, настроено в виртуалбоксе

    • адаптер1, NAT
    • адаптер2, виртуальный адаптер хоста, 192.168.60.1

Задача

  • добавить в него neutron сервис
  • настроить доступ к инстансам девстека

Реализация

По умолчанию, devstack не включает сервис neutron.

Настроим devstack через конфигурационный файл devstack/local.conf

[[local|localrc]]
...

# говорим девстеку его хостовый IP
HOST_IP=192.168.60.101

# выключаем nova-network
disable_service n-net

# включаем сервисы для neutron
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta

# далее настраиваем плавающие ip адреса и интерфейсы
FLOATING_RANGE=192.168.60.0/24
Q_FLOATING_ALLOCATION_POOL=start=192.168.60.110,end=192.168.60.254
PUBLIC_NETWORK_GATEWAY=192.168.60.1
PUBLIC_INTERFACE=eth1
Q_USE_PROVIDERNET_FOR_PUBLIC=True
PUBLIC_BRIDGE=br-ex
OVS_PHYSICAL_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

Выключаем openstack

devstack$ ./unstack.sh

Включаем openstack

devstack$ ./stack.sh

Готово

Доступ к инстансам admin проекта получить не удается, а вот для инстансов демо проекта доступ есть.

Не забыть ещё добавить правила в групповую политику.

demo.rc

Также я сделал файл devstack/demo.rc

export OS_USERNAME=admin
export OS_PASSWORD=devstack
export OS_PROJECT_NAME=demo
export OS_PROJECT_DOMAIN_NAME=demo
export OS_AUTH_URL=http://127.0.0.1:5000/v3
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_DOMAIN_ID=default

tenant & token

А также скрипт для получения токена и тенанта

from keystoneclient.v2_0 import client as keystone_client
client = keystone_client.Client(
    username='admin', 
    password='devstack', 
    tenant_name='demo', 
    auth_url='http://127.0.0.1:5000/v2.0',
)
print 'tenant', client.auth_tenant_id
print 'token', client.auth_token