参考
Centos7.1搭建openstack私有云
云计算Openstack-Liberty版-安装教程 -学习笔记
在 CentOS7.2 上安装 OpenStack Liberty 版
openstack pike 集群高可用 安装 部署 目录汇总
CentOS7.2非HA分布式部署Openstack Pike版
一、环境准备
规划
1、物理机主机名和网络地址
master 192.168.100.98
node1 192.168.100.99
node2 192.168.100.100
2、openstatck 内部管理网段
网段:10.1.1.0/24
master 10.1.1.98
node1 10.1.1.99
node2 10.1.1.100
3、虚机使用网段
网段:10.2.2.0/24
master 10.2.2.98
node1 10.2.2.99
node2 10.2.2.100
1、主机名和网络配置
在服务器上执行(两端)
echo "192.168.100.98 master" >> /etc/hosts
echo "192.168.100.99 node1" >> /etc/hosts
echo "192.168.100.100 controller" >> /etc/hosts
echo "10.1.1.98 master" >> /etc/hosts
echo "10.1.1.99 node1" >> /etc/hosts
echo "10.1.1.100 node2" >> /etc/hosts
hostnamectl set-hostname master ###在master上,要不然keystone会出错
hostnamectl set-hostname node1 ###在node1
hostnamectl set-hostname node2 ###在node2
关闭防火墙和SELinux(两端)
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
vi /etc/sysconfig/selinux
把里边的一行改为
SELINUX=disabled
todo:yum -y install openstack-selinux
安装openstack-selinux包自动管理openstack组件的安全策略
2、时间同步
yum install -y chrony
vi /etc/chrony.conf
#添加如下行(master)
allow 192.168.100.0/27
#添加如下行(node)
server master iburst
#然后重启服务
systemctl enable chronyd.service
systemctl restart chronyd.service
#校验
chronyc sources //会显示master
二、安装数据库
1、安装mariadb
大多数的openstack服务都是采用SQL数据库来存储数据,支持mysql和PostgreSQL,通常的做法是安装在 master节点。
yum install mariadb mariadb-server MySQL-python
vim /etc/my.cnf.d/mariadb-server.cnf
#在[mysqld]添加以下行
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
max_connections=1000 #要不然各组件连接数太多,会报错
这是由于mariadb有默认打开文件数限制。可以通过配置
vim /usr/lib/systemd/system/mariadb.service来调大打开文件数目。
[Service]新添加两行如下参数:
LimitNOFILE=10000
LimitNPROC=10000
重新加载系统服务,并重启mariadb服务
- systemctl --system daemon-reload
- systemctl restart mariadb.service
再次查看mariadb数据库最大连接数,可以看到最大连接数已经是1000 - MariaDB [(none)]> show variables like 'max_connections';
#启动服务
systemctl enable mariadb.service
systemctl start mariadb.service
2、设置root密码 (我的密码为root123456)
mysql_secure_installation
3、为openstack组件创建数据库个表
mysql -uroot -p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'glance';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'glance';
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'nova';
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'neutron';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY 'neutron';
show databases; #查看数据库创建情况
三、消息队列
OpenStack 使用消息队列来协调操作和状态信息,通常的做法是安装在 controller 节点上,OpenStack支持的消息队列服务含 RabbitMQ, Qpid 和 ZeroMQ,然而大多数 OpenStack 服务模块都只支持某种特定的消息队列服务,这里选择 RabbitMQ,因为所有的 openstack 模块都支持它。
yum install rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack openstack #创建用户
rabbitmqctl set_permissions openstack ".*" ".*" ".*" #授权用户
rabbitmq-plugins enable rabbitmq_management #开启web管理
systemctl restart rabbitmq-server
http://192.168.100.98:15672/ #web访问地址(用户密码都是guest)
修改openstack用户,删除guest用户
Admin------->复制administrator------->点击openstack------>Update this user-------->
Tags:粘帖administrator--------->密码都设置为openstack-------->logout
然后在登陆:用户名 openstack 密码 openstack