分享一下Rocky版本的OpenStack安装管理经验:
OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法改动稍大,不过依然是比较复杂
官方文档地址:https://docs.openstack.org/install-guide/openstack-services.html
本文主要分享控制节点的环境配置方法:
---------------- 完美的分割线 ------------------
1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验
2)系统选择是目前的最新版本:CentOS Linux release 7.5.1804 (Core)
3)控制节点Controller :192.168.1.81 计算节点Nova:192.168.1.82
# 主机名设置好就不能修改,否则会出问题,控制节点和计算节点配置相同,且都需要配置
hostname openstack01.zuiyoujie.comhostnameecho "openstack01.zuiyoujie.com"> /etc/hostnamecat /etc/hostname
vim /etc/hosts-----------------------------------192.168.1.81 openstack01.zuiyoujie.com controller192.168.1.82 openstack02.zuiyoujie.com compute02 block02 object02-----------------------------------
# 配置主机名的FQDN格式,和集群内部角色名称方便后续配置
# 在CentOS7上面是firewalld
systemctl stop firewalld.servicesystemctl disable firewalld.servicesystemctl status firewalld.service
setenforce 0getenforcesed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinuxgrep SELINUX=disabled /etc/sysconfig/selinux
yum install chrony -y
vim /etc/chrony.conf--------------------------------server ntp1.aliyun.com iburstserver ntp2.aliyun.com iburstallow 192.168.0.0/24--------------------------------
systemctl restart chronyd.servicesystemctl status chronyd.servicesystemctl enable chronyd.servicesystemctl list-unit-files |grep chronyd.service
timedatectl set-timezone Asia/Shanghaichronyc sourcestimedatectl status
# 配置完成,如下显示
[root@openstack01 ~]# chronyc sources 210 Number of sources = 2MS Name/IP address Stratum Poll Reach LastRx Last sample ==================================================================================^* 120.25.115.20 2 6 17 9 +17ms[ +22ms] +/- 34ms^+ 203.107.6.88 2 6 17 9 +3029us[+8251us] +/- 54ms[root@openstack01 ~]# timedatectl status Local time: 一 2018-10-22 15:13:51 CST Universal time: 一 2018-10-22 07:13:51 UTC RTC time: 一 2018-10-22 07:13:52 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yesNTP synchronized: yes RTC in local TZ: no DST active: n/a
mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repomv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backupwget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install centos-release-openstack-rocky -yyum clean allyum makecache
# 也可以手动创建OpenStack的阿里云yum源地址
vim /etc/yum.repos.d/CentOS-OpenStack-Rocky.repo----------------------------------[centos-openstack-rocky]name=CentOS-7 - OpenStack rockybaseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud[centos-openstack-rocky-test]name=CentOS-7 - OpenStack rocky Testingbaseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/gpgcheck=0enabled=0[centos-openstack-rocky-debuginfo]name=CentOS-7 - OpenStack rocky - Debugbaseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud[centos-openstack-rocky-source]name=CentOS-7 - OpenStack rocky - Sourcebaseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud[rdo-trunk-rocky-tested]name=OpenStack rocky Trunk Testedbaseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/rdo-trunk-rocky-tested/gpgcheck=0enabled=0-----------------------------------
yum update -y
yum install python-openstackclient openstack-selinux -y
# 可以修改系统内核更改最大连接数和文件句柄数
# CentOS7.5默认数据库为maraidb
yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y
vim /etc/my.cnf.d/mariadb_openstack.cnf# 在[mysqld]添加以下配置-----------------------------------[mysqld]bind-address = 0.0.0.0default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8init-connect = 'SET NAMES utf8'-----------------------------------
# 配置解释:
default-storage-engine = innodb 默认存储引擎innodb_file_per_table 使用独享表空间模式,每一个表都会建一个表空间,都会有索引文件,查索引快,共享表空间,共用一个表空间和索引,如果有损坏很难修复,比如说zabbix用到的数据库如果不使用的独享表空间,很难进行优化collation-server = utf8_general_ciinit-connect = 'SET NAMES utf8'character-set-server = utf8
systemctl restart mariadb.servicesystemctl status mariadb.service systemctl enable mariadb.service systemctl list-unit-files |grep mariadb.service
# 设置密码,默认密码为空,然后输入密码123456,一路y回车
/usr/bin/mysql_secure_installation systemctl restart mariadb.service
# 注意:生产环境可以使用pwgen工具生成数据库密码
openssl rand -hex 10
# 测试下数据库,相关的数据库在需要时单独创建
mysql -p123456-----------------------------------flush privileges;show databases;select user,host from mysql.user;exit-----------------------------------
# 至此,数据库配置完毕
消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。
yum install rabbitmq-server -y
# 端口5672,15672,用于拍错
systemctl start rabbitmq-server.servicesystemctl status rabbitmq-server.servicesystemctl enable rabbitmq-server.servicesystemctl list-unit-files |grep rabbitmq-server.service
# 添加openstack用户和密码,配置用户权限,配置读,写权限
rabbitmqctl add_user openstack openstackrabbitmqctl set_permissions openstack ".*" ".*" ".*"
# 查看支持的插件
rabbitmq-plugins list
# 启用web管理插件,需要重启服务使之生效
rabbitmq-plugins enable rabbitmq_managementsystemctl restart rabbitmq-server.servicerabbitmq-plugins listlsof -i:15672
访问地址:http://192.168.1.81:15672
# 首次登陆,默认用户名密码都是guest,需要登录上去修改openstack用户的权限(Tags)# 打开admin管理标签,点击openstack用户名,打开以下界面,点击admin设置administrator的Tags,输入刚才设置的密码openstack,更新用户设置,最后使用openstack用户进行登陆测试
# rabbitmq配置完毕
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,推荐联合启用防火墙、认证和加密保证它的安全。
yum install memcached python-memcached -y
vim /etc/sysconfig/memcached----------------------------------OPTIONS="-l 127.0.0.1,controller"----------------------------------
# 如果没有启用IPv6地址需要删掉::1的地址绑定
systemctl start memcached.servicesystemctl status memcached.servicenetstat -anptl|grep memcachedsystemctl enable memcached.servicesystemctl list-unit-files |grep memcached.service
# memcached参数说明:
-d选项是作为守护进程在后台运行 -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话 -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, -P是设置保存Memcache的pid文件-vv是以very vrebose模式启动,将调试信息和错误输出到控制台
# 至此,memcached配置完毕
# 这个Etcd服务是新加入的,用于自动化配置
yum install etcd -y
vim /etc/etcd/etcd.conf-----------------------------------#[Member]ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://192.168.1.81:2380"ETCD_LISTEN_CLIENT_URLS="http://192.168.1.81:2379"ETCD_NAME="controller" #[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.81:2380"ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.81:2379"ETCD_INITIAL_CLUSTER="controller=http://192.168.1.81:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"------------------------------------
# 注意上面的IP地址不能用controller替代,无法解析
systemctl start etcd.servicesystemctl status etcd.servicenetstat -anptl|grep etcdsystemctl enable etcd.servicesystemctl list-unit-files |grep etcd.service
# 至此,控制节点controller就完成基础环境的配置,下面可以开始安装 openstack 的组件
# 虚拟机的话配置完成可以关机做快照
======== 完毕,呵呵呵呵 ========
附:openstack计算节点的系统环境配制方法:https://www.cnblogs.com/tssc/p/9857647.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728