Openstack+Ceph 安装及配置-01-Openstack-Yoga基础环境配置

 

 Openstack 环境部署


一、安装系统

安装系统(Centos8 Stream),配置网络,无密码登录等

二、配置时间服务器

此处选择chrony而非ntp
选择原因,参考网上说明

  • 更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
  • 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
  • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

chrony 简单说明

  • 安装:yum install chrony
  • 两个主要程序:chronyd和chronyc
  • chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿
  • chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作
  • 服务unit文件: /usr/lib/systemd/system/chronyd.service
  • 监听端口: 323/udp,123/udp
  • 配置文件: /etc/chrony.conf

安装

for i in {1..10}; do ssh node-$i "yum install chrony -y"; done

配置
修改配置文件

vim /etc/chrony.conf
server 172.16.1.1 iburst
allow 192.168.0.0/16

设置启动,在每一台服务器执行

systemctl enable chronyd.service
systemctl start chronyd.service

三、配置环境

安装配置源

yum install centos-release-openstack-yoga -y
yum config-manager --set-enabled powertools

安装OpenStack 客户端

yum install python3-openstackclient -y

安装openstack-selinux 包

yum install openstack-selinux -y

以上部分需要在每个节点安装

四、安装配置数据库

此处配置Mysql双主,后期修改为双主双从。

节点:node-1、node-2

基础安装如下

yum install mariadb mariadb-server python3-PyMySQL -y

配置

vim /etc/my.cnf.d/openstack

[mysqld]
bind-address = 172.16.1.81
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

初始化数据库

systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation
配置密码为Mysql123
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

添加其他节点访问权限

grant all privileges on *.* to 'root'@'%' identified by 'Mysql123' with grant option;

安装galera,先结束mariadb

systemctl stop mariadb
yum install galera mariadb-server-galera -y

配置galera,复制配置文件到其他节点,修改wsrep_node_name、wsrep_node_address

vim /etc/my.cnf.d/mariadb-server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://172.16.1.81,172.16.1.82"
wsrep_node_name=openstack-1
wsrep_node_address=10.8.1.81
binlog_format=ROW
innodb_autoinc_lock_mode=2
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=120M
wsrep_sst_method=rsync
wsrep_causal_reads=ON
default_storage_engine=InnoDB

启动主节点

galera_new_cluster

启动其他节点

systemctl start mariadb

注意,相关端口除了3306,4567之外应该还有4444,目前是将ip加入白名单

验证

MariaDB [(none)]> show status like 'wsrep_cluster_status';
+----------------------+---------+
| Variable_name | Value |
+----------------------+---------+
| wsrep_cluster_status | Primary |
+----------------------+---------+
1 row in set (0.000 sec)
MariaDB [(none)]> show status like 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
1 row in set (0.000 sec)
MariaDB [(none)]> show status like 'wsrep_ready';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready | ON |
+---------------+-------+
1 row in set (0.000 sec)

五、安装消息队列

可以独立安装,nova配置时写入多个接口就行,目前node-1、node-2
RabbitMQ:跨三个节点部署 RabbitMQ 集群和镜像消息队列。可以使用 HAProxy 提供负载均衡,或者将 RabbitMQ host list 配置给 OpenStack 组件(使用 rabbit_hosts 和 rabbit_ha_queues 配置项)。
安装rabbit-mq
直接安装报错

# yum install rabbitmq-server
Last metadata expiration check: 2:04:09 ago on Tue 28 Jun 2022 02:09:37 PM CST.
Error:
Problem: package erlang-lager-3.8.0-2.el8.noarch requires erlang-common_test, but none of the providers can be installed
- package erlang-common_test-22.3.4.1-1.el8.x86_64 requires erlang-observer(x86-64) = 22.3.4.1-1.el8, but none of the providers can be installed
- package erlang-cuttlefish-2.0.11-10.el8.noarch requires erlang-lager, but none of the providers can be installed
- package erlang-observer-22.3.4.1-1.el8.x86_64 requires erlang-wx(x86-64) = 22.3.4.1-1.el8, but none of the providers can be installed
- package rabbitmq-server-3.8.3-1.el8.x86_64 requires erlang-cuttlefish, but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_core-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_core-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_core-3.0.so.0(WXU_3.0.5)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_adv-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_aui-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_html-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_stc-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_xrc-3.0.so.0()(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_adv-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_aui-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_html-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_stc-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- package erlang-wx-22.3.4.1-1.el8.x86_64 requires libwx_gtk3u_xrc-3.0.so.0(WXU_3.0)(64bit), but none of the providers can be installed
- conflicting requests
- nothing provides libSDL2-2.0.so.0()(64bit) needed by wxGTK3-3.0.5.1-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

安装源里面没有libSDL,下载安装包安装,(这里也可以直接启用/etc/yum.repos.d/CentOS-Stream-PowerTools.repo这个源,就不用这么麻烦了)

# wget http://rpmfind.net/linux/centos/8-stream/PowerTools/x86_64/os/Packages/SDL2-2.0.10-2.el8.x86_64.rpm
# yum install SDL2-2.0.10-2.el8.x86_64.rpm

再安装就正常了

yum install rabbitmq-server -y

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

 

配置用户及权限

rabbitmqctl add_user openstack Rabbitmq123 #添加openstack用户
rabbitmqctl set_permissions openstack ".*" ".*" ".*" #配置权限

查看用户

# rabbitmqctl list_users
Listing users ...
user tags
openstack []
guest [administrator]

开启web监控

# rabbitmq-plugins enable rabbitmq_management
# firewall-cmd --zone=public --add-port=15672/tcp --permanent
# firewall-cmd --reload

开启后就可以通过web页面访问了

注意修改默认guest用户

# rabbitmqctl add_user admin RabbitMQadmin123
Adding user "admin" ...
# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
# rabbitmqctl delete_user guest
Deleting user "guest" ...
# rabbitmqctl list_users
Listing users ...
user tags
openstack []
admin [administrator]  

可以通过 http://172.16.1.81:15672/#/ 来访问rabbitmq的界面

 六、安装Memcached

安装在node-1,node-2,后期在扩充
Memcached:它原生支持 A/A,只需要在 OpenStack 中配置它所有节点的名称即可,比如,memcached_servers = controller1:11211,controller2:11211。当 controller1:11211 失效时,OpenStack 组件会自动使用controller2:11211。

yum install memcached python3-memcached -y
vim /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1,::1,node-1"
systemctl enable memcached.service
systemctl start memcached.service

七、安装ETCD

部署在node-1、node-2上,以下为1的配置,2更换ip,以后增加节点

yum install etcd -y
vim /etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://172.16.1.81:2380"
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://172.16.1.81:2379"
ETCD_NAME="etcd01"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.16.1.81:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379,http://172.16.1.81:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://172.16.1.81:2380,etcd02=http://172.16.1.82:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

注意:使用主机名会报错,无法启动,需要配置为IP地址

systemctl enable etcd
systemctl start etcd

测试,任一节点执行

# etcdctl cluster-health
member 376da4e97d2b39d2 is healthy: got healthy result from http://10.8.1.81:2379
member 704c4499a769aa99 is healthy: got healthy result from http://10.8.1.82:2379
cluster is healthy

  

 

posted @ 2023-02-09 16:35  苦逼挨踢男  阅读(432)  评论(0编辑  收藏  举报