参考文献:
官方文档 http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/index.html
最小实例:
- 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
- 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储
- 安全
通过运行下面的命令:
openssl rand -hex 10
密码及对应关系:
密码名称 |
描述 |
---|---|
SERVICE_PASS |
服务帐号密码 |
SERVICE_DBPASS |
数据库密码 |
数据库密码(不能使用变量) |
数据库的root密码 |
ADMIN_PASS |
admin 用户密码 |
CEILOMETER_DBPASS |
Telemetry 服务的数据库密码 |
CEILOMETER_PASS |
Telemetry 服务的 ceilometer 用户密码 |
CINDER_DBPASS |
块设备存储服务的数据库密码 |
CINDER_PASS |
块设备存储服务的 cinder 密码 |
DASH_DBPASS | Database password for the dashboard |
DEMO_PASS |
demo 用户的密码 |
GLANCE_DBPASS |
镜像服务的数据库密码 |
GLANCE_PASS |
镜像服务的 glance 用户密码 |
HEAT_DBPASS |
Orchestration服务的数据库密码 |
HEAT_DOMAIN_PASS |
Orchestration 域的密码 |
HEAT_PASS |
Orchestration 服务中``heat``用户的密码 |
KEYSTONE_DBPASS |
认证服务的数据库密码 |
NEUTRON_DBPASS |
网络服务的数据库密码 |
NEUTRON_PASS |
网络服务的 neutron 用户密码 |
NOVA_DBPASS |
计算服务的数据库密码 |
NOVA_PASS |
计算服务中``nova``用户的密码 |
RABBIT_PASS |
RabbitMQ的guest用户密码 |
SWIFT_PASS |
对象存储服务用户``swift``的密码 |
- 主机网络
示例架构假设使用如下网络:
管理使用 10.0.0.0/24 带有网关 10.0.0.1
这个网络需要一个网关以为所有节点提供内部的管理目的的访问,例如包的安装、安全更新、 DNS,和 NTP。
提供者网段 203.0.113.0/24,网关203.0.113.1
这个网络需要一个网关来提供在环境中内部实例的访问。
控制节点服务器
配置网络接口
-
将第一个接口配置为管理网络接口:
IP 地址: 10.0.0.11
子网掩码: 255.255.255.0 (or /24)
默认网关: 10.0.0.1
-
提供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络:
将其中的 INTERFACE_NAME替换为实际的接口名称。例如,eth1 或者*ens224*。
-
编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
不要改变 键``HWADDR`` 和 UUID 。
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
-
重启系统以激活修改。
配置域名解析
设置节点主机名为 controller。
编辑 /etc/hosts 文件包含以下内容:
# controller
10.0.0.11 controller # compute1
10.0.0.31 compute1 # block1
10.0.0.41 block1 # object1
10.0.0.51 object1 # object2
10.0.0.52 object2
计算节点
配置网络接口¶
-
将第一个接口配置为管理网络接口:
IP 地址:10.0.0.31
子网掩码: 255.255.255.0 (or /24)
默认网关: 10.0.0.1
注解另外的计算节点应使用 10.0.0.32、10.0.0.33 等等。
-
提供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络:
将其中的 INTERFACE_NAME替换为实际的接口名称。例如,eth1 或者*ens224*。
-
编辑``/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME``文件包含以下内容:
不要改变 键``HWADDR`` 和 UUID 。
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
-
重启系统以激活修改。
配置域名解析¶
设置节点主机名为``compute1``。
编辑 /etc/hosts 文件包含以下内容:
# controller
10.0.0.11 controller # compute1
10.0.0.31 compute1 # block1
10.0.0.41 block1 # object1
10.0.0.51 object1 # object2
10.0.0.52 object2
- 时间同步
控制节点服务器
在控制节点上执行这些步骤。
安全并配置组件
-
安装软件包:
# yum install chrony
-
编辑 /etc/chrony.conf 文件,按照你环境的要求,对下面的键进行添加,修改或者删除:
server NTP_SERVER iburst
使用NTP服务器的主机名或者IP地址替换 NTP_SERVER 。配置支持设置多个 server 值。
注解控制节点默认跟公共服务器池同步时间。但是你也可以选择性配置其他服务器,比如你组织中提供的服务器。
-
为了允许其他节点可以连接到控制节点的 chrony 后台进程,在``/etc/chrony.conf`` 文件添加下面的键:
allow 10.0.0.0/24
如有必要,将 10.0.0.0/24 替换成你子网的相应描述。
-
启动 NTP 服务并将其配置为随系统启动:
# systemctl enable chronyd.service
# systemctl start chronyd.service
其他节点服务器
安全并配置组件
-
安装软件包:
# yum install chrony
-
编辑``/etc/chrony.conf`` 文件并注释除``server`` 值外的所有内容。修改它引用控制节点:
server controller iburst
-
启动 NTP 服务并将其配置为随系统启动:
# systemctl enable chronyd.service
# systemctl start chronyd.service
验证
我们建议您在继续进一步的操作之前验证 NTP 的同步。有些节点,特别是哪些引用了控制节点的,需要花费一些时间去同步。
-
在控制节点上执行这个命令:
# chronyc sources
210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.11 2 7 12 137 -2814us[-3000us] +/- 43ms
^* 192.0.2.12 2 6 177 46 +17us[ -23us] +/- 68ms在 Name/IP address 列的内容应显示NTP服务器的主机名或者IP地址。在 S 列的内容应该在NTP服务目前同步的上游服务器前显示*。
-
在所有其他节点执行相同命令:
# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller 3 9 377 421 +15us[ -87us] +/- 15ms在 Name/IP address 列的内容应显示控制节点的主机名。
安装openstack仓库:
注:不能同时存在 epel仓库,会改变依赖的环境
centos:
yum install centos-release-openstack-mitaka
redhat:
yum install https://rdoproject.org/repos/rdo-release.rpm
完成安装:
升级包:
yum upgrade
安装openstack客户的:
yum install python-openstackclient
关闭selinux:
yum install openstack-selinux
安装mysql,及python-mysql
安装mongodb
安装rabbitmq并做以下操作:
添加openstack用户:
rabbitmqctl add_user openstack RABBIT_PASS
给openstack用户配置写和读权限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
安装memcached和python-memcache