CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备
分享一下Rocky版本的OpenStack安装管理经验:
OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂
官方文档地址:https://docs.openstack.org/install-guide/openstack-services.html
本文主要分享控制节点的环境配置方法:
---------------- 完美的分割线 ------------------
1.0.系统环境
1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验
2)系统选择是目前的最新版本:CentOS Linux release 7.5.1804 (Core)
3)控制节点Controller :192.168.1.81
计算节点Nova:192.168.1.82
1.1.配置域名解析
1)配置主机名
# 主机名设置好就不能修改,否则会出问题,控制节点和计算节点配置相同,且都需要配置
hostname openstack01.zuiyoujie.com
hostname
echo "openstack01.zuiyoujie.com"> /etc/hostname
cat /etc/hostname
2)配置主机名解析
vim /etc/hosts
-----------------------------------
192.168.1.81 openstack01.zuiyoujie.com controller
192.168.1.82 openstack02.zuiyoujie.com compute02 block02 object02
-----------------------------------
# 配置主机名的FQDN格式,和集群内部角色名称方便后续配置
1.2.关闭防火墙和selinux
1)关闭iptables
# 在CentOS7上面是firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
2)关闭 selinux
setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
grep SELINUX=disabled /etc/sysconfig/selinux
1.3.配置时间同步
1)在控制端配置时间同步服务
yum install chrony -y
2)编辑配置文件确认有以下配置
vim /etc/chrony.conf
--------------------------------
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
allow 192.168.1.0/24
--------------------------------
3)重启ntp服务,并配置开机自启动
systemctl restart chronyd.service
systemctl status chronyd.service
systemctl enable chronyd.service
systemctl list-unit-files |grep chronyd.service
4)设置时区,同步时间
timedatectl set-timezone Asia/Shanghai
chronyc sources
timedatectl status
# 配置完成,如下显示
[root@openstack01 ~]# chronyc sources
210 Number of sources = 2
MS 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: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
1.4.配置相关yum源
1)配置阿里云的base和epel源
mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2)安装openstack-rocky的仓库
yum install centos-release-openstack-rocky -y
yum clean all
yum makecache
# 也可以手动创建OpenStack的阿里云yum源地址
vim /etc/yum.repos.d/CentOS-OpenStack-Rocky.repo
----------------------------------
[centos-openstack-rocky]
name=CentOS-7 - OpenStack rocky
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud [centos-openstack-rocky-test]
name=CentOS-7 - OpenStack rocky Testing
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=0
enabled=0 [centos-openstack-rocky-debuginfo]
name=CentOS-7 - OpenStack rocky - Debug
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud [centos-openstack-rocky-source]
name=CentOS-7 - OpenStack rocky - Source
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud [rdo-trunk-rocky-tested]
name=OpenStack rocky Trunk Tested
baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/rdo-trunk-rocky-tested/
gpgcheck=0
enabled=0
-----------------------------------
3)更新软件包
yum update -y
4)安装openstack客户端相关软件
yum install python-openstackclient openstack-selinux -y
1.5.在控制节点安装数据库
# 可以修改系统内核更改最大连接数和文件句柄数
1)安装mariadb相关软件包
# CentOS7.5默认数据库为maraidb
yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y
2)创建openstack的数据库配置文件
vim /etc/my.cnf.d/mariadb_openstack.cnf
# 在[mysqld]添加以下配置
-----------------------------------
[mysqld]
bind-address = 0.0.0.0
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
init-connect = 'SET NAMES utf8'
-----------------------------------
# 配置解释:
default-storage-engine = innodb 默认存储引擎
innodb_file_per_table 使用独享表空间模式,每一个表都会建一个表空间,都会有索引文件,查索引快,共享表空间,共用一个表空间和索引,如果有损坏很难修复,比如说zabbix用到的数据库如果不使用的独享表空间,很难进行优化
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
3)启动数据库设置开机启动
systemctl restart mariadb.service
systemctl status mariadb.service systemctl enable mariadb.service
systemctl list-unit-files |grep mariadb.service
4)初始化数据库并重新启动
# 设置密码,默认密码为空,然后输入密码123456,一路y回车
/usr/bin/mysql_secure_installation
systemctl restart mariadb.service
# 注意:生产环境可以使用pwgen工具生成数据库密码
openssl rand -hex 10
5)创建openstack相关数据库,进行授权
# 测试下数据库,相关的数据库在需要时单独创建
mysql -p123456
-----------------------------------
flush privileges;
show databases;
select user,host from mysql.user;
exit
-----------------------------------
# 至此,数据库配置完毕
1.6.在控制节点安装消息队列rabbitmq
消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。
队列的使用除去了接收和发送应用程序同时执行的要求。
RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。
1)安装rabbitmq-server
yum install rabbitmq-server -y
2)启动rabbitmq,并配置自启动
# 端口5672,15672,用于拍错
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service systemctl enable rabbitmq-server.service
systemctl list-unit-files |grep rabbitmq-server.service
3)创建消息队列中openstack账号及密码
# 添加openstack用户和密码,配置用户权限,配置读,写权限
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"
4)启用rabbitmq_management插件实现 web 管理
# 查看支持的插件
rabbitmq-plugins list
# 启用web管理插件,需要重启服务使之生效
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server.service
rabbitmq-plugins list
lsof -i:15672
5)浏览器访问RabbitMQ进行测试
访问地址:http://192.168.1.81:15672
# 默认用户名密码都是guest
# web界面可以管理创建用户,管理权限
# rabbitmq配置完毕
1.7.在控制节点上安装Memcached
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,推荐联合启用防火墙、认证和加密保证它的安全。
1)安装Memcached用于缓存令牌
yum install memcached python-memcached -y
2)修改memcached配置文件
vim /etc/sysconfig/memcached
----------------------------------
OPTIONS="-l 127.0.0.1,controller"
----------------------------------
# 如果没有启用IPv6地址需要删掉::1的地址绑定
3)启动memcached并设置开机自启动
systemctl start memcached.service
systemctl status memcached.service
netstat -anptl|grep memcached systemctl enable memcached.service
systemctl 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配置完毕
1.8.在控制节点上安装Etcd服务
# 这个Etcd服务是新加入的,用于自动化配置
1)安装etcd服务
yum install etcd -y
2)修改etcd配置文件
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替代,无法解析
3)启动etcd并设置开机自启动
systemctl start etcd.service
systemctl status etcd.service
netstat -anptl|grep etcd systemctl enable etcd.service
systemctl list-unit-files |grep etcd.service
# 至此,控制节点controller就完成基础环境的配置,下面可以开始安装 openstack 的组件
# 虚拟机的话配置完成可以关机做快照
======== 完毕,呵呵呵呵 ========
附:openstack计算节点的系统环境配制方法:https://www.cnblogs.com/tssc/p/9857647.html
CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备的更多相关文章
- CentOS7安装OpenStack(Rocky版)-09.安装Cinder存储服务组件(控制节点)
本文分享openstack的Cinder存储服务组件,cinder服务可以提供云磁盘(卷),类似阿里云云盘 ----------------------- 完美的分隔线 -------------- ...
- CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)
上一章介绍了独立的nova计算节点的安装方法,本章分享openstack的网络服务neutron的安装配制方法 ------------------- 完美的分割线 ----------------- ...
- CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)
本文分享openstack的认证服务组件keystone --------------- 完美的分割线 ---------------- 2.0.keystone认证服务 1)用户与认证:用户权限与用 ...
- CentOS7安装OpenStack(Rocky版)-07.安装horizon服务组件(控制节点dashboard)
在上一篇文章分享了neutron网络服务的安装配置,本文分享openstack的horizon(dashboard)web界面管理服务,方便在浏览器操作 ---------------------- ...
- CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)
上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...
- CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例
上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ---------------- 完美的分 ...
- CentOS7安装OpenStack(Rocky版)-08.启动一个虚拟机实例
安装完openstack的必要组件keystone,nova,glance,neutron以后就可以使用openstack命令创建一台云虚拟机了 ------------------- 完美的分割线 ...
- CentOS7安装OpenStack(Rocky版)-03.安装Glance镜像服务组件(控制节点)
上篇文章分享了keystone的安装配置,本文接着分享openstack的镜像服务glance. --------------- 完美的分割线 ---------------- 3.0.glance概 ...
- openstack grizzly版cloud控制节点安装
openstack-ubuntu-create 参考官方文档 三个节点:cloud :控制节点内网:10.10.10.10外网:172.16.56.252 network:网络节点内网:10.10.1 ...
随机推荐
- 【转】Java学习---Java中volatile关键字实现原理
[原文]https://www.toutiao.com/i6592879392400081412/ 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.c ...
- MySQL基础之 AND和OR运算符
AND和OR运算符 作用:用于基于一个以上的条件对记录进行过滤 用法:可在WHERE子句中把两个或多个条件结合在一起. AND:如果第一个条件和第二个条件都成立,才会显示一条记录 OR:如果第一个条件 ...
- 每年有20万人进军IT行业,为何还会人才短缺?
众所周知,IT行业是个高薪行业,也是很多人的梦想职业,在全球最缺人的十大行业中IT行业居首位. 但是现在很多人都有一个疑问: 几乎每所大学里都有计算机技术相关专业,再加上IT培训机构的输出,每年培养出 ...
- time模块案例演示
案例01: 2008年8月8日20:08:08 往后88,888,888秒是哪天?星期几? 日期->时间戳(浮点数)->可以做数学运算 演示: import time # 构造日期的元组, ...
- [转][solr] - 索引数据删除
删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) < ...
- java字符串面试题
public static void main(String[] args) { String s1 = "abcd"; String s2 = new String(" ...
- 2.3.3 Button(按钮)与ImageButton(图像按钮)
本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件, Button普通按钮 ImageButton图像按钮: 其实ImageButton和Button的用法基本类似,至于与图片相关的则 ...
- tomcat 启动,停止,查看端口,日志位置
1.启动之前先看看是否已经启动tomcat ,避免端口被占用 ps -ef|grep tomcat 2.启动:进入tomcat下的“bin”目录 输入命令:./startup.sh 3.查看tomca ...
- oracle 数据库 NLS_CHARACTERSET 字符集的修改
修改Oracle 数据库字符集总结:修改方式大约有3种:方法一: (最安全的方法)数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换.方法二: (最常用的方法)通过 &q ...
- WorldWind源码剖析系列:二维点类Point2d和三维点类Point3d
PluginSDK中的点主要有二维和三维两种类型,分别用来描述平面和立体点.其类图如下. 这两个类比较简单.其字段成员主要用来描述点对象在各坐标轴上的分量. 属性Length用来返回二维和三维点的距离 ...