架构介绍
本次案列为基本的三节点部署
一:网络:
1.管理网络:192.168.198.0/24
2.数据网络:10.0.0.0/24
二:操作系统:
CentOS Linux release 7.3.1611 (Core)
三:内核:
3.10.0-514.el7.x86_64
四:版本
openstack版本otaka
五:存储节点暂时不加入,后续完成再更新博客
依赖软件安装
1. 配置host解析,关闭防火墙、SELinux
在所有节点上均修改
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.198.128 controller01 192.168.198.129 compute01 192.168.198.130 network01
在所有节点上运行
systemctl stop firewalld systemctl disable firewalld setenforce 0 vim vim /etc/sysconfig/selinux SELINUX=disabled
2. 下载安装官网获取软件包源
在所有centos系统节点上执行:
1 yum install -y centos-release-openstack-ocata.noarch
3. 制作yum缓存并更新系统
在所有节点上运行
1 yum makecache && yum install vim net-tools -y&& yum update -y
yum -y update
升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade
升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
4. 关闭yum自动更新(版本控制)
在所有节点执行,CentOS7最小化安装后默认yum会自动下载更新,这对许多生产系统是不需要的,可以手动关闭它
cd /etc/yum ls fssnap.d pluginconf.d protected.d vars version-groups.conf yum-cron.conf yum-cron-hourly.conf vim yum-cron.conf 将download_updates = yes改为no即可
5. 预装包
在所有节点上运行
1 yum install python-openstackclient -y 2 yum install openstack-selinux -y
6. 统一时间服务部署
在所有节点执行
1 yum install chrony -y
在控制节点执行
vim /etc/chrony.conf # 国家授时中心服务器IP地址 server 210.72.145.44 iburst allow 192.168.198.0/24 systemctl enable chronyd.service systemctl restart chronyd.service
在其余节点执行
vim /etc/chrony.conf server 192.168.198.128 iburst systemctl enable chronyd.service systemctl start chronyd.service
时区不是Asia/Shanghai需要改时区:
# 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 timedatectl set-local-rtc 1 # 设置系统时区为上海 timedatectl set-timezone Asia/Shanghai 其实不考虑各个发行版的差异化, 从更底层出发的话, 修改时间时区比想象中要简单: # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
验证
每台机器执行:
chronyc sources
在S那一列包含*号,代表同步成功(可能需要花费几分钟去同步,时间务必同步)
7. 部署mariadb数据库
在控制节点执行
yum install mariadb mariadb-server python2-PyMySQL -y vim /etc/my.cnf.d/openstack.cnf [mysqld] bind-address = 控制节点管理网络ip default-storage-engine = innodb innodb_file_per_table max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 systemctl enable mariadb.service systemctl start mariadb.service mysql_secure_installation
8. 为Telemetry服务部署MongoDB
在控制节点执行
yum install mongodb-server mongodb -y vim /etc/mongod.conf # 控制节点管理网络ip bind_ip = 192.168.198.128 smallfiles = true systemctl enable mongod.service systemctl start mongod.service
9. 部署消息队列rabbitmq
在控制节点执行
yum install rabbitmq-server -y systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service # 新建rabbitmq用户密码: rabbitmqctl add_user openstack 123456 # 为新建的用户openstack设定权限: rabbitmqctl set_permissions openstack ".*" ".*" ".*" # 验证方式:http://192.168.198.128:15672/ 用户:guest 密码:guest
10. 部署memcached缓存
为keystone服务缓存tokens
在控制节点执行
1 yum install memcached python-memcached -y 2 systemctl enable memcached.service 3 systemctl start memcached.service
参考博客 http://blog.51cto.com/egon09/1839667