资源描述
下面就是主要的搭建过程:
第一步:准备系统
1.首先先把你的系统升级到最新版,所有的软件包包括内核都升级一下,免得后面安装软件包的时候出现什么不依赖的情况
sudo apt-get update
sudo apt-get upgrade
还有就是下面所有的操作最好都切换到root用户,
sudo passwd
sudo -
2.设置网络
我的虚拟机的ip是222.24.24.174,大家最好按照我的设置做,等搭建成功之后在做修改
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 222.24.24.174
netmask 255.255.255.0
broadcast 222.24.24.255
gateway 222.24.24.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 202.117.128.2
auto eth1
iface eth1 inet static
address 192.168.22.1
network 192.168.22.0
netmask 255.255.255.0
broadcast 192.168.22.255
3.重启下网络,让修改生效
/etc/init.d/networking restart
4.安装bridge
apt-get install bridge-utils
重启网络或者重启一下机器都可以
/etc/init.d/networking restart
5.设置NTP
apt-get install ntp
编辑 /etc/ntp.conf 在末尾添加下面3行
server iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10
重启服务
sudo /etc/init.d/ntp restart
6.设置Iscsi
apt-get install tgt
重启服务
service tgt start
安装iscsi客户端
apt-get install open-iscsi open-iscsi-utils
8:安装rabbitmq
apt-get install rabbitmq-server memcached python-memcache
apt-get install kvm libvirt-bin
第二步:安装mysql,创建相关数据库
Openstack的组件:nova,keystone,glance,都需要数据库。不过目前官方建议keystone,采用sqlite存储,而不用mysql存放。所以我们只需要创建nova和glance两个数据库就可以
1:安装mysql
过程中,会提示你输入root密码。
apt-get install -y mysql-server python-mysqldb
让mysql支持外部访问
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/f
重启服务
service mysql restart
2:安装phpmyadmin (可选)
为了方便,可以把phpmyadmin装上,可以比较方便管理数据库
apt-get install phpmyadmin
安装的时候,第一个提示是让你输入root的密码。
3:创建数据库
nova数据库, 管理员:novadbadmin,密码是:dieD9Mie
glance数据库,管理员:glancedbadmin,密码是:ohC3teiv
如果你修改密码,后面很多配置都需要相应更改。
mysql -uroot -p
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%' IDENTIFIED BY 'dieD9Mie';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%' IDENTIFIED BY 'ohC3teiv';
quit
三:安装和配置keystone
Openstack的各个组件,keystone是最难配置。搞定keystone,后面应该就没啥麻烦。
1:安装keystone
apt-get install keystone python-keystone python-keystoneclient
2:配置keystone
需要修改 /etc/keystone/keystone.conf 两个地方
默认定义的token就是ADMIN,我使用hastexo作为token
[DEFAULT]
bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token =hastexo
另外一个地方是
[catalog]
#driver = keystone.catalog.backends.sql.Catalog
driver = keystone.catalog.backends.templated.TemplatedCatalog
template_file = /etc/keystone/default_catalog.templates
重启服务
service keystone restart
3: 导入数据
这个是通过修改devstack的keystone_data.sh 脚本。实现导入数据。如果你上面的设置都和我一样,那直接运行这个脚本就可以。
下载脚本
wget
mv keystone_data.sh_.txt keystone_data.sh
让脚本可运行
chmod +x keystone_data.sh
运行脚本, 如果你修改的默认的用户名和密码,你需要修改脚本。修改两个地方
第一个是登录dashboard的admin的密码
第二个就是keystone的token
#ADMIN_PASSWORD=${ADMIN_PASSWORD:-hastexo}
ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
#export SERVICE_TOKEN="hastexo"
export SERVICE_TOKEN="Centrin"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
然后运行这个脚本
./keystone_data.sh
顺利运行,会什么都没有输出
root@openstack:~# echo $?
0
root@openstack:~# keystone --tenant=admin --username=admin --password=hastexo --auth_url=http://127.0.0.1:5000/v2.0 user-list
+----------------------------------+---------+--------------------+--------+
| id | enabled | email | name |
+----------------------------------+---------+--------------------+--------+
| a8fa3a4e842946f18f40f1132754e262 | True | admin@ | admin |
| b86ba4884b7c405e98529f94dc6f44f4 | True | demo@ | demo |
| e36322db7bdb46c0877cf6753bd23ebf | True | nova@ | nova |
| fcddaebccdfa47e2aa0cfed3ab516de8 | True | glance@ | glance |
+----------------------------------+---------+--------------------+--------+
看到这些,就说明keystone安装正常。
接下来就是添加环境变量
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=hastexo
export OS_AUTH_URL="http://localhost:5000/v2.0/"
然后运行
root@openstack:~# keystone user-list
+----------------------------------+---------+--------------------+--------+
| id | enabled | email | name |
+----------------------------------+---------+--------------------+--------+
| a8fa3a4e842946f18f40f1132754e262 | True | admin@ | admin |
| b86ba4884b7c405e98529f94dc6f44f4 | True | demo@ | demo |
| e36322db7bdb46c0877cf6753bd23ebf | True | nova@ | nova |
| fcddaebccdfa47e2aa0cfed3ab516de8 | True | glance@ | glance |
+----------------------------------+---------+--------------------+--------+
四:安装和配置glance
1:安装软件
apt-get install glance glance-api glance-client glance-common glance-registry python-glance
2:配置/etc/glance/glance-api-paste.ini
修改文件最后3行,这些设置都是keystone导入数据的时候设置的。
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
改成
admin_tenant_name =admin
admin_user =admin
admin_password =hastexo
3:设置 /etc/glance/glance-registry-paste.ini
也是修改文件最后3行,和上面是一样的。
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
改成
admin_tenant_name =admin
admin_user =admin
admin_password =hastexo
4:配置/etc/glance/glance-registry.conf
修改
#sql_connection = sqlite:////var/lib/glance/glance.sqlite
sql_connection = mysql://glancedbadmin:ohC3teiv@222.24.24.174/glance
在末尾添加两行
[paste_deploy]
flavor = keystone
5:配置/etc/glance/glance-api.conf
在末尾添加两行
[paste_deploy]
flavor = keystone
6:同步数据库
目前glance 需要手工同步数据库。你装一个phpmyadmin,先确认glance数据库没任何内容。
glance-manage version_control 0
glance-manage db_sync
成功之后会输出:
/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/versions/003_add_disk_format.py:47:
SADeprecationWarning: useexisting is deprecated. Use extend_existing.
useexisting=True)
重启服务
service glance-api restart && service glance-registry restart
7:验证glance服务是否正常
下面的步骤照做就可以,具体原理可以看英文
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=hastexo
export OS_AUTH_URL="http://localhost:5000/v2.0/"
运行
glance index
没有任何的输出。表示正常。
#echo $?
下面会输出0 ,表示正常。
# glance –version
glance 2012.1
8:下载镜像并上传
ubuntu官方专门提供image,http://uec-。不过一定要注意
这些镜像,都是必须使用密钥登录,直接用用户名密码是无法的登录的。
下载镜像
http://cloud-
这应该是ubuntu提供的最新的稳定的镜像。
wget http://cloud-
上传镜像
glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img
上传完镜像后。在运行
glance index
或者
glance –username=admin –password=hastexo –tenant=admin –auth_url=http://127.0.0.1:5000/v2.0 index
就可以看到上传的image。
root@openstack:~# glance index
ID Name Disk Format Container Format Size
------------------------------------ ------------------------------ -------------------- -------------------- --------------
cbcc3785-dfe6-4100-9f7c-04be4d8d70bb Ubuntu 12.04 cloudimg amd64 qcow2 ovf 232259584
五:安装配置nova
1:安装nova相关组件
apt-get install nova-api nova-cert nova-common nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-volume python-nova python-novaclient nova-consoleauth python-novnc novnc
2:配置 /etc/nova/nova.conf
把nova.conf 原来的内容删除掉。直接贴下面内容。重点需要注意的是,
如果你是在虚拟机里测试Openstack。你需要把默认的虚拟化引擎从kvm改成qemu。
还有就是修改 /etc/nova/nova-compute.conf 将默认的虚拟化引擎从kvm改成qemu。
root@openstack:~# cat /etc/nova/nova-compute.conf
--libvirt_type=qemu
root@openstack:~# cat /etc/nova/nova.conf
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=222.24.24.174
--ec2_host=222.24.24.174
--rabbit_host=222.24.24.174
--cc_host=222.24.24.174
--nova_url=http://222.24.24.174:8774/v1.1/
--routing_source_ip=222.24.24.174
--glance_api_servers=222.24.24.174:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.22
--sql_connection=mysql://novadbadmin:dieD9Mie@222.24.24.174/nova
--ec2_url=http://222.24.24.174:8773/services/Cloud
--keystone_ec2_url=http://222.24.24.174:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=qemu
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
#novnc
--novnc_enabled=true
--novncproxy_base_url= http://222.24.24.174:6080/vnc_auto.html
--vncserver_proxyclient_address=127.0.0.1
--vncserver_listen=127.0.0.1
# network specific settings
--network_manager=work.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.22.32/27
--floating_range=10.42.0.32/27
--network_size=32
--flat_network_dhcp_start=192.168.22.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
#--verbose
--verbose=False
3:配置/etc/nova/api-paste.ini
也是修改文件最后3行,
admin_tenant_name = %SERVICE_TENANT_NAME%
admin_user = %SERVICE_USER%
admin_password = %SERVICE_PASSWORD%
改成
admin_tenant_name =admin
admin_user =admin
admin_password =hastexo
4:停止和重启nova相关服务
for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler novnc nova-volume nova-consoleauth; do service "$a" restart; done
5:同步数据库
以前我运行同步数据库,如果正确, 当nova.conf
–verbose=False
是没有任何的输出,否则有一堆是输出。
nova-manage db sync
创建网络
nova-manage network create private --fixed_range_v4=192.168.22.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32
设定floating IP
nova-manage floating create --ip_range=222.24.24.32/27
设置权限
chown -R nova:nova /etc/nova
再重启相关服务
for a in libvirt-bin nova-network nova-compute nova-api nova-objectstore nova-scheduler novnc nova-volume nova-consoleauth; do service "$a" restart; done
6:检查nova服务
root@openstack:~# nova image-list
+--------------------------------------+-----------------------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+-----------------------------+--------+--------+
| cbcc3785-dfe6-4100-9f7c-04be4d8d70bb | Ubuntu 12.04 cloudimg amd64 | ACTIVE | |
+--------------------------------------+-----------------------------+--------+--------+
六:创建第一个VM
这是用命令行创建vm,这个步骤可以跳过。我没做。不影响后面的安装。
1: 创建密钥
# ssh-keygen
一路回车,就可以了
2:上传密钥到数据库
nova keypair-add --pub_key .ssh/id_rsa.pub key1
这个时候,就可以查看到上传的key
root@openstack:~# nova keypair-list
+------+-------------------------------------------------+
| Name | Fingerprint |
+------+-------------------------------------------------+
| key1 | aa:79:08:4a:dc:c7:2b:98:eb:41:cb:7d:cf:e3:62:61 |
+------+-------------------------------------------------+
4:开始创建虚拟机
打开防火墙
nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0
nova secgroup-add-rule default udp 1 65535 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
root@openstack:~# nova image-list
+————————————–+—————————–+——–+——–+
| ID | Name | Status | Server |
+————————————–+—————————–+——–+——–+
| cbcc3785-dfe6-4100-9f7c-04be4d8d70bb | Ubuntu 12.04 cloudimg amd64 | ACTIVE | |
+————————————–+—————————–+——–+——–+
创建虚拟机:root@openstack:~# nova boot --flavor 1 --image cbcc3785-dfe6-4100-9f7c-04be4d8d70bb --key_name key1 superfrobnicator
查看一下创建的虚拟机
nova show superfrobnicator
这个时候,就可以直接ssh到虚拟机上。
ssh -i .ssh/id_rsa ubuntu@192.168.22.35
这样就可以登录服务器。
七:安装和配置Dashbaord
1:安装dashbaord
apt-get install libapache2-mod-wsgi openstack-dashboard
这个时候,你就可以登录dashboard
http://222.24.24.174
user:admin
pass:hastexo
然后你就可以方便的使用它来管理镜像和虚拟机。
展开阅读全文