OpenStack云计算快速入门2.docx
- 文档编号:10461390
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:39
- 大小:92.22KB
OpenStack云计算快速入门2.docx
《OpenStack云计算快速入门2.docx》由会员分享,可在线阅读,更多相关《OpenStack云计算快速入门2.docx(39页珍藏版)》请在冰豆网上搜索。
OpenStack云计算快速入门2
第二部分 OpenStack安装与配置
一、引言
本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1、Server2和Client1,之后的各章也是如此。
Server1承载着Nova、Glance、Swift、Keystone及Horizon(OpenStack的WebUI)服务。
Server2只用来运行实例管理的nova运算工作站。
由于OpenStack组件采用分布式结构,其中的任何一部分或几个部分都可以安装在任意服务器上。
Client1并不是安装所必须的,在本例中,它仅用来制作打包镜像,并使用它访问Horizon在Web上管理OpenStack设施。
于是就避免了使用服务器来完成镜像打包等诸如此类的任务了,而且在制作桌面系统镜像时如果包含视窗界面的话,我们也只能相应地使用有GUI的电脑来完成,故而最好还是别在服务器上玩火了吧。
建议Client1支持虚拟化技术,以便在制作完镜像打包时可以运行KVM。
OpenStack安装需要设定主机名、IP地址等,按你实际的环境进行配置。
下表是译者安装的网络参数清单:
以下是教程中网络设置参数,本教程均采用这些参数,但在实际安装中请参照上表进行设置。
二、Server1
正如上表所示,Server1包含了所有的Nova服务:
nova-compute、nova-api、nova-volume、nova-network以及Glance、Swift、Keystone和Horizon。
这台服务器上需要双网卡。
(一)安装底层OS
不必多想,请参照下述说明,记住相关参数,选择64位Ubuntu12.04版,进行安装。
●创建的第一个用户命名为“localadmin”
●为eth0和eth1设定IP及其相关参数
●∙在安装服务包中,仅选择“Openssh-server”作为预装项
因为Server1上也将安装nova-volume软件,而nova-volume需要一块专用分区,所以在安装UbuntuServer时请选择手动分区,并另行创建一块合适大小的分区。
从本章起,教程都将以/dev/sda6作为这块分区。
你可以根据自己分区的实际情况进行修改。
此外,请使用fdisk工具将该分区需要格式化为LVM(8e)格式,这一操作在安装中或刚安装完毕格式化均可。
进一步,如果你还计划在这台服务器上再新建一个分区配给Swift的话,那么就新建一块分区并参照本章后文“安装Swift”一节相关内容进行安装。
待12.04的UbuntuOS安装完毕后,使用下列命令更新系统:
sudoapt-getupdate
sudoapt-getupgrade
安装网桥工具bridge-utils:
sudoapt-getinstallbridge-utils
(二)配置网络
编辑/etc/network/interfaces文件,如下所示:
autolo
ifaceloinetloopback
autoeth0
ifaceeth0inetstatic
address10.10.10.2
netmask255.255.255.0
broadcast10.10.10.255
gateway10.10.10.1
dns-nameservers10.10.8.3
autoeth1
ifaceeth1inetstatic
address192.168.3.1
netmask255.255.255.0
network192.168.3.0
broadcast192.168.3.255
随后重新启动网络:
sudo/etc/init.d/networkingrestart
(三)NTP服务器
安装NTP软件包。
这个时间服务器将为所有节点提供支持。
OpenStack所有组件的时间都必须同步,于是我们就在Server1上安装NTP服务并且让其他服务器或节点与之保持同步。
sudoapt-getinstallntp
译者注:
NTP(NetworkTimeProtocol),是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
[来源:
XX百科]
打开文件/etc/ntp.conf增加以下三行内容,目的是让本服务器时间与外部服务器时间同步。
如果不能访问外网,NTP服务器将使用本机硬件时钟作为第二选择。
server
server127.127.1.0
fudge127.127.1.0stratum10
然后重启NTP使配置生效:
sudoservicentprestart
请确保服务器IP地址可以被DNS解析。
如果不能,则在/etc/hosts文件中手工加入。
(四)数据库
我们有很多选择:
MySQL、PostgreSQL或者SQLite等都能很好地对Nova和Glance提供数据支持。
究竟选哪个,自己定吧。
本例中采用MySQL。
MySQL
安装mysql-server和python-mysqldb包:
sudoapt-getinstallmysql-serverpython-mysqldb
为mysql创建root密码,在此使用“mygreatsecret”。
随后编辑mysql配置文件/etc/mysql/f,将绑定地址从127.0.0.1改为0.0.0.0,如下所示:
bind-address=0.0.0.0
重启MySQL服务器让其开始监听所有端口:
sudorestartmysql
创建数据库
我们将要为nova、glance和keystone创建很多东东,各种数据库、表及用户。
话音未落,这就开始了:
创建名为“nova”的数据库:
sudomysql-uroot-pmygreatsecret-e'CREATEDATABASEnova;'
新建一个用户,名为“novadbadmin”:
sudomysql-uroot-pmygreatsecret-e'CREATEUSERnovadbadmin;'
授予novadbadmin用户nova数据库全部权限:
sudomysql-uroot-pmygreatsecret-e"GRANTALLPRIVILEGESONnova.*TO'novadbadmin'@'%';"
为novadbadmin同志创建密码(译者注:
密码是novasecret,后文类似之处不多言,请详见命令):
sudomysql-uroot-pmygreatsecret-e"SETPASSWORDFOR'novadbadmin'@'%'=PASSWORD('novasecret');"
Glance登场,还是重复刚才的道道,首先创建一个名为glance的数据库:
sudomysql-uroot-pmygreatsecret-e'CREATEDATABASEglance;'
然后为这个新建的数据库添加一个用户“glancedbadmin”:
sudomysql-uroot-pmygreatsecret-e'CREATEUSERglancedbadmin;'
接着,光荣授予他本数据库的全部权限:
sudomysql-uroot-pmygreatsecret-e"GRANTALLPRIVILEGESONglance.*TO'glancedbadmin'@'%';"
是的,最后一步,为该用户分配密码:
sudomysql-uroot-pmygreatsecret-e"SETPASSWORDFOR'glancedbadmin'@'%'=PASSWORD('glancesecret');"
很烦的,keystone出场了。
刚才的大循环,至此开始演绎第三遍:
sudomysql-uroot-pmygreatsecret-e'CREATEDATABASEkeystone;'
sudomysql-uroot-pmygreatsecret-e'CREATEUSERkeystonedbadmin;'
sudomysql-uroot-pmygreatsecret-e"GRANTALLPRIVILEGESONkeystone.*TO'keystonedbadmin'@'%';"
sudomysql-uroot-pmygreatsecret-e"SETPASSWORDFOR'keystonedbadmin'@'%'=PASSWORD('keystonesecret')"
现在,MySQL部分的工作结束。
(五)Keystone
Keystone是OpenStack的认证服务。
使用以下命令进行安装:
sudoapt-getinstallkeystonepython-keystonepython-keystoneclient
打开/etc/keystone/keystone.conf文件,将这一行:
admin_token=ADMIN
改为:
admin_token=admin
(本教程中我们将一直使用admin作为令牌)
本例中,我们使用MySQL来存储keystone配置,则将/etc/keystone/keystone.conf中的这句配置:
connection=sqlite:
////var/lib/keystone/keystone.db
换成:
connection=mysql:
//keystonedbadmin:
keystonesecret@10.10.10.2/keystone
然后,重启Keystone:
sudoservicekeystonerestart
接着,执行以下命令同步数据库:
sudokeystone-managedb_sync
最后,有些环境变量是OpenStack运行所必须的:
exportSERVICE_ENDPOINT="http:
//localhost:
35357/v2.0"
exportSERVICE_TOKEN=admin
当然为了避免下次系统重启后,还得将这些变量再次export,最稳妥的办法就是将其写入~/.bashrc中。
创建租间
使用以下命令创建两个租间,admin和service:
keystonetenant-create--nameadmin
keystonetenant-create--nameservice
创建用户
执行以下命令,创建四个用户admin、nova、glance及swift:
keystoneuser-create--nameadmin--passadmin--emailadmin@
keystoneuser-create--namenova--passnova--emailnova@
keystoneuser-create--nameglance--passglance--emailglance@
keystoneuser-create--nameswift--passswift--emailswift@
创建角色
使用命令创建两个角色,admin和Member(译者注:
注意是大写M):
keystonerole-create--nameadmin
keystonerole-create--nameMember
查看租间、用户和角色
刚才建立的租间、用户和角色可以通过如下命令进行查看:
租间列表:
keystonetenant-list
+----------------------------------+--------------------+---------+
|id|name|enabled|
+----------------------------------+--------------------+---------+
|7f95ae9617cd496888bc412efdceabfd|admin|True|
|c7970080576646c6959ee35970cf3199|service|True|
+----------------------------------+--------------------+---------+
用户列表:
keystoneuser-list
+----------------------------------+---------+-------------------+--------+
|id|enabled|email|name|
+----------------------------------+---------+-------------------+--------+
|1b986cca67e242f38cd6aa4bdec587ca|True|swift@|swift|
|518b51ea133c4facadae42c328d6b77b|True|glance@|glance|
|b3de3aeec2544f0f90b9cbfe8b8b7acd|True|admin@|admin|
|ce8cd56ca8824f5d845ba6ed015e9494|True|nova@|nova|
+----------------------------------+---------+-------------------+--------+
角色列表:
keystonerole-list
+----------------------------------+----------------------+
|id|name|
+----------------------------------+----------------------+
|2bbe305ad531434991d4281aaaebb700|admin|
|d983800dd6d54ee3a1b1eb9f2ae3291f|Member|
+----------------------------------+----------------------+
请大家格外注意id列中的值,虽然很长,但随后为用户绑定角色,继而把用户配入租间中时可全靠它们了。
为特定租间中的用户绑定角色
现在我们先为刚刚创建的用户绑定角色,通过如下命令格式可以将特定租间中的特定用户增加角色(译者注:
仅是命令格式,随后才是真正执行的命令):
keystoneuser-role-add--user$USER_ID--role$ROLE_ID--tenant_id$TENANT_ID
其中id字段可以通过keystoneuser-list,keystonerole-list和keystonetenant-list命令获得。
下面开始为“admin”租间中的“admin”用户绑定“admin”角色:
keystoneuser-role-add--userb3de3aeec2544f0f90b9cbfe8b8b7acd--role2bbe305ad531434991d4281aaaebb700--tenant_id7f95ae9617cd496888bc412efdceabfd
接着执行如下命令,为“service”租间中的“nova”、“glance”、“swift”用户绑定“admin”角色:
keystoneuser-role-add--userce8cd56ca8824f5d845ba6ed015e9494--role2bbe305ad531434991d4281aaaebb700--tenant_idc7970080576646c6959ee35970cf3199
keystoneuser-role-add--user518b51ea133c4facadae42c328d6b77b--role2bbe305ad531434991d4281aaaebb700--tenant_idc7970080576646c6959ee35970cf3199
keystoneuser-role-add--user1b986cca67e242f38cd6aa4bdec587ca--role2bbe305ad531434991d4281aaaebb700--tenant_idc7970080576646c6959ee35970cf3199
Horizon和Swift只“Member”角色即可,所以相应地执行如下命令:
keystoneuser-role-add--userb3de3aeec2544f0f90b9cbfe8b8b7acd--roled983800dd6d54ee3a1b1eb9f2ae3291f--tenant_id7f95ae9617cd496888bc412efdceabfd
注意,在执行自己的安装时,请千万按照实际安装中的id进行设置,照抄本文id必将出错!
创建服务
至此,我们该创建授权用户可以享用的服务了,命令格式如下:
keystoneservice-create--nameservice_name--typeservice_type--description'Descriptionoftheservice'
安装上述格式,创建nova-compute、nova-volume、glance、swift、keystone及ec2服务:
keystoneservice-create--namenova--typecompute--description'OpenStackComputeService'
keystoneservice-create--namevolume--typevolume--description'OpenStackVolumeService'
keystoneservice-create--nameglance--typeimage--description'OpenStackImageService'
keystoneservice-create--nameswift--typeobject-store--description'OpenStackStorageService'
keystoneservice-create--namekeystone--typeidentity--description'OpenStackIdentityService'
keystoneservice-create--nameec2--typeec2--description'EC2Service'
刚才创建的每个服务都拥有唯一的id,要查看服务id,使用如下命令即可:
keystoneservice-list
+----------------------------------+----------+--------------+----------------------------+
|id|name|type| description |
+----------------------------------+----------+--------------+----------------------------+
|1e93ee6c70f8468c88a5cb1b106753f3|nova|compute|OpenStack Compute Service |
|28fd92ffe3824004996a3e04e059d875|ec2|ec2|EC2Service |
|7d4ec192dfa1456996f0f4c47415c7a7|keystone|identity|OpenStack Identity Service |
|96f35e1112b143e59d5cd5d0e6a8b22d|swift|object-store|OpenStack Storage Service |
|f38f4564ff7b4e43a52b2f5c1b75e5fa|volume|volume|OpenStack Volume Service |
|fbafab6edcab467bb734380ce6be3561|glance|image|OpenStackImage Service |
+----------------------------------+----------+--------------+----------------------------+
这些id将被用于定义所属服务的入口(endpoint)。
创建入口
创建服务入口的命令格式是:
keystoneendpoint-create--regionregion_name--service_idservice_id--publicurlpublic_url--adminurladmin_url--internalurlinternal_url
使用如下命令创建nova-compute入口:
keystoneendpoint-create--regionmyregion--service_id1e93ee6c70f8468c88a5cb1b106753f3--publicurl'http:
//10.10.10.2:
8774/v2/$(tenant_id)s'--adminurl'http:
//10.10.10.2:
8774/v2/$(tenant_id)s'--internalurl'http:
//10.10.10.2:
8774/v2/$(tenant_id)s'
使用如下命令创建nova-volume入口:
keystoneendpoint-create--regionmyregion--service_idf38f4564ff7b4e43a52b2f5c1b75e5fa--publicurl'http:
//10.10.10.2:
8776/v1/$(tenant_id)s'--adminurl'http:
//10.10.10.2:
8776/v1/$(tenant_id)s'--internalurl'http:
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenStack 计算 快速 入门