centos安装rabbitmq_Openstack安装之基础环境及公共组件安装

1.1 环境介绍

1.1.1 操作系统及软件

  • CentOS Linux release 8.2.2004 (Core)
  • openstack train
  • Ceph:Octopus

1.1.2 官网提供的逻辑架构图

e43946987b4d92a75d98c1da9b42eb0d.png

1.1.3 本文所涉及的部署拓扑

49de8453898921d588fca845d9a60265.png
  • 部署说明:
(1)部署的拓扑取决于OpenStack的三层网络是采用Linuxbridge还是OVS来实现,不同的实现方式需要的网卡数量不尽相同。(2)建议服务器最少2张网络设计。External Network、Management Network和Ceph Cluster的Public Network可以复用一张网络。(3)LinuxBridge网络下,Tenant Network和Ceph Cluster的Cluster Network可以复用一张网络。(4)Ceph Cluster 建议2张网络分离,Public Network和Cluster Network走不同的网络。
  • 组件部署说明
(1) controller节点运行keystone,glance,horizon,nova的管理组件,neutron的管理组件,cinder管理组件和ceph-mon节点。(2) 采用ceph作为存储,因此cinder volume部署在controller节点上,以便用pacemaker实现故障切换。(3) conpute节点运行nova-compute,neutron-linuxbridge-agent/neutron-ovs-agent,kvm,ceph-osd,ceph-mgr等。(4) Tenant Network可以在Tunel和Vxlan网络中二选一即可,实现guest。 (5) 本系列文档中,os之间通讯的网络,主要选用vxlan方式。(6) 本系列文档采用self-service-networks提供自助网络服务,provider networks 不支持专有网络,需要依靠外部基础设施提供3层路由与增值服务(LBaaS,FwaaS)。(7) 本系列文档前端采用pacemaker+haproxy做高可用。(8) 无状态的服务器,如xxx-api,采用active/active的模式运行;有状态的服务,如neutron-xxx-agent、cinder-volume等,建议采用active/passive的模式运行。自身具有集群机制的服务,如rabbitmq、memcached等采用本身的集群机制即可。

1.2 基础环境配置

1.2.1 hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6#vip10.29.32.10     controller.sysit.cn  controller#controller10.29.32.7     controller1.sysit.cn controller110.29.32.8     controller2.sysit.cn controller210.29.32.9     controller3.sysit.cn controller3#compute10.29.32.11     compute1.sysit.cn compute110.29.32.12     compute2.sysit.cn compute210.29.32.13     compute3.sysit.cn compute3

1.2.2 操作通初始化

  • 见本站CentOS8初始化脚本

1.2.3 ntp或chrony

  • 见本网站其他文档,推荐chrony

1.2.4 设置openstack packages

#安装yum源dnf install -y centos-release-openstack-traindnf install https://www.rdoproject.org/repos/rdo-release.el8.rpmdnf upgrade -y#安装oepnstack-clientdnf install -y python3-openstackclient#selinux开启时需要安装openstack-selinux,这里已将seliux设置为默认关闭dnf install -y openstack-selinux
  • 以上使用的源默认会使用mirrors.centos.org的源,安装时候会特别慢。建议修改centos、epel的源为清华大学的源,批量修改:
for i in `ls /etc/yum.repos.d/` ;do sed -i "s/mirror.centos.org/mirror.tuna.tsinghua.edu.cn/g" /etc/yum.repos.d/$i ;done

1.3 公共组件安装

1.3.1 数据库

本系列文档采用PXC作为集群数据库,参见本站PXC在CentOS8上安装。

1.3.2 Rabbitmq 集群安装

  • 安装
dnf install -y rabbitmq-server
  • 常用管理
systemctl enable rabbitmq-server.servicesystemctl start rabbitmq-server.servicesystemctl status rabbitmq-server.service
  • 集群搭建
# 第一台systemctl start rabbitmq-server.service# 此时得到node的名称为rabbit@controller1rabbitmqctl cluster_status
  • 同步cookie
[root@controller1 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@controller2.sysit.cn:/var/lib/rabbitmq/[root@controller2 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie[root@controller2 ~]# ll /var/lib/rabbitmq/.erlang.cookie -r--------. 1 rabbitmq rabbitmq 20 Jul 14 17:32 /var/lib/rabbitmq/.erlang.cookie
  • 加入集群

需要用到上一步得到的rabbit@controller1.

将controller2和controller3节点加入到集群

[root@controller2 ~]# systemctl restart rabbitmq-server[root@controller2 ~]# rabbitmqctl stop_appStopping rabbit application on node rabbit@controller2 ...[root@controller2 ~]# rabbitmqctl join_cluster  rabbit@controller1 Clustering node rabbit@controller2 with rabbit@controller1 [root@controller2 ~]# rabbitmqctl start_app Starting node rabbit@controller2 ... completed with 0 plugins.

有些网上的文档中采用了 rabbitmqctl join_cluster --ram rabbit@controller2,这表示这个节点是一个RAM节点,会将schema存储在内存中。默认值是–disc,存储在磁盘中,强烈推荐存储在磁盘。

  • 检查是否创建成功
[root@controller1 ~]# rabbitmqctl cluster_statusCluster status of node rabbit@controller1 ...BasicsCluster name: rabbit@controller1.sysit.cnDisk Nodesrabbit@controller1rabbit@controller2rabbit@controller3Running Nodesrabbit@controller1rabbit@controller2rabbit@controller3Versionsrabbit@controller1: RabbitMQ 3.8.3 on Erlang 22.2.8rabbit@controller2: RabbitMQ 3.8.3 on Erlang 22.2.8rabbit@controller3: RabbitMQ 3.8.3 on Erlang 22.2.8Alarms(none)Network Partitions(none)ListenersNode: rabbit@controller1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communicationNode: rabbit@controller1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0Node: rabbit@controller2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communicationNode: rabbit@controller2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0Node: rabbit@controller3, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communicationNode: rabbit@controller3, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0Feature flagsFlag: implicit_default_bindings, state: enabledFlag: quorum_queue, state: enabledFlag: virtual_host_metadata, state: enabled

以上均是Disk Nodes,如果有节点使用了--ram参数,则这里会显示RAM Nodes的信息

  • 创建用户并配置读写策略

任意节点上操作

# 创建用户[root@controller1 ~]# rabbitmqctl add_user openstack passwordAdding user "openstack" ...[root@controller1 ~]# rabbitmqctl set_user_tags openstack administratorSetting tags for user "openstack" to [administrator] ...#允许openstack用户的配置、写和读访问:[root@controller1 ~]# rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"        Setting permissions for user "openstack" in vhost "/" ... #查看账号[root@controller1 ~]# rabbitmqctl list_usersListing users ...user    tagsopenstack       [administrator]guest   [administrator]
  • 设置镜像队列高可用

任意节点上操作

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
  • 查看镜像队列策略
rabbitmqctl list_policies 
  • web管理插件

在需要的节点上启用web管理插件

rabbitmq-plugins enable rabbitmq_management
  • 剔除节点
rabbitmqctl stoprabbitmqctl  -n rabbit@controller1 forget_cluster_node rabbit@controller2

1.3.3 memcached

dnf install -y memcached python3-memcachedsed -i 's|127.0.0.1,::1|0.0.0.0|g' /etc/sysconfig/memcachedsystemctl restart memcached
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值