openstack setup demo Enviroment
Enviroment
本文包含以下部分。
- Host networking
- Network Time Protocol (NTP)
- OpenStack packages
- SQL database
- NoSQL database
- Message queue
- Memcached
Host Networking
首先,应该disable 自动化的网络管理工具如 Network Manager (无论是controller还是compute节点).
systemctl stop NetworkManager
systemctl disable NetworkManager
其次,关掉iptables 和 selinux, firewalld(无论是controller还是compute节点)
# disable selinux
setenforce 0
# edit the /etc/selinux/config set SELINUX=disabled
# turn off firewalld
systemctl disable firewalld
systemctl stop firewalld
# iptables 默认不安装,所以不用disable
接下来配置controller 节点 和 compute节点,我们的机器都有至少两块网卡,一块网卡配置外界可访问的IP,用作节点管理的用途,这个网络(叫做management network)将来也会用作openstack vm之间vxlan 访问的tunnel。 另一块网卡留在后面用。
本例中,我们的management network配置如下:
# controller node
10.79.148.84/24
# compute01
10.79.148.83/24
# compute02
10.79.148.86/24
# gateway
10.79.148.1
# DNS
64.104.123.245
另一块网卡的配置,统一如下(interface_name的名字根据实际情况填写):
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
配置完ip,gateway,DNS还要配置各个机器的hosts文件,保证各个机器之间能够互相访问,并且每个机器都能够访问互联网。
NTP
如果你的机器不能方便访问外网NTP。那么你可以安装Chrony。这是一个用于实现NTP的软件。如果能够访问外网NTP,那么直接指定一个crontab 去定时跟NTP同步即可。如:
yum install ntpdate
# 编辑crontabe
openstack package
在centos上安装openstack mikita的源
yum install centos-release-openstack-mitaka
然后运行
yum upgrade
安装openstack client
yum install python-openstackclient
SQL database
安装mysql。当然你也可以用其它的sql 数据库。数据库安装的位置不重要,只要需要使用它的服务能够访问到即可,我们这里把数据库安装到controller节点。
yum install mariadb mariadb-server python2-PyMySQL
编辑 /etc/my.cnf.d/openstack.cnf的[mysqld]设置数据库监听地址
bind-address = 10.79.148.84
编辑 /etc/my.cnf.d/openstack.cnf的[mysqld]设置字符集等配置
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
character-set-server = utf8
启动并设置mysql开机启动
systemctl start mariadb.service
systemctl enable mariadb.service
运行 mysql_secure_installation 做安全配置
NoSQL database
Telemetry service 使用nosql。我们推荐用mongodb。这里不做介绍,因为我们不打算在本文中使用Telemetry service。
Message queue
openstack使用message queue在各服务间通信。我们这里使用rabbit mq. 并且我们把rabbit mq安装到controller上。但是和sql数据库一样,你可以安装在任何地方,只要相关的服务能够访问它即可。步骤如下:
安装
yum install rabbitmq-server
启动,并设置开机启动
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
创建用户并赋予密码
rabbitmqctl add_user openstack RABBIT_PASS
给openstack用户设置权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Memcache
keystone 服务使用了memcache来缓存token。所以我们这里还要安装memcache。同样,我们把他安装在controller节点,但其实任意位置都可以。
yum install memcached python-memcached
启动并设置开机启动
systemctl enable memcached.service
systemctl start memcached.service