设为首页 收藏本站
查看: 1299|回复: 0

[经验分享] OpenStack安装与配置

[复制链接]

尚未签到

发表于 2015-4-12 12:52:34 | 显示全部楼层 |阅读模式
OpenStack安装与配置

一、引言
  如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1、Server2和Client1?Server1承载着Nova、Glance、Swift、Keystone及Horizon(OpenStack的Web UI)服务。Server2只用来运行实例管理的nova运算工作站。由于OpenStack组件采用分布式结构,其中的任何一部分或几个部分都可以安装在任意服务器上。
  Client1并不是安装所必须的,在本例中,它仅用来制作打包镜像,并使用它访问Horizon在Web上管理OpenStack设施。于是就避免了使用服务器来完成镜像打包等诸如此类的任务了,而且在制作桌面系统镜像时如果包含视窗界面的话,我们也只能相应地使用有GUI的电脑来完成,故而最好还是别在服务器上玩火了吧。建议Client1支持虚拟化技术,以便在制作完镜像打包时可以运行KVM。
  
DSC0000.png
  OpenStack安装需要设定主机名、IP地址等,按你实际的环境进行配置。下表是译者安装的网络参数清单:
DSC0001.png

    以下是教程中网络设置参数,本教程均采用这些参数,但在实际安装中请参照上表进行设置

DSC0002.png

二、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需要一块专用分区,所以在安装Ubuntu Server时请选择手动分区,并另行创建一块合适大小的分区。从本章起,教程都将以/dev/sda6作为这块分区。你可以根据自己分区的实际情况进行修改。此外,请使用fdisk工具将该分区需要格式化为LVM(8e)格式,这一操作在安装中或刚安装完毕格式化均可。进一步,如果你还计划在这台服务器上再新建一个分区配给Swift的话,那么就新建一块分区并参照本章后文“安装Swift”一节相关内容进行安装。
  待12.04的UbuntuOS安装完毕后 ,使用下列命令更新系统:
  sudo apt-get update
  sudo apt-get upgrade
  安装网桥工具bridge-utils:
  sudo apt-get install bridge-utils
(二)配置网络
  编辑/etc/network/interfaces文件,如下所示:
  auto lo
  iface lo inet loopback
  auto eth0
  iface eth0 inet static
  address 10.10.10.2
  netmask 255.255.255.0
  broadcast 10.10.10.255
  gateway 10.10.10.1
  dns-nameservers 10.10.8.3
  auto eth1
  iface eth1 inet static
  address 192.168.3.1
  netmask 255.255.255.0
  network 192.168.3.0
  broadcast 192.168.3.255
  随后重新启动网络:
  sudo /etc/init.d/networking restart
  
(三)NTP服务器
  安装NTP软件包。这个时间服务器将为所有节点提供支持。OpenStack所有组件的时间都必须同步,于是我们就在Server1上安装NTP服务并且让其他服务器或节点与之保持同步。
  sudo apt-get install ntp
  译者注:NTP(Network Time Protocol),是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。[来源:百度百科]
  打开文件/etc/ntp.conf增加以下三行内容,目的是让本服务器时间与外部服务器时间同步。如果不能访问外网,NTP服务器将使用本机硬件时钟作为第二选择。
  server ntp.ubuntu.com
  server 127.127.1.0
  fudge 127.127.1.0 stratum 10
  然后重启NTP使配置生效:
  sudo service ntp restart
  请确保服务器IP地址可以被DNS解析。如果不能,则在/etc/hosts文件中手工加入。
  
(四)数据库
  我们有很多选择:MySQL、PostgreSQL或者SQLite等都能很好地对Nova和Glance提供数据支持。究竟选哪个,自己定吧。本例中采用MySQL。
  MySQL
  安装mysql-server和python-mysqldb包:
  sudo apt-get install mysql-server python-mysqldb
  为mysql创建root密码,在此使用“mygreatsecret”。随后编辑mysql配置文件/etc/mysql/my.cnf,将绑定地址从127.0.0.1改为0.0.0.0,如下所示:
  bind-address = 0.0.0.0
  重启MySQL服务器让其开始监听所有端口:
  sudo restart mysql
  创建数据库
  我们将要为nova、glance和keystone创建很多东东,各种数据库、表及用户。话音未落,这就开始了:
  创建名为“nova”的数据库:
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE DATABASE nova;’
  
  新建一个用户,名为“novadbadmin”:
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE USER novadbadmin;’
  
  授予novadbadmin用户nova数据库全部权限:
  sudo mysql -uroot -pmygreatsecret -e “GRANT ALL PRIVILEGES ON nova.* TO ‘novadbadmin’@’%’;”
  
  为novadbadmin同志创建密码(译者注:密码是novasecret,后文类似之处不多言,请详见命令):
  sudo mysql -uroot -pmygreatsecret -e “SET PASSWORD FOR ‘novadbadmin’@’%’ = PASSWORD(‘novasecret’);”
  
  Glance登场,还是重复刚才的道道,首先创建一个名为glance的数据库:
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE DATABASE glance;’
  
  然后为这个新建的数据库添加一个用户“glancedbadmin”:
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE USER glancedbadmin;’
  
  接着,光荣授予他本数据库的全部权限:
  sudo mysql -uroot -pmygreatsecret -e “GRANT ALL PRIVILEGES ON glance.* TO ‘glancedbadmin’@’%’;”
  
  是的,最后一步,为该用户分配密码:
  sudo mysql -uroot -pmygreatsecret -e “SET PASSWORD FOR ‘glancedbadmin’@’%’ = PASSWORD(‘glancesecret’);”
  
  很烦的,keystone出场了。刚才的大循环,至此开始演绎第三遍:
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE DATABASE keystone;’
  sudo mysql -uroot -pmygreatsecret -e ‘CREATE USER keystonedbadmin;’
  sudo mysql -uroot -pmygreatsecret -e “GRANT ALL PRIVILEGES ON keystone.* TO ‘keystonedbadmin’@’%’;”
  sudo mysql -uroot -pmygreatsecret -e “SET PASSWORD FOR ‘keystonedbadmin’@’%’ = PASSWORD(‘keystonesecret’)”
  现在,MySQL部分的工作结束。
