openstack配置
一、硬件及操作系统要求
硬件:IBM服务器R410 两台、网线、显示器、键盘若干,100M光纤(硬性要求)
操作系统:两台服务器均安装Ubuntu server 12.04 LTS
二、安装步骤(server-1与server-2公共部分)
1. 安装操作系统:
第一台主机名server-1;用户名openstack;密码admin
第二胎主机名server-2;用户名openstack;密码admin
注意事项:
使用光盘安装操作系统,如采用u盘安装的方式,会出现“找不到光驱”的错误
应尽量选择使用光盘安装的方式;
两台服务器安装的语言,最好选择英文版本,否则在查看系统版本的时候可能会有差别导致下载组件时候出现错误,中文版本总是更新不到最新的组件;
两台服务器应选择相同的时区。
2. 配置网络:
server-1,server-2命令行输入如下命令
sudo vi /etc/network/interfaces
按i进入编辑模式
输入以下内容(server-1):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 218.206.179.205
netmask 255.255.255.0
broadcast 218.206.179.255
gateway 218.206.179.1
dns-nameservers 218.206.176.4
auto eth1
iface eth1 inet static
address 10.204.252.168
netmask 255.255.255.0
network
broadcast
gateway 10.204.252.1
输入以下内容(server-2):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 218.206.179.236
netmask 255.255.255.0
broadcast 218.206.179.255
gateway 218.206.179.1
dns-nameservers 218.206.176.4
auto eth1
iface eth1 inet static
address 10.204.252.138
netmask 255.255.255.0
network
broadcast
gateway 10.204.252.1
完成以上两台服务器网络配置之后,按esc,输入: “:x”
重启网络,命令行输入如下命令:
sudo /etc/init.d/networking restart(restart前面有空格)
重启网络后,ping一下外网(如qq)测试网络是否连通
3. 更新
在server-1与server-2的命令行中输入如下命令:
sudo apt-get update(软件列表及依赖更新)
sudo apt-get upgrade(当前列表下软件版本更新)
4. 安装NTP时间同步服务器
在server-1与server-2的命令行中输入如下命令:
sudo apt-get install ntp
用vi打开server-1文件/etc/ntp.conf增加以下三行内容,目的是让本服务器时间与外部服务器时间同步
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
用vi打开server-2文件/etc/ntp.conf 增加一行内容,目的是与server-1同步
server 218.206.179.205(可能有bug)
完成后重启NTP服务,server-1,server-2命令行输入
sudo server ntp restart
5. 安装bridge
server-1,server-2命令行输入
sudo apt-get -y install bridge-utils
然后重启网络
/etc/init.d/networking restart(restart前有空格)
三、server-1安装
1.安装RabbitMQ和Memcache 等
RabbitMQ是用来做调度使用。Memcache是给Dashboard使用。
命令行输入
sudo apt-get install -y rabbitmq-server memcached python-memcache kvm libvirt-bin
2.安装MySQL数据库,为了方便起见,使用的MySQL数据库
命令行输入
sudo apt-get install mysql-server python-mysqldb
编辑/etc/mysql/my.cnf, 允许网络访问mysql
#bind-address = 127.0.0.1
bind-address = 0.0.0.0(可能有bug)
然后重启mysql服务
restart mysql
mysql 根用户名root 密码 admin
为mysql创建root密码,在此使用“admin”。随后编辑mysql配置文件
/etc/mysql/my.cnf,将绑定地址从127.0.0.1改为0.0.0.0,如下所示:
bind-address = 0.0.0.0
重启MySQL服务器让其开始监听所有端口:
sudo restart mysql
然后按顺序依次输入以下命令:
mysql -uroot -p123456
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456';
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'IDENTIFIED BY '123456';
quit
注意:以上分号不要省略
doc版本有个user的创建,步骤未执行
3. 安装keystone
命令行输入:
sudo apt-get install keystone python-keystone python-keystoneclient
用vi编辑器编辑/etc/keystone/keystone.conf文件如下:
[DEFAULT]
#bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token = admin
[sql]
#connection = sqlite:var/lib/keystone/keystone.db
connection = mysql://keystone:123456@218.206.179.205/keystone (这儿改成server-1的ip)
然后重启服务、同步数据库,命令行输入:
sudo service keystone restart
sudo keystone-manage db_sync
导入数据和endpoint
为了方便,你可以直接使用下面2个脚本来进行全部的设置
1.keystone_data.sh 导入用户信息-创建租户用户和角色
Keystone Data
wget http://www.chenshake.com/wp-content/uploads/2012/07/keystone_data.sh_.txt
mv keystone_data.sh_.txt keystone_data.sh
chmod +x keystone_data.sh
然后编辑keystone_data.sh
第一行是登陆dashboard的密码。
第三行是上面设置的Keystone的Token
注意 :sh文件对应的位置改成如下加黑的部分。
ADMIN_PASSWORD=${ADMIN_PASSWORD:-123456}
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
export SERVICE_TOKEN="admin"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
ENABLED_SERVICES="swift"
然后运行脚本
./keystone_data.sh
没任何输出,就表示正确,可以通过下面命令检查
echo $?
显示0,就表示脚本正确运行,千万不要重复运行脚本
2.endpoints.sh 设置endpoint--提供服务的入口点
命令行输入如下
wget http://www.chenshake.com/wp-content/uploads/2012/07/endpoints.sh_.txt
mv endpoints.sh_.txt endpoints.sh
chmod +x endpoints.sh
再输入:
./endpoints.sh -m 218.206.179.205 -u keystone -D keystone -p 123456 -T admin -K 218.206.179.205 -R RegionOne -E "http://localhost:35357/v2.0" -S 218.206.179.205
以上缩写分别代表如下信息
-m mysql_hostname
-u mysql_username
-D mysql_database
-p mysql_password
-K keystone 服务器IP
-R keystone_region
-E keystone_endpoint_url
-S swift proxy节点IP
-T keystone_token
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://localhost:5000/v2.0/
然后检查环境变量,在命令行输入:
export | grep OS_
会显示:
declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
declare -x OS_PASSWORD="123456"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"
报错:修改keystone_data.sh的时候,不影响使用
查看各种列表:
keystone endpoint-list
keystone tenant-list
keystone user-list
keystone role-list
4.安装glance
命令行输入:
sudo apt-get install glance glance-api glance-client glance-common glance-registry python-glance
编辑 /etc/glance/glance-api-paste.ini,/etc/glance/glance-registry-paste.ini,两个文件,都是修改文档最后3行,改成如下的内容
#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
admin_tenant_name = service
admin_user = glance
admin_password = 123456
#dashboard password
编辑/etc/glance/glance-registry.conf,改成使用mysql验证
#sql_connection = sqlite:var/lib/glance/glance.sqlite
sql_connection = mysql://glance:123456@122.204.144.201/glance
编辑/etc/glance/glance-registry.conf 和 /etc/glance/glance-api.conf ,都在文件末尾添加两行,目的是让glance使用keystone授权
[paste_deploy]
flavor = keystone
然后同步数据库
sudo glance-manage version_control 0
sudo glance-manage db_sync
注意:如果有输出的话多打几遍命令
上述改动全部完成后,重启glance-api和glance-registry服务:
sudo restart glance-api
sudo restart glance-registry
设置如下环境变量,将其写入 ~/.bashrc中:
export SERVICE_TOKEN=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export SERVICE_ENDPOINT=http://localhost:35357/v2.0
然后测试一下,命令行输入如下命令,没有输出,表示正常,因为目前还没有镜像。
glance index
5. 安装nova
命令行输入:下面的命令需要一起复制,是一条命令
apt-get install nova-api nova-cert nova-compute nova-compute-kvm nova-doc
nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server novnc nova-consoleauth
编辑/etc/nova/nova.conf 文件,改成如下内容,ip根据自己的主机修改成如下格式
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/run/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=218.206.179.205
--ec2_host=218.206.179.205
--rabbit_host=218.206.179.205
--cc_host=218.206.179.205
--nova_url=http://218.206.179.205:8774/v1.1/
--routing_source_ip=218.206.179.205
--glance_api_servers=218.206.179.205:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=10.204.252
--sql_connection=mysql://nova:123456@218.206.179.205/nova
--ec2_url=http://218.206.179.205:8773/services/Cloud
--keystone_ec2_url=http://218.206.179.205:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# vnc specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://218.206.179.205:6080/vnc_auto.html
--vncserver_proxyclient_address=218.206.179.205
--vncserver_listen=218.206.179.205
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=10.204.252.158/25
--floating_range=218.206.179.205/25
--network_size=32
--flat_network_dhcp_start=10.204.252.198
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
创建一个物理卷
sudo pvcreate /dev/sda3(此卷是本次安装中出现的,具体情况按安装的时候来)
然后输入:
sudo vgcreate nova-volumes /dev/sda3
修改 /etc/nova文件夹的属主及 /etc/nova/nova.conf文件的访问权限:
sudo chown -R nova:nova /etc/nova
sudo chmod 644 /etc/nova/nova.conf
进入 /etc/nova/api-paste.ini文件,找到末尾三行:
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
用之前创建的名字进行替换编辑完毕如下所示:
admin_tenant_name = service
admin_user = nova
admin_password = nova
在MySQL数据库进行同步:
sudo nova-manage db sync
为实例提供IP池:
sudo nova-manage network create private --fixed_range_v4=10.204.252.158/25--num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=128
输出环境变量:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://localhost:5000/v2.0/"
重启服务,命令行一次输入以下命令
sudo restart libvirt-bin
sudo restart nova-network
sudo restart nova-compute
sudo restart nova-api
sudo restart nova-objectstore
sudo restart nova-scheduler
sudo restart nova-volume
sudo restart nova-consoleauth
测试nova是否正确安装,若所有组件都是微笑,说明nova已经正确安装完毕。
sudo nova-manage service list
6. OpenStack管理面板
执行下列命令安装管理面板:
sudo apt-get install openstack-dashboard
重启Apache:
sudo service apache2 restart
live cd启动系统,进入图形化安装界面,选择试用ubuntu,进入桌面打开ubuntu自带分区软件,将原来的大分区分割成两个小的分区,下一步要将分出来的新分区格式化为LVM(8e)格式的分区,打开终端,输入 :sudo fdisk -l,根据刚才分给的大小判断新分区的磁盘号,再输入sudo fdisk /dev/sd*(星号具体根据前一条命令中来定),然后在fdisk命令下输入t,选择刚创建好的分区,输入8e,将刚创建好的2个分区转换为8e格式。输入w保存退出,之后运行一下partprobe 命令激活刚创建的分区
sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart nova-consoleauth; 如果不行 restart换成start
apache2 restart失败
编辑 /etc/apache2/apache2.conf
最后一行输入 ServerName 127.0.7.1(不一定有用)