最新发行版Openstack Havana单机安装指引
2013-11-14 10:20
369 查看
转载请注明出处 - 阿Q
v1.0 //2013/11/12
v1.1 //2013/12/6 修改glance的配置,防止snapshot创建时的错误。
//2013/12/7 修改Horizon的配置,使一些项目可以编辑
//2014/02/08修改小错误
Havana于2013年10月份发布,稳定版本为2013.2。相信很多Openstack爱好者和开发测试人员已经开始使用了。作为IaaS架构平台,Openstack面向的是集群主机虚拟化和资源的半自动化调配。但是作为测试和开发使用,尤其是在有限成本控制下,多主机测试在资金和空间占用上耗费较多。所以我们寻求在单主机下实现Openstack的运行。
本文面向的读者:
- 具备基本的Openstack知识(逻辑架构和组成部分)
- 熟悉基本的Linux操作和配置。本文使用的是Ubuntu12.04 LTS Server版,这也是Openstack官方测试所选择的Linux发行版。
既然是单主机系统,那就对主机的配置稍有要求。我用的是Dell的PC服务器,4核,4G内存,500G硬盘,单网卡。这也应该算是最低配置了。说起网卡,Havana官方文档建议的是采用双网段(可以区分内网管理和外网服务),这也就要求我们的服务器具有两个物理端口。因为我们是测试环境,无需区分网络,所以单网卡可以满足要求,只是需要检查单网段下Havana是否工作正常。
因为是单机安装,存储和网络相对都简单化了,所以这里我们暂时不会涉及对象存储(Object Storage),块存储(Block Storage)和网络,以后我会讲如何仿真。
安装会涉及到如下几部分。
操作系统的基本配置
配置认证服务(Identity Service)
配置镜像服务(Image Service)
配置云计算服务(Compute Services)
增加用户面板(Dashboard)
注:本文所有的操作命令都是在Ubuntu 12.04 LTS Server版的root用户下执行,所以请先进入root用户模式(sudo -i)以方便执行。
创建管理用户。用户密码ADMIN_PASS需要自己指定。
制作一个文件,文件名自取,例如ksrc,内容如下,然后source一下它。
现在你可以尝试获得一下token,如果成功,说明认证服务工作正常。
为镜像服务创建数据库,名字叫做glance,密码也是glance
keystone里创建glance用户,密码(GLANCE_PASS)自己指定
重启服务。
创建一个镜像。
还有一些其他需要在配置文件nova.conf里修改或添加的属性,如下所示
生成数据表。
下载网络包。
编辑配置文件/etc/nova/nova.conf
创建自己的虚拟网络。
启动实例
编辑/etc/openstack-dashboard/local_settings.py
接着访问http://<your-host-id>/horizon,是不是很简单。
因为时间有限,写的比较简单,肯定会有错误,有些概念也没有深入,以后有时间我会补充。也希望大家的反馈。
v1.0 //2013/11/12
v1.1 //2013/12/6 修改glance的配置,防止snapshot创建时的错误。
//2013/12/7 修改Horizon的配置,使一些项目可以编辑
//2014/02/08修改小错误
Havana于2013年10月份发布,稳定版本为2013.2。相信很多Openstack爱好者和开发测试人员已经开始使用了。作为IaaS架构平台,Openstack面向的是集群主机虚拟化和资源的半自动化调配。但是作为测试和开发使用,尤其是在有限成本控制下,多主机测试在资金和空间占用上耗费较多。所以我们寻求在单主机下实现Openstack的运行。
本文面向的读者:
- 具备基本的Openstack知识(逻辑架构和组成部分)
- 熟悉基本的Linux操作和配置。本文使用的是Ubuntu12.04 LTS Server版,这也是Openstack官方测试所选择的Linux发行版。
既然是单主机系统,那就对主机的配置稍有要求。我用的是Dell的PC服务器,4核,4G内存,500G硬盘,单网卡。这也应该算是最低配置了。说起网卡,Havana官方文档建议的是采用双网段(可以区分内网管理和外网服务),这也就要求我们的服务器具有两个物理端口。因为我们是测试环境,无需区分网络,所以单网卡可以满足要求,只是需要检查单网段下Havana是否工作正常。
因为是单机安装,存储和网络相对都简单化了,所以这里我们暂时不会涉及对象存储(Object Storage),块存储(Block Storage)和网络,以后我会讲如何仿真。
安装会涉及到如下几部分。
操作系统的基本配置
配置认证服务(Identity Service)
配置镜像服务(Image Service)
配置云计算服务(Compute Services)
增加用户面板(Dashboard)
注:本文所有的操作命令都是在Ubuntu 12.04 LTS Server版的root用户下执行,所以请先进入root用户模式(sudo -i)以方便执行。
1. 操作系统的基本配置
1.1 网络配置
由于我们只有单网卡,OS的网络配置在你安装系统的时候就已经完成了,所以在此无需配置。针对Openstack的内部网段,我们可以通过虚拟桥接方式实现。你可以手工配置,当然Openstack安装的时候也会自动配置,这里我们先略过不谈。1.2 NTP配置
因为是单机安装,无需配置NTP Server。1.3 安装MySql数据库
Openstack服务需要数据库来存储信息。我们就拿常用的MySql来举例。需要安装客户端,数据库和Python库。# apt-get install python-mysqldb mysql-server安装时,会需要你设置root用户密码。Openstack要求MySql没有匿名用户权限,所以你需要删除匿名用户和无关的数据库。下面这个命令可以实现。
# mysql_secure_installation运行以后,会有一些选项,全选yes就ok。
1.4 准备Openstack包
在Ubuntu下,需要安装一些针对Havana的最新的包。# apt-get install python-software-properties # add-apt-repository cloud-archive:havana这些包安装完后,你需要升级一下系统。
# apt-get update && apt-get dist-upgrade
1.5 安装消息队列服务
Openstack默认选用了RabbitMQ。也支持Qpid和ZeroMQ。# apt-get install rabbitmq-server
2. 配置认证服务(Identity Service)
2.1 安装认证服务(Keystone)
# apt-get install keystone python-keystone python-keystoneclient我们在mysql里为认证服务创建一个数据库,名字就叫做keystone,密码也是keystone
# mysql -u root -p mysql> CREATE DATABASE keystone; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone'; mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';修改Keystone的配置文件/etc/keystone/keystone.conf,使其指向我们刚刚创建的数据库。修改[sql]部分如下:
[sql] # The SQLAlchemy connection string used to connect to the database connection = mysql://keystone:keystone@localhost/keystone接下来创建keystone需要的表格。
# keystone-manage db_sync生成admin的token。
# openssl rand -hex 10还是编辑/etc/keystone/keystone.conf,把上面生成的token替换下面的ADMIN_TOKEN
[DEFAULT] # A "shared secret" between keystone and other openstack services admin_token = ADMIN_TOKEN重启认证服务
# service keystone restart
2.2 定义用户(Users)、租户(Tenants)和角色(Roles)
在使用认证服务的时候,你需要一对用户名和密码。目前我们还没有创建任何用户,但我们可以使用之前创建的管理token。需要做的就是把这个token传给keystone命令(参数为--token)。为了避免每次使用keystone命令都加一些相同的参数,我们可以把这些参数值放到环境变量里。# export OS_SERVICE_TOKEN=ADMIN_TOKEN # export OS_SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0其中endpoint指明认证服务在哪运行。下面创建租户。
# keystone tenant-create --name=admin --description="Admin Tenant" # keystone tenant-create --name=service --description="Service Tenant"
创建管理用户。用户密码ADMIN_PASS需要自己指定。
# keystone user-create --name=admin --pass=ADMIN_PASS --email=admin@example.com创建角色
# keystone role-create --name=admin为用户添加角色和租户属性。
# keystone user-role-add --user=admin --tenant=admin --role=admin
2.3 定义服务和API接入点(endpoints)
认证服务不光管理着用户属性,还登记所有Openstack服务,包括它自己本身。所以我们注册一个认证服务。# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"创建成功后会生成一个id,这个id要用在下面这个命令上,以便创建API接入点。
# keystone endpoint-create --service-id=the_service_id_above --publicurl=http://127.0.0.1:5000/v2.0 \ --internalurl=http://127.0.0.1:5000/v2.0 --adminurl=http://127.0.0.1:35357/v2.0同样的,当你安装其他Openstack服务时,像Glance,Nova,都要运行类似上面的命令。
2.4 验证认证服务是否安装成功
先把环境变量取消。# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
制作一个文件,文件名自取,例如ksrc,内容如下,然后source一下它。
export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_TENANT_NAME=admin export OS_AUTH_URL=http://127.0.0.1:35357/v2.0
# source ksrc
现在你可以尝试获得一下token,如果成功,说明认证服务工作正常。
$ keystone token-get
3. 配置镜像服务
很多命令与配置认证服务一样,我就不做过多解释了。3.1 安装镜像服务(Glance)
安装glance包。# apt-get install glance删除/var/lib/glance/glance.sqlite,防止错误使用sqlite数据库。
为镜像服务创建数据库,名字叫做glance,密码也是glance
# mysql -u root -p mysql> CREATE DATABASE glance; mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance'; mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';生成数据表。
# glance-manage db_sync
keystone里创建glance用户,密码(GLANCE_PASS)自己指定
# keystone user-create --name=glance --pass=GLANCE_PASS--email=glance@example.com # keystone user-role-add --user=glance --tenant=service --role=admin修改glance配置文件/etc/glance/glance-api.conf和glance-registry.conf,找到如下部分并修改。
[keystone_authtoken] auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = glance admin_password = GLANCE_PASS [paste_deploy] flavor = keystone在认证服务里注册镜像服务并创建API接入点。
# keystone service-create --name=glance --type=image --description="Glance Image Service"
# keystone endpoint-create \ --service-id=the_service_id_above \ --publicurl=http://127.0.0.1:9292 \ --internalurl=http://127.0.0.1:9292 \ --adminurl=http://127.0.0.1:9292
重启服务。
# service glance-registry restart # service glance-api restart
3.2 验证镜像服务是否安装成功
准备好一个镜像文件,这个镜像文件可以自己制作,也可以从网上下载。我制作了一个Ubuntu12.04 LTS Server的镜像ubuntu_1204_server.qcow2。至于怎么制作镜像,我们另文讨论。创建一个镜像。
# glance image-create --name="Ubuntu 12.04 LTS Server" --disk-format=qcow2 \ --container-format=bare --is-public=true < ubuntu_1204_server.qcow2我的镜像如下所示。
# glance image-list +--------------------------------------+-------------------------+-------------+------------------+------------+--------+ | ID | Name | Disk Format | Container Format | Size | Status | +--------------------------------------+-------------------------+-------------+------------------+------------+--------+ | dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | qcow2 | bare | 1502347264 | active | +--------------------------------------+-------------------------+-------------+------------------+------------+--------+
4. 配置云计算服务
4.1 安装nova控制服务
先安装所需要的包# apt-get install nova-novncproxy novnc nova-api nova-ajax-console-proxy nova-cert nova-conductor nova-consoleauth nova-doc nova-scheduler python-novaclient为nova创建数据库,名字叫做nova,密码也是nova
# mysql -u root -p mysql> CREATE DATABASE nova; mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova'; mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';编辑nova配置文件/etc/nova/nova.conf,使其指向自己的数据库。
[database] # The SQLAlchemy connection string used to connect to the database sql_connection = mysql://nova:nova@localhost/nova
还有一些其他需要在配置文件nova.conf里修改或添加的属性,如下所示
my_ip=127.0.0.1 vncserver_listen=0.0.0.0 vncserver_proxyclient_address=127.0.0.1 auth_strategy=keystone rpc_backend=nova.rpc.impl_kombu rabbit_host=127.0.0.1 glance_host=127.0.0.1同时修改/etc/nova/api-paste.ini如下。
[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http admin_tenant_name=service admin_user=nova admin_password=nova
生成数据表。
# nova-manage db sync接下来就是比较熟悉的命令了,如果命令返回错误,可以重启一下nova服务。
# keystone user-create --name=nova --pass=NOVA_PASS --email=nova@example.com # keystone user-role-add --user=nova --tenant=service --role=admin
# keystone service-create --name=nova --type=compute --description="Nova Compute Service"
# keystone endpoint-create --service-id=the_service_id_above --publicurl=http://127.0.0.1:8774/v2/%\(tenant_id\)s --internalurl=http://127.0.0.1:8774/v2/%\(tenant_id\)s --adminurl=http://127.0.0.1:8774/v2/%\(tenant_id\)s然后重启一下服务
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart下面可以检查一下nova是否配置正确,可以用如下命令。
# nova image-list +--------------------------------------+-------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+-------------------------+--------+--------+ | dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | ACTIVE | | +--------------------------------------+-------------------------+--------+--------+
4.2 安装一个nova云计算节点
先下载所需要的包。# apt-get install nova-compute-kvm python-novaclient python-guestfs删除默认安装的SQLite数据库
# rm /var/lib/nova/nova.sqlite重启计算服务
# service nova-compute restart
4.3 激活内部网络
这应该算是很关键的一步了。我们选用FlatDHCPManager。以后我会用一个专题讲网络。下载网络包。
# apt-get install nova-network
编辑配置文件/etc/nova/nova.conf
[DEFAULT] network_manager=nova.network.manager.FlatDHCPManager fixed_range=192.168.122.0/24 flat_network_dhcp_start=192.168.122.2 flat_network_bridge=virbr0重启网络服务。
# service nova-network restart
创建自己的虚拟网络。
# nova network-create vmnet --bridge-interface=virbr0
4.4 启动一个镜像
生成密钥$ ssh-keygen $ cd .ssh $ nova keypair-add --pub_key id_rsa.pub mykey如果你需要自己的镜像实例能被ping通和ssh,需要放开如下权限
# nova secgroup-add-rule defaulttcp 22 22 0.0.0.0/0 # nova secgroup-add-rule defaulticmp -1 -1 0.0.0.0/0
启动实例
$ nova boot --flavor <flavor-id> --key_name mykey --image <image-id> --security_group default Ubuntu以下是我的例子。
# nova flavor-list +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
# nova image-list +--------------------------------------+-------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+-------------------------+--------+--------+ | dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | ACTIVE | | +--------------------------------------+-------------------------+--------+--------+
# nova list +--------------------------------------+--------+--------+------------+-------------+---------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+--------+--------+------------+-------------+---------------------+ | eff82154-bd75-40a7-bc83-60ba0f5b2ac4 | ubuntu | ACTIVE | None | Running | vmnet=192.168.122.2 | +--------------------------------------+--------+--------+------------+-------------+---------------------+
5. 增加用户面板
这个非常简单,安装完以后就可以访问了。# apt-get install memcached libapache2-mod-wsgi openstack-dashboard
编辑/etc/openstack-dashboard/local_settings.py
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"
接着访问http://<your-host-id>/horizon,是不是很简单。
因为时间有限,写的比较简单,肯定会有错误,有些概念也没有深入,以后有时间我会补充。也希望大家的反馈。
相关文章推荐
- OpenStack_Havana_Install_Guide 多节点安装总结3
- centos6.5安装openstack havana
- 小白做最新单机2.7.1 hadoop(hadoop 安装,配置,错误汇总)
- 在RDO自动安装的OpenStack Liberty单机中搭建能够内外网互访的网络(二)-安装系统和OpenStack
- openstack (havana) 计算节点安装
- OpenStack_Havana_Install_Guide 多节点安装总结4
- 网上最新的devstack安装教程【一键部署openstack测试环境】
- openstack (havana) 控制节点安装
- openstack一键安装(最新版)
- CentOS 6.4 Openstack Havana 多节点安装(OVS+GRE)swfit+cinder LVM
- OpenStack_Havana_Install_Guide 多节点安装总结5
- centos单机安装配置openstack
- OpenStack_Havana_Install_Guide 多节点安装总结6
- OpenStack 部署总结之:在CentOS 6.5上使用RDO单机安装icehouse(Ml2+GRE)
- [置顶] openstack(kilo)安装部署文档(最小化安装,单机安装)
- 基于centos7.5安装部署最新luminous版 ceph集群部署整合openstack
- Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装
- openstack一键安装(最新版)
- virtualbox安装最新的mirantis openstack8.0