Ich möchte ein OpenStack mit meiner MAAS 2.4- und juju 2.4.1-Umgebung installieren. Der MAAS läuft jetzt sehr gut und ich kann meine Hardware damit verwalten. Ich habe Juju und einen Juju-Controller installiert (dedizierte Hardware wird von MAAS bereitgestellt), alles wunderbar bis jetzt!
Jetzt habe ich den Juju-Charm "openstack-base" genommen und an meine Hardware angepasst (3x Storage-Nodes, 2x Controller-Nodes, 2x Nova-Nodes), hier mein "bundle.yaml":
machines:
'0':
series: bionic
constraints: "tags=virtual-machine"
'1':
series: bionic
constraints: "tags=virtual-machine"
'2':
series: bionic
constraints: "tags=controller"
'3':
series: bionic
constraints: "tags=controller"
'4':
series: bionic
constraints: "tags=storage"
'5':
series: bionic
constraints: "tags=storage"
'6':
series: bionic
constraints: "tags=storage"
relations:
- - nova-compute:amqp
- rabbitmq-server:amqp
- - neutron-gateway:amqp
- rabbitmq-server:amqp
- - keystone:shared-db
- mysql:shared-db
- - nova-cloud-controller:identity-service
- keystone:identity-service
- - glance:identity-service
- keystone:identity-service
- - neutron-api:identity-service
- keystone:identity-service
- - neutron-openvswitch:neutron-plugin-api
- neutron-api:neutron-plugin-api
- - neutron-api:shared-db
- mysql:shared-db
- - neutron-api:amqp
- rabbitmq-server:amqp
- - neutron-gateway:neutron-plugin-api
- neutron-api:neutron-plugin-api
- - glance:shared-db
- mysql:shared-db
- - glance:amqp
- rabbitmq-server:amqp
- - nova-cloud-controller:image-service
- glance:image-service
- - nova-compute:image-service
- glance:image-service
- - nova-cloud-controller:cloud-compute
- nova-compute:cloud-compute
- - nova-cloud-controller:amqp
- rabbitmq-server:amqp
- - nova-cloud-controller:quantum-network-service
- neutron-gateway:quantum-network-service
- - nova-compute:neutron-plugin
- neutron-openvswitch:neutron-plugin
- - neutron-openvswitch:amqp
- rabbitmq-server:amqp
- - openstack-dashboard:identity-service
- keystone:identity-service
- - nova-cloud-controller:shared-db
- mysql:shared-db
- - nova-cloud-controller:neutron-api
- neutron-api:neutron-api
- - cinder:image-service
- glance:image-service
- - cinder:amqp
- rabbitmq-server:amqp
- - cinder:identity-service
- keystone:identity-service
- - cinder:cinder-volume-service
- nova-cloud-controller:cinder-volume-service
- - cinder-ceph:storage-backend
- cinder:storage-backend
- - ceph-mon:client
- nova-compute:ceph
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - cinder:shared-db
- mysql:shared-db
- - ceph-mon:client
- cinder-ceph:ceph
- - ceph-mon:client
- glance:ceph
- - ceph-osd:mon
- ceph-mon:osd
- - ntp:juju-info
- nova-compute:juju-info
- - ntp:juju-info
- neutron-gateway:juju-info
- - ceph-radosgw:mon
- ceph-mon:radosgw
- - ceph-radosgw:identity-service
- keystone:identity-service
series: bionic
services:
ceph-mon:
annotations:
gui-x: '750'
gui-y: '500'
charm: cs:ceph-mon-25
num_units: 3
options:
expected-osd-count: 3
bindings:
public: admin-space
cluster: admin-space
admin: admin-space
bootstrap-source: admin-space
mon: admin-space
osd: admin-space
radosgw: admin-space
to:
- lxd:4
- lxd:5
- lxd:6
ceph-osd:
annotations:
gui-x: '1000'
gui-y: '500'
charm: cs:ceph-osd-268
num_units: 3
options:
osd-devices: '/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj'
bindings:
public: admin-space
cluster: admin-space
mon: admin-space
to:
- '4'
- '5'
- '6'
ceph-radosgw:
annotations:
gui-x: '1000'
gui-y: '250'
charm: cs:ceph-radosgw-258
num_units: 1
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:3
cinder:
annotations:
gui-x: '750'
gui-y: '0'
charm: cs:cinder-272
num_units: 1
options:
block-device: None
glance-api-version: 2
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:2
cinder-ceph:
annotations:
gui-x: '750'
gui-y: '250'
charm: cs:cinder-ceph-233
num_units: 0
bindings:
ceph: admin-space
glance:
annotations:
gui-x: '250'
gui-y: '0'
charm: cs:glance-267
num_units: 1
options:
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
to:
- lxd:3
keystone:
annotations:
gui-x: '500'
gui-y: '0'
charm: cs:keystone-282
num_units: 1
options:
worker-multiplier: 0.25
bindings:
public: admin-space
admin: admin-space
internal: admin-space
shared-db: admin-space
to:
- lxd:2
mysql:
annotations:
gui-x: '0'
gui-y: '250'
charm: cs:percona-cluster-268
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
bindings:
db-admin: admin-space
access: admin-space
to:
- lxd:3
neutron-api:
annotations:
gui-x: '500'
gui-y: '500'
charm: cs:neutron-api-261
num_units: 1
options:
flat-network-providers: physnet1
neutron-security-groups: true
worker-multiplier: 0.25
overlay-network-type: vxlan
default-tenant-network-type: vxlan
bindings:
public: admin-space
admin: admin-space
internal: admin-space
neutron-api: admin-space
neutron-plugin-api: admin-space
shared-db: admin-space
amqp: admin-space
identity-service: admin-space
vsd-rest-api: admin-space
neutron-plugin-api-subordinate: admin-space
etcd-proxy: admin-space
midonet: admin-space
external-dns: admin-space
to:
- lxd:2
neutron-gateway:
annotations:
gui-x: '0'
gui-y: '0'
charm: cs:neutron-gateway-252
num_units: 1
options:
bridge-mappings: physnet1:br-ex
data-port: br-ex:eno1
worker-multiplier: 0.25
bindings:
amqp: admin-space
amqp-nova: admin-space
neutron-plugin-api: admin-space
data: admin-space
quantum-network-service: admin-space
to:
- '2'
neutron-openvswitch:
annotations:
gui-x: '250'
gui-y: '500'
charm: cs:neutron-openvswitch-250
num_units: 0
bindings:
amqp: admin-space
data: admin-space
neutron-control: admin-space
neutron-plugin: admin-space
neutron-plugin-api: admin-space
nova-cloud-controller:
annotations:
gui-x: '0'
gui-y: '500'
charm: cs:nova-cloud-controller-310
num_units: 1
options:
network-manager: Neutron
worker-multiplier: 0.25
console-access-protocol: spice
bindings:
public: admin-space
admin: admin-space
internal: admin-space
shared-db: admin-space
amqp: admin-space
image-service: admin-space
identity-service: admin-space
cloud-compute: admin-space
cinder-volume-service: admin-space
neutron-api: admin-space
to:
- lxd:3
nova-compute:
annotations:
gui-x: '250'
gui-y: '250'
charm: cs:nova-compute-284
num_units: 2
options:
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
virt-type: kvm
libvirt-image-backend: rbd
bindings:
internal: admin-space
amqp: admin-space
ceph: admin-space
ceph-access: admin-space
cloud-compute: admin-space
compute-peer: admin-space
ephemeral-backend: admin-space
image-service: admin-space
neutron-plugin: admin-space
to:
- '0'
- '1'
ntp:
annotations:
gui-x: '1000'
gui-y: '0'
charm: cs:ntp-27
num_units: 0
openstack-dashboard:
annotations:
gui-x: '500'
gui-y: '-250'
charm: cs:openstack-dashboard-261
num_units: 1
bindings:
public: admin-space
website: admin-space
dashboard-plugin: admin-space
identity-service: admin-space
cluster: admin-space
to:
- lxd:3
rabbitmq-server:
annotations:
gui-x: '500'
gui-y: '250'
charm: cs:rabbitmq-server-77
num_units: 1
bindings:
"": admin-space
amqp: admin-space
ceph: admin-space
cluster: admin-space
to:
- lxd:2
Ich weiß, dass die umfangreichen Einstellungen für "Bindungen" das Ergebnis mehrerer Versuche sind, das Zeug zum Laufen zu bringen. Mit diesem Setup kann ich den kompletten Juju-Charme erfolgreich implementieren und alle Dienste funktionieren (anscheinend). Jetzt habe ich alles im "Horizon Dashboard" konfiguriert und meine Instanz gestartet (cirrOS 0.3.4). Leider kann ich nicht auf das externe Netzwerk zugreifen, daher ist auf den VMs kein Internet verfügbar. Die Instanzen sind auch nicht von außen zugänglich (ext-net -> VM über Floating IP).
Ich denke, mein Problem sind verschiedene Zuordnungen von "Bridge-Mappings" und "Data-Port" -Einstellungen. mit ausnahme der speicherknoten verwende ich nur die erste netzwerkkarte (eno1) auf allen servern. Später möchte ich eine weitere Karte hinzufügen, aber zuerst versuche ich, sie überhaupt zum Laufen zu bringen.
ok, nachdem ich den "ext-br" -Punkt auf "eno2" hatte, habe ich jetzt Zugriff auf mein externes Gateway, also das Internet! Wichtig ist, dass Sie die Schnittstelle über MAAS unkonfiguriert lassen, "ovs" ignoriert diese Einstellungen ohnehin oder irritiert sie nur. Ist keine eigene Schnittstelle verfügbar, kann auch ein VLAN verwendet werden.