目录:
第一节 多节点OpenStack Charms 部署指南0.0.1.dev223–1--OpenStack Charms 部署指南
第二节 多节点OpenStack Charms 部署指南0.0.1.dev223–2-安装MAAS
第三节 多节点OpenStack Charms 部署指南0.0.1.dev223–3-安装Juju
第四节 多节点OpenStack Charms 部署指南0.0.1.dev223–4-安装openstack
第五节 多节点OpenStack Charms 部署指南0.0.1.dev223–5--使bundle安装openstack
第六节 多节点OpenStack Charms 部署指南0.0.1.dev223–6--配置vault和设置数字证书生命周期
第七节 多节点OpenStack Charms 部署指南0.0.1.dev223–7--juju 离线部署bundle
第八节 多节点OpenStack Charms 部署指南0.0.1.dev223–8--配置 OpenStack
附录 t 多节点OpenStack Charms 部署指南0.0.1.dev223–附录T–OpenStack 高可用性
第九节 多节点OpenStack Charms 部署指南0.0.1.dev223–9--网络拓扑
第十节 多节点OpenStack Charms 部署指南0.0.1.dev223–10–OpenStack 高可用基础架构实际
第十一节 多节点OpenStack Charms 部署指南0.0.1.dev223–11–访问Juju仪表板
第十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–12–OpenStack 配置openstack失败后处理
第十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–13–OpenStack配置高可用后无法登陆openstack dashboard
第十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–14–ssh端口转发解决IDC机房国际线路不良问题
第十五节 多节点OpenStack Charms 部署指南0.0.1.dev299–15–OpenStack 实例高可用
第十六节 多节点OpenStack Charms 部署指南0.0.1.dev299–16–OpenStack基础架构高可用The easyrsa resource is missing. .
第十七节 多节点OpenStack Charms 部署指南0.0.1.dev303–17–修改实例数量等quota上限
第十八节 多节点OpenStack Charms 部署指南0.0.1.dev303–18–backup备份
第十九节 多节点OpenStack Charms 部署指南0.0.1.dev303–19–juju log
第二十节 多节点OpenStack Charms 部署指南0.0.1.dev303–20–控制器高可用性
第二十一节 多节点OpenStack Charms 部署指南0.0.1.dev303–21–控制器备份和还原
第二十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–22-- Resource: res_masakari_haproxy not running
第二十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–23-登录openstack-dashboad,SSLError(SSLCertVerificationError
第二十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–24-Resource: res_masakari_f8b6bde_vip not running
第二十五节 多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际
第二十六节 多节点OpenStack Charms 部署指南0.0.1.dev223–26–跨model 建立关系构建rsyslog 日志服务器构建实际
第二十七节 多节点OpenStack Charms 部署指南0.0.1.dev223–27–Charm Hook
第二十八节 多节点OpenStack Charms 部署指南0.0.1.dev223–28–Command run
第三十节 多节点OpenStack Charms 部署指南0.0.1.–30–参考体系结构—Dell EMC硬件上的Canonical Charmed OpenStack(Ussuri)
第三十一节 多节点OpenStack Charms 部署指南0.0.1.–31–vm hosting-1
第三十二节 多节点OpenStack Charms 部署指南0.0.1.–32–vm hosting-2-VM host networking (snap/2.9/UI)
第三十三节 多节点OpenStack Charms 部署指南0.0.1.–33–vm hosting-3-Adding a VM host (snap/2.9/UI)
第三十四节 多节点OpenStack Charms 部署指南0.0.1.–34–vm hosting-4-VM host存储池和创建和删除vm (snap/2.9/UI)
第三十五节 多节点OpenStack Charms 部署指南0.0.1.–35–Command export-bundle备份opensack并重新部署openstack
第三十六节 多节点openstack charms 部署指南0.0.1-36-graylog实际-1
第三十七节 多节点openstack charms 部署指南0.0.1-37-graylog实际-2
第三十八节 多节点openstack charms 部署指南0.0.1-38-graylog实际-3
第三十九节 多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat
第四十节 多节点openstack charms 部署指南0.0.1-40-prometheus2
参考文档:
概述
使用juju 部署openstack后,一直用的挺好,但是最近在测试添加vm,需要在节点服务器上添加网桥,本来通过命令行也可以在节点服务器上添加网桥,但是想着正好可以测试下前段时间使用juju export-bundle
命令备份下来的bundle,所以干脆就重新部署下openstack。
笔者部署openstack,是通过maas裸机服务+juju编排工具部署的,最开始部署了openstack base #73,这个bundle只有基本的组件,后来又逐渐添加了基础架构高可用组件,实例高可用组件,配置了个跨模型的rsyslog服务。如果在从头手工配置的话,估计又得一天时间左右。
导出bundle文件
将当前的openstack实际部署,导出一个bundle文件:
juju export-bundle --filename /root/bundle-self-edit/20210518.bundle.yaml
查看内容
cat /root/bundle-self-edit/20210518.bundle.yaml
输出:
series: focal
saas:
primary-rsyslog:
url: maas-controller:admin/rsyslog.primary-rsyslog
applications:
ceph-mon:
charm: cs:ceph-mon-53
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
expected-osd-count: 3
monitor-count: 3
source: cloud:focal-victoria
annotations:
gui-x: "790"
gui-y: "1540"
ceph-osd:
charm: cs:ceph-osd-308
num_units: 3
to:
- "0"
- "1"
- "2"
options:
osd-devices: /dev/sdb /dev/vdb
source: cloud:focal-victoria
annotations:
gui-x: "1065"
gui-y: "1540"
ceph-radosgw:
charm: cs:ceph-radosgw-294
num_units: 3
to:
- lxd:0
- lxd:2
- lxd:1
options:
source: cloud:focal-victoria
vip: 10.0.7.42
annotations:
gui-x: "850"
gui-y: "900"
ceph-radosgw-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
cinder:
charm: cs:cinder-308
num_units: 3
to:
- lxd:0
- lxd:2
- lxd:1
options:
block-device: None
glance-api-version: 2
openstack-origin: cloud:focal-victoria
vip: 10.0.7.47
worker-multiplier: 0.25
annotations:
gui-x: "980"
gui-y: "1270"
cinder-ceph:
charm: cs:cinder-ceph-260
annotations:
gui-x: "1120"
gui-y: "1400"
cinder-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
cinder-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "900"
gui-y: "1400"
dashboard-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "510"
gui-y: "1030"
easyrsa:
charm: local:focal/easyrsa-0
num_units: 1
to:
- lxd:0
etcd:
charm: local:focal/etcd-0
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
channel: 3.1/stable
glance:
charm: cs:glance-303
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
openstack-origin: cloud:focal-victoria
vip: 10.0.7.52
worker-multiplier: 0.25
annotations:
gui-x: "-230"
gui-y: "1270"
glance-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
glance-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "-290"
gui-y: "1400"
hacluster:
charm: cs:hacluster-74
options:
maas_credentials: HrNTLvEaW2Z4hUaGCr:rXuELuKrB2q3wAne2r:xmTKFCDheeNXunddCdBkuHZbGVgFv9sU
maas_url: http://10.0.0.3:5240/MAAS
keystone:
charm: cs:keystone-321
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
openstack-origin: cloud:focal-victoria
vip: 10.0.7.12
worker-multiplier: 0.25
annotations:
gui-x: "300"
gui-y: "1270"
keystone-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
keystone-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "230"
gui-y: "1400"
masakari:
charm: local:focal/masakari-0
num_units: 3
to:
- lxd:2
- lxd:0
- lxd:1
options:
openstack-origin: cloud:focal-victoria
vip: 10.0.7.72
masakari-monitors:
charm: local:focal/masakari-monitors-0
masakari-mysql-router:
charm: local:focal/mysql-router-0
memcached:
charm: cs:memcached-32
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
mysql-innodb-cluster:
charm: local:focal/mysql-innodb-cluster-0
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
annotations:
gui-x: "535"
gui-y: "1550"
neutron-api:
charm: cs:neutron-api-292
num_units: 3
to:
- lxd:0
- lxd:2
- lxd:1
options:
flat-network-providers: physnet1
neutron-security-groups: true
openstack-origin: cloud:focal-victoria
vip: 10.0.7.57
worker-multiplier: 0.25
annotations:
gui-x: "580"
gui-y: "1270"
neutron-api-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
neutron-api-plugin-ovn:
charm: local:focal/neutron-api-plugin-ovn-0
annotations:
gui-x: "690"
gui-y: "1385"
neutron-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "505"
gui-y: "1385"
nova-cloud-controller:
charm: cs:nova-cloud-controller-352
num_units: 3
to:
- lxd:1
- lxd:2
- lxd:0
options:
console-access-protocol: novnc
network-manager: Neutron
openstack-origin: cloud:focal-victoria
vip: 10.0.7.62
worker-multiplier: 0.25
annotations:
gui-x: "35"
gui-y: "1270"
nova-cloud-controller-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
nova-compute:
charm: cs:nova-compute-325
num_units: 3
to:
- "0"
- "1"
- "2"
options:
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
openstack-origin: cloud:focal-victoria
annotations:
gui-x: "190"
gui-y: "890"
nova-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "-30"
gui-y: "1385"
ntp:
charm: local:focal/ntp-0
annotations:
gui-x: "315"
gui-y: "1030"
openstack-dashboard:
charm: cs:openstack-dashboard-311
num_units: 3
to:
- lxd:1
- lxd:0
- lxd:2
options:
openstack-origin: cloud:focal-victoria
vip: 10.0.7.67
annotations:
gui-x: "585"
gui-y: "900"
openstack-dashboard-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
ovn-central:
charm: local:focal/ovn-central-0
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
source: cloud:focal-victoria
annotations:
gui-x: "70"
gui-y: "1550"
ovn-chassis:
charm: local:focal/ovn-chassis-0
options:
bridge-interface-mappings: br-ex:eno2
ovn-bridge-mappings: physnet1:br-ex
annotations:
gui-x: "120"
gui-y: "1030"
pacemaker-remote:
charm: local:focal/pacemaker-remote-0
options:
enable-resources: false
enable-stonith: true
placement:
charm: local:focal/placement-0
num_units: 3
to:
- lxd:2
- lxd:0
- lxd:1
options:
openstack-origin: cloud:focal-victoria
vip: 10.0.7.32
worker-multiplier: 0.25
annotations:
gui-x: "1320"
gui-y: "1270"
placement-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
placement-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "1320"
gui-y: "1385"
rabbitmq-server:
charm: cs:rabbitmq-server-108
num_units: 3
to:
- lxd:2
- lxd:0
- lxd:1
annotations:
gui-x: "300"
gui-y: "1550"
rsyslog-forwarder-ha:
charm: cs:rsyslog-forwarder-ha-20
vault:
charm: local:focal/vault-0
num_units: 3
to:
- lxd:0
- lxd:1
- lxd:2
options:
vip: 10.0.7.21
annotations:
gui-x: "1610"
gui-y: "1430"
vault-hacluster:
charm: cs:hacluster-74
options:
cluster_count: 3
vault-mysql-router:
charm: local:focal/mysql-router-0
annotations:
gui-x: "1535"
gui-y: "1560"
machines:
"0": {}
"1": {}
"2": {}
relations:
- - nova-compute:amqp
- rabbitmq-server:amqp
- - nova-cloud-controller:identity-service
- keystone:identity-service
- - glance:identity-service
- keystone:identity-service
- - neutron-api:identity-service
- keystone:identity-service
- - neutron-api:amqp
- rabbitmq-server:amqp
- - 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
- - openstack-dashboard:identity-service
- keystone:identity-service
- - 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
- - ceph-mon:client
- cinder-ceph:ceph
- - ceph-mon:client
- glance:ceph
- - ceph-osd:mon
- ceph-mon:osd
- - ntp:juju-info
- nova-compute:juju-info
- - ceph-radosgw:mon
- ceph-mon:radosgw
- - ceph-radosgw:identity-service
- keystone:identity-service
- - placement:identity-service
- keystone:identity-service
- - placement:placement
- nova-cloud-controller:placement
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - cinder:shared-db
- cinder-mysql-router:shared-db
- - glance:shared-db
- glance-mysql-router:shared-db
- - nova-cloud-controller:shared-db
- nova-mysql-router:shared-db
- - neutron-api:shared-db
- neutron-mysql-router:shared-db
- - openstack-dashboard:shared-db
- dashboard-mysql-router:shared-db
- - placement:shared-db
- placement-mysql-router:shared-db
- - vault:shared-db
- vault-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - cinder-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - nova-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - glance-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - neutron-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - dashboard-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - placement-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - vault-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - neutron-api-plugin-ovn:neutron-plugin
- neutron-api:neutron-plugin-api-subordinate
- - ovn-central:certificates
- vault:certificates
- - ovn-central:ovsdb-cms
- neutron-api-plugin-ovn:ovsdb-cms
- - neutron-api:certificates
- vault:certificates
- - ovn-chassis:nova-compute
- nova-compute:neutron-plugin
- - ovn-chassis:certificates
- vault:certificates
- - ovn-chassis:ovsdb
- ovn-central:ovsdb
- - vault:certificates
- neutron-api-plugin-ovn:certificates
- - vault:certificates
- cinder:certificates
- - vault:certificates
- glance:certificates
- - vault:certificates
- keystone:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- openstack-dashboard:certificates
- - vault:certificates
- placement:certificates
- - vault:certificates
- ceph-radosgw:certificates
- - vault:certificates
- mysql-innodb-cluster:certificates
- - nova-compute:juju-info
- masakari-monitors:container
- - masakari:ha
- hacluster:ha
- - keystone:identity-credentials
- masakari-monitors:identity-credentials
- - nova-compute:juju-info
- pacemaker-remote:juju-info
- - hacluster:pacemaker-remote
- pacemaker-remote:pacemaker-remote
- - masakari:identity-service
- keystone:identity-service
- - masakari:shared-db
- masakari-mysql-router:shared-db
- - masakari:amqp
- rabbitmq-server:amqp
- - masakari-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - masakari:shared-db
- mysql-innodb-cluster:shared-db
- - vault:certificates
- masakari:certificates
- - vault:ha
- vault-hacluster:ha
- - keystone-hacluster:ha
- keystone:ha
- - vault:shared-db
- mysql-innodb-cluster:shared-db
- - etcd:db
- vault:etcd
- - etcd:certificates
- easyrsa:client
- - openstack-dashboard-hacluster:ha
- openstack-dashboard:ha
- - placement-hacluster:ha
- placement:ha
- - ceph-radosgw-hacluster:ha
- ceph-radosgw:ha
- - cinder-hacluster:ha
- cinder:ha
- - glance-hacluster:ha
- glance:ha
- - neutron-api-hacluster:ha
- neutron-api:ha
- - nova-cloud-controller-hacluster:ha
- nova-cloud-controller:ha
- - nova-cloud-controller:memcache
- memcached:cache
- - rsyslog-forwarder-ha:juju-info
- easyrsa:juju-info
- - rsyslog-forwarder-ha:syslog
- primary-rsyslog:aggregator
修改导出的bundle文件
上面的代码中,有 charm: cs:
和 charm: local:focal
两种格式,其中前者是直接从canonical store仓库中下载的charm代码,后者的charm: local:focal
是由于网络原因,直接下载不顺利,通过其他网络下载,再上传到maas服务器的charm代码。
需要将上面代码里面的charm: local:focal
根据实际的本地charm代码存储位置进行变更,如笔者本地charm代码存储位置为/root/openstack-base-73/,故将以上代码变更为:charm: /root/openstack-base-73/:
另外,导出的bundle中,调用的本地charm版本会自动变成0,所以要将-0删除,变更为本地/root/openstack-based-73/目录下对应的charm的名字。
删除现有openstack
删除现有的openstack模型:
juju destroy-model openstack --force --no-wait
重新部署openstack
重建模型:
juju add-model openstack
再次部署openstack
juju deploy /root/bundle-self-edit/20210518.bundle.yaml --debug
一般会在一个小时左右部署完毕。
部署后配置openstack
等部署完毕,查看状态
juju status
会发现easyrsa缺少资源,请按照前文多节点OpenStack Charms 部署指南0.0.1.dev299–16–OpenStack基础架构高可用The easyrsa resource is missing修改,或者直接在/root/bundle-self-edit/20210518.bundle.yaml中的easyrsa段中增加resource。
还会发现masakari:
Resource: res_masakari_haproxy not running
需要根据前文多节点OpenStack Charms 部署指南0.0.1.dev223–22-- Resource: res_masakari_haproxy not running进行修改。
再手工解封vault,根据前文多节点OpenStack Charms 部署指南0.0.1.dev223–10–OpenStack 高可用基础架构实际处理。
至此,openstack基本部署完毕,应该是最快的openstack部署方法了。