(五)Keystone
  Keystone是OpenStack的认证服务。使用以下命令进行安装:
  sudo apt-get install keystone python-keystone python-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:
  sudo service keystone restart
  接着,执行以下命令同步数据库:
  sudo keystone-manage db_sync
  最后,有些环境变量是OpenStack运行所必须的:
  export SERVICE_ENDPOINT=”http://localhost:35357/v2.0″
  export SERVICE_TOKEN=admin
  当然为了避免下次系统重启后,还得将这些变量再次export,最稳妥的办法就是将其写入~/.bashrc中。
  创建租间
  使用以下命令创建两个租间,admin和service:
  keystone tenant-create –name admin
  keystone tenant-create –name service
  创建用户
  执行以下命令,创建四个用户admin、nova、glance及swift:
  keystone user-create –name admin –pass admin –email admin@foobar.com
  keystone user-create –name nova –pass nova   –email nova@foobar.com
  keystone user-create –name glance –pass glance   –email glance@foobar.com
  keystone user-create –name swift –pass swift   –email swift@foobar.com
  创建角色
  使用命令创建两个角色,admin和Member(译者注:注意是大写M):
  keystone role-create –name admin
  keystone role-create –name Member
  查看租间、用户和角色
  刚才建立的租间、用户和角色可以通过如下命令进行查看:
  租间列表:
  keystone tenant-list
  +———————————-+——————–+———+
  |                id                |        name        | enabled |
  +———————————-+——————–+———+
  | 7f95ae9617cd496888bc412efdceabfd | admin              | True    |
  | c7970080576646c6959ee35970cf3199 | service            | True    |
  +———————————-+——————–+———+
  用户列表:
  keystone user-list
  +———————————-+———+——————-+——–+
  |                id                | enabled |       email       |  name  |
  +———————————-+———+——————-+——–+
  | 1b986cca67e242f38cd6aa4bdec587ca | True    | swift@foobar.com  | swift  |
  | 518b51ea133c4facadae42c328d6b77b | True    | glance@foobar.com | glance |
  | b3de3aeec2544f0f90b9cbfe8b8b7acd | True    | admin@foobar.com  | admin  |
  | ce8cd56ca8824f5d845ba6ed015e9494 | True    | nova@foobar.com   | nova   |
  +———————————-+———+——————-+——–+
  角色列表:
  keystone role-list
  +———————————-+———————-+
  |                id                |         name         |
  +———————————-+———————-+
  | 2bbe305ad531434991d4281aaaebb700 | admin                |
  | d983800dd6d54ee3a1b1eb9f2ae3291f | Member               |
  +———————————-+———————-+
  请大家格外注意id列中的值,虽然很长,但随后为用户绑定角色,继而把用户配入租间中时可全靠它们了。
  为特定租间中的用户绑定角色
  现在我们先为刚刚创建的用户绑定角色,通过如下命令格式可以将特定租间中的特定用户增加角色(译者注:仅是命令格式,随后才是真正执行的命令):
  keystone user-role-add –user $USER_ID –role $ROLE_ID –tenant_id $TENANT_ID
  其中id字段可以通过keystone user-list,keystone role-list和keystone tenant-list命令获得。
  下面开始为“admin”租间中的“admin”用户绑定“admin”角色:
  keystone user-role-add –user b3de3aeec2544f0f90b9cbfe8b8b7acd –role 2bbe305ad531434991d4281aaaebb700 –tenant_id 7f95ae9617cd496888bc412efdceabfd
  接着执行如下命令,为“service”租间中的“nova”、“glance”、“swift”用户绑定“admin”角色:
  keystone user-role-add –user ce8cd56ca8824f5d845ba6ed015e9494 –role 2bbe305ad531434991d4281aaaebb700 –tenant_id c7970080576646c6959ee35970cf3199
  keystone user-role-add –user 518b51ea133c4facadae42c328d6b77b –role 2bbe305ad531434991d4281aaaebb700 –tenant_id c7970080576646c6959ee35970cf3199
  keystone user-role-add –user 1b986cca67e242f38cd6aa4bdec587ca –role 2bbe305ad531434991d4281aaaebb700 –tenant_id c7970080576646c6959ee35970cf3199
  Horizon和Swift只“Member”角色即可,所以相应地执行如下命令:
  keystone user-role-add –user b3de3aeec2544f0f90b9cbfe8b8b7acd –role d983800dd6d54ee3a1b1eb9f2ae3291f –tenant_id 7f95ae9617cd496888bc412efdceabfd
  注意,在执行自己的安装时,请千万按照实际安装中的id进行设置,照抄本文id必将出错!
  
  创建服务
  至此,我们该创建授权用户可以享用的服务了,命令格式如下:
  keystone service-create –name service_name –type service_type –description ‘Description of the service’
  
  安装上述格式,创建nova-compute、nova-volume、glance、swift、keystone及ec2服务:
  keystone service-create –name nova –type compute –description ‘OpenStack Compute Service’
  keystone service-create –name volume –type volume –description ‘OpenStack Volume Service’
  keystone service-create –name glance –type image –description ‘OpenStack Image Service’
  keystone service-create –name swift –type object-store –description ‘OpenStack Storage Service’
  keystone service-create –name keystone –type identity –description ‘OpenStack Identity Service’
  keystone service-create –name ec2 –type ec2 –description ‘EC2 Service’
  
  刚才创建的每个服务都拥有唯一的id,要查看服务id,使用如下命令即可:
  keystone service-list
  +———————————-+———-+————–+—————————-+
  |                id                |   name   |     type     |      description         |
  +———————————-+———-+————–+—————————-+
  | 1e93ee6c70f8468c88a5cb1b106753f3 | nova     | compute      | OpenStack Compute Service  |
  | 28fd92ffe3824004996a3e04e059d875 | ec2      | ec2          | EC2 Service                |
  | 7d4ec192dfa1456996f0f4c47415c7a7 | keystone | identity     | OpenStack Identity Service |
  | 96f35e1112b143e59d5cd5d0e6a8b22d | swift    | object-store | OpenStack Storage Service  |
  | f38f4564ff7b4e43a52b2f5c1b75e5fa | volume   | volume       | OpenStack Volume Service   |
  | fbafab6edcab467bb734380ce6be3561 | glance   | image        | OpenStack Image Service    |
  +———————————-+———-+————–+—————————-+
  这些id将被用于定义所属服务的入口(endpoint)。
  
  创建入口
  创建服务入口的命令格式是:
  keystone endpoint-create –region region_name –service_id service_id –publicurl public_url –adminurl admin_url  –internalurl internal_url
  
  使用如下命令创建nova-compute入口:
  keystone endpoint-create –region myregion –service_id 1e93ee6c70f8468c88a5cb1b106753f3 –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入口:
  keystone endpoint-create –region myregion –service_id f38f4564ff7b4e43a52b2f5c1b75e5fa –publicurl ‘http://10.10.10.2:8776/v1/$(tenant_id)s’ –adminurl ‘http://10.10.10.2:8776/v1/$(tenant_id)s’ –internalurl ‘http://10.10.10.2:8776/v1/$(tenant_id)s’
  使用如下命令创建glance入口:
  keystone endpoint-create –region myregion –service_id fbafab6edcab467bb734380ce6be3561 –publicurl ‘http://10.10.10.2:9292/v1′ –adminurl ‘http://10.10.10.2:9292/v1′ –internalurl ‘http://10.10.10.2:9292/v1′
  
  使用如下命令创建swift入口:
  keystone endpoint-create –region myregion –service_id 96f35e1112b143e59d5cd5d0e6a8b22d –publicurl ‘http://10.10.10.2:8080/v1/AUTH_$(tenant_id)s’ –adminurl ‘http://10.10.10.2:8080/v1′ –internalurl ‘http://10.10.10.2:8080/v1/AUTH_$(tenant_id)s’
  使用如下命令创建keystone入口:
  keystone endpoint-create –region myregion –service_id 7d4ec192dfa1456996f0f4c47415c7a7 –publicurl http://10.10.10.2:5000/v2.0 –adminurl http://10.10.10.2:35357/v2.0 –internalurl http://10.10.10.2:5000/v2.0
  使用如下命令创建ec2入口:
  keystone endpoint-create –region myregion –service_id 28fd92ffe3824004996a3e04e059d875 –publicurl http://10.10.10.2:8773/services/Cloud –adminurl http://10.10.10.2:8773/services/Admin –internalurl http://10.10.10.2:8773/services/Cloud

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56288-1-1.html 上篇帖子: 怎样写 OpenStack Neutron 的 Extension (二) 下篇帖子: [网摘]Ubuntu12.04 安装 OpenStack Essex
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表