利用Devstack 可以安装快速openstack,但为了更好的理清openstack,本文使用手动安装。
参考
安装版本为Queue 版本,最小的openstack需安装以下组件:
- Identity service – keystone installation for Queens
- Image service – glance installation for Queens
- Compute service – nova installation for Queens
- Networking service – neutron installation for Queens
建议安装的软件包为:
- Dashboard – horizon installation for Queens
- Block Storage service – cinder installation for Queens
安装环境
设置主机名及IP
- 编辑 /etc/hosts
IP controller
即 "IP地址,域名,主机名"
其中域名可以省略,不要删除127.0.0.1项。
192.168.125.115 controller
网络时间同步协议(NTP)
- 安装包
yum install chrony
- 编辑chrony.conf文件
在/etc/chrony.conf文件中写入以下内容
server NTP_SERVER iburst
NTP_SERVER 为主机名或IP地址
server 192.168.125.115 iburst
- 保证其他服务节点可以访问控制节点的chrony daemon,需要在同一个chrony.conf文件中写入以下内容
allow 10.0.0.0/24
将10.0.0.0/24 替换为相对的子网
allow 192.168.125.0/24
4.重启NT服务
systemctl enable chronyd.service
systemctl start chronyd.service
SQL 数据库
大多数OpenStack服务使用SQL数据库来存储信息。数据库通常在controller节点上运行。本指南中的过程根据发行版使用MariaDB或MySQL。
- 安装相应软件包
yum install mariadb mariadb-server python2-PyMySQL
- 创建并修改/etc/my.cnf.d/openstack.cnf文件,并新增[mysql]字段,并将bind-address设置为管理节点地址,并将编码方式设置未utf8,修改内容如下
[mysqld]
# 监听地址,0.0.0.0设置为全部可以监听
# 可以设置未controller的IP地址
bind-address = 0.0.0.0
# 默认存储引擎innodb
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脚本设置安全属性,并为root帐号设置合适密码
mysql_secure_installation
安装openstack相关包
- 安装包
yum install centos-release-openstack-queens
- 更新软件包
yum upgrade
- 安装OpenStack client
yum install python-openstackclient
- RHEL and CentOS 默认启动了 SELinux 安装openstack-selinux为openstack服务器自动管理安全策略
yum install openstack-selinux
消息队列RabbitMQ
OpenStack使用消息队列来协调服务之间的操作和状态信息。
消息队列服务通常在控制器节点上运行。OpenStack支持多个消息队列服务,包括RabbitMQ、Qpid和ZeroMQ。但是,大多数penStack的发行版都支持特定的消息队列服务。因为大多数发行版均支持RabbitMQ消息队列服务,故安装RabbitMQ消息队列
- 安装包
yum install rabbitmq-server
- 启动消息队列并设置为开机启动
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
- 添加openstack用户
rabbitmqctl add_user openstack RABBIT_PASS
RABBIT_PASS 替换为合适的密码
- 许可设定,未openstack用户添加读写权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
安装Memcached
服务的身份服务身份验证机制使用Memcached缓存令牌。memcached服务通常在控制器节点上运行。
- 安装相应软件包
yum install memcached python-memcached
- 编写文件/etc/sysconfig/memcached
确定服务使用的是controller节点的management IP地址,以使其他节点可以通过management网络访问控制节点
OPTIONS="-l 127.0.0.1,::1,controller"
更改之前的OPTIONS="-l 127.0.0.1,::1".
- 开启Memcached服务并设为开机启动
systemctl enable memcached.service
systemctl start memcached.service
Etcd
OpenStack服务可以使用Etcd,这是一种分布式可靠的键值存储,用于分布式键锁定、存储配置、跟踪服务实时性和其他场景。
- 安装相应软件包
yum install etcd
- 编写/etc/etcd/etcd.conf 文件并设置以下字段 ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS, ETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS.使其他节点可以连接值管理网络
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.125.115:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.125.115:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.125.115:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.125.115:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.125.115:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
其中10.0.0.11为控制节点的网络,需改成自己的IP地址
- 启动服务
systemctl enable etcd
systemctl start etcd