View Code 配置/etc/hosts如下:
View Code
Network节点:三张网卡,配置eth0为管理网络,eth1为业务网络,eth2为外部网络,需特殊配置。
View Code 配置/etc/hosts如下:
View Code
Comput节点:两张网卡,配置eth0为管理网络,配置eth1为业务网络。
View Code 配置/etc/hosts如下:
View Code
3、确认网络已经配置好
Controller节点:
# ping -c 4 openstack.org【ping通外网】
# ping -c 4 network【ping通网络节点的管理网络】
# ping -c 4 compute1【ping通计算节点的管理网络】
Network节点:
# ping -c 4 openstack.org【ping通外网】
# ping -c 4 controller【ping 通控制节点的管理网络】
# ping -c 4 10.0.1.31【ping 通计算节点的tunnel网络】
Compute节点:
# ping -c 4 openstack.org【ping外网通】
# ping -c 4 controller【ping 控制节点的管理网络通】
# ping -c 4 10.0.1.21【ping 通网络节点的tunnel网络】
二、基础环境配置
1、设置全局环境变量
为了方便配置后续配置,先设置全局的环境变量。
controller节点设置:
View Code compute节点设置:
View Code
2、更新系统
在三个节点都要执行下面操作。
第一步、安装Ubuntu Cloud Archive
# apt-get install python-software-properties
# add-apt-repository cloud-archive:icehouse
Ubuntu Cloud Archive是一个特殊的库允许你安装Ubuntu支持的稳定的最新发布的OpenStack。
第二步、更新系统
# apt-get update
# apt-get dist-upgrade 【//lxy:需要十分钟,耐心等待】
第三步,安装Ubuntu 13.10 backported kernel
Ubuntu12.04需要安装这个Linux kernel来提升系统的稳定性。
# apt-get install linux-image-generic-lts-saucy
第四步,重启系统生效
# reboot
3、安装NTP(Network Time Protocal)
为做到每个节点的时间同步,需要在每个节点都安装ntp,然后修改配置,将/etc/ntp.conf添加controller为时间源。
在controller节点:
第一步、安装
# apt-get install ntp
第二步、配置/etc/ntp.conf
# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
将ntp.ubuntu.com作为时间源,此外添加一个本地时间源,以防网络时间服务中断,其中server 127.127.1.0表示本机是ntp服务器。
或者执行下面命令:
View Code 第三步,重启ntp服务。
#service ntp restart
在controller之外的节点,
第一步,安装
# apt-get install ntp
第二步,配置/etc/ntp.conf,将controller作为时间源。
# Use Ubuntu's ntp server as a fallback.
server controller
或者执行命令:
View Code 第三步:重启NTP服务。
4、安装数据库
每个节点都要安装python-mysqldb组件,用于数据库连接,只有主控需要安装mysqlserver。
controller节点:
第一步安装:
# apt-get install python-mysqldb mysql-server
Note:安装过程终端会提醒输入mysql root账户的密码,这里设置为password。
第二步,配置/etc/mysql/my.conf文件
将[mysqld]模块中bind-address设置为controller节点管理网络的ip,确保其他节点通过管理网络获取Mysql服务。也可以设置为0.0.0.0,就是将mysql服务绑定到所有网卡。
[mysqld]
...
bind-address = 10.1.101.11
在[mysqld]模块bind-address后面增加如下配置,来设置UTF-8字符集和InnoDB。
View Code 第三步,重启mysql服务使设置生效
# service mysql restart
第四步,删除匿名用户
数据库第一次启动时会创建一些匿名用户,必须将这些用户删除,否则后面数据库连接会出错。
# mysql_secure_installation
Note:
1、该命令提供一堆选择给你来改善mysql数据库的安全性,除了不要改密码,其他都选yes,除非有你自己的理由。
2、如果mysql_secure_installation命令失败则执行
# mysql_install_db
#
mysql_secure_installation
第五步,创建OpenStack中的Database,Users,Privileges
View Code 在controller之外的节点安装python-mysqldb
# apt-get install python-mysqldb
5、安装消息代理RabbitMQ
第一步,安装
# apt-get -y install rabbitmq-server
第二步,改密码
RabbitMQ默认创建一个用户,用户名密码都是guest,执行以下命令将guest用户的密码改为password
#rabbitmqctl change_password guest $RABBIT_PASSWORD
在用到RabbitMQ的openstack服务配置文件中都要修改rabbit_password。
三、安装OpenStack服务
1、安装keystone
在controller节点安装OpenStack认证服务.
第一步、安装keystone
# apt-get install keystone
第二步、配置/etc/keystone/keystone.conf
View Code 更新keystone.conf中MySQL连接
默认使用的是connection = sqlite:////var/lib/keystone/keystone.db,而不是mysql。
[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone
或者执行命令
View Code 第三步、删除keystone.db
默认情况,Ubuntu包创建了一个SQLite数据库。删除/var/lib/keystone/目录下的keystone.db文件确保后面不会出错。
# rm /var/lib/keystone/keystone.db
第四步、重启keystone并同步数据库
# service keystone restart
# keystone-manage db_sync
第五步、创建OpenStack中的
users, tenants, services
首先创建Keystone数据导入脚本Ksdata.sh ,内容如下:
View Code 运行脚本
#bash Ksdata.sh
第六步,创建endpoints
首先创建脚本Ksendpoints.sh
View Code 运行脚本
# bash Ksendpoints.sh
第七步,验证
现在keystone已经安装完成,验证身份认证服务安装是否正确。
# keystone user-list
# keystone user-role-list --user admin --tenant admin
2、安装OpenStack客户端
安装完后,可以通过命令来调用OpenStack各个服务的api。
View Code
3、安装Glance(镜像服务)
在controller节点安装image服务
第一步、安装glance。
# apt-get install glance
第二步、配置
因为glance包含两类服务所以修改配置文件/etc/glance/glance-api.conf和/etc/glance/glance-registry.conf
更新glance的认证配置。
默认:
[keystone_authtoken]
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
修改为:
[keystone_authtoken]
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = password
或者用下面命令:
View Code 修改两个文件中[database]模块数据库连接,
默认为:
#connection = <None>修改为:
connection = mysql://glance:password@controller/glance
或直接执行命令
View Code
在[DEFAULT]中增加以下配置
[DEFAULT]
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS
设置flavor为keystone
sed -i 's/#flavor=/flavor=keystone/g' /etc/glance/glance-api.conf /etc/glance/glance-registry.conf
第三步、删除glance.sqlite
# rm /var/lib/glance/glance.sqlite
第四步、检查配置
[keystone_authtoken]
#auth_host = 127.0.0.1
auth_uri = http://controller:5000
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = password