手把手教你如何逐步安装OpenStack

【TechTarget中国原创】 尽管OpenStack官方提供的在线安装教程和分步向导能够为管理员提供很大帮助,但是依然存在很多不尽如人意的地方。因此在Ubuntu上安装OpenStack的过程当中,可以使用下面的操作文档来弥补官方教程的不足。 学习如何使用OpenStack的最简单方式就是在自己的电脑上进行实际部署。OpenStack官网提供了如何进行部署的相关教程,但是这个教程所包含的步骤过于繁杂,并且还有很多不准确的地方,因此用户很难顺利完成整个流程——比如,在整个安装流程当中,用户不可能简单地通过apt-get来获得所有的必要组件。虽然OpenStack同时提供了图形化的分步向导,但是这种方式需要使用五台单独的虚拟机。 在安装OpenStack的过程当中用户可能会遇到一系列的错误提示信息,尽管可以在Google当中逐个搜索这些问题的解决方案,但是这种方式会让用户在漫长的安装过程中感到更加沮丧,因此我推荐用户参考这个教程完成安装。为了彻底理解整个安装流程,我在Ubuntu上完成了两次OpenStack的完整安装过程,并且将所有获得的经验都体现在这个OpenStack安装教程当中。简单来说,这个教程的目的在于尽量简化和详尽说明OpenStack所提供的官方文档,最大程度上解决可能遇到的任何问题。 OpenStack安装前提 在开始之前,首先浏览一下OpenStack官网提供的文档“OpenStack Installation Guide for Ubuntu 14.04。”为了实现最佳效果,可以同时参考官网教程以及这个文档,以保证安装过程的顺利实施。作为参考,我使用的是OpenStack Kilo,也被称为version K。 为了保证系统正常运行,环境当中必须至少包含一个计算节点和一个控制器节点。虽然我们没有部署对象存储、块存储或者网络节点,但是这些都是在生产环境当中所必须的。 如果在安装过程当中卡在某一环节无法完成,那么可以暂时跳过这一环节,因为这些步骤除了第一步之外,并不需要按照时间顺序完成。在后面的安装过程当中可能会找到之前问题的解决方案。 总体来说,部署OpenStack环境包含如下基本步骤: 通过安装数据库、配置主机文件来创建基本环境; 安装Identity Service(身份验证服务); 安装Image Service(镜像服务); 安装Compute Service(计算服务); 安装Dashboard以便能够登陆lb界面。 搭建基础环境 在尝试搭建基础环境之前,必须首先创建一台Ubuntu 14.04 Server虚拟机。可以使用任何种类的hypervisor完成这项任务。我使用的是VMware vCloud Director。至于操作系统版本,尽管我倾向于使用Ubuntu Server,但是这个文档应该同样适用于Ubuntu Desktop。Ubuntu Server和Ubuntu Desktop的主要区别在于Server版没有图形界面。 注意需要使用root权限执行如下命令。如果用户使用的是Ubuntu Desktop而不是Server版,那么需要首先使用不同于root的普通账户登录,之后更改root账户密码,这样才能够运行后续的用户命令。在搭建环境的过程当中,还应该确保制作足够的快照,这样就能够在某些部分出现问题的时候及时进行回滚操作。 用户可以使用OpenStack教程当中提供的密码,直接复制和粘结这些密码可以尽量减少可能产生的错误。此外,SQL数据库当中不会使用root密码。除非文档特殊说明,否则不要运行apt-get命令,因为根据OpenStack.org的提示,不允许对OpenStack进行自动更新。 在创建Ubuntu Server虚拟机之后,需要向“/etc/hosts”文件当中添加controller和compute1的IP地址。为了保证这两个组件都在同一台机器上,可以使用如下命令: 127.0.0.1 controller compute1 之后,运行下面的命令: apt-get install ubuntu-cloud-keyring echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \            "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list apt-get update && apt-get dist-upgrade 跳过安装NTP(网络时间协议)服务器这一步。当前环境当中只有一台机器,因此不需要同步时间。现在运行下面的命令: apt-get install mariadb-server python-mysqldb 需要注意的是我们使用的是MariaDB,而不是MySQL。现在我们需要按照文档说明来编辑“/etc/mysql/my.cnf”配置文件。 完成这一步之后,执行下面的命令: service mysql restart mysql_secure_installation 之后使用如下命令安装RabbitMQ服务器: apt-get install rabbitmq-server rabbitmqctl change_password guest RABBIT_PASS 身份验证服务 为了安装Identity Service,首先创建Keystone数据库。用户通过创建token来实现Keystone操作,之后用户才能够创建用户ID和密码,通过执行如下命令来完成这项任务: openssl rand -hex 10 运行这个命令之后我得到了一个token:cde3aa151a5a7e048da9。用户可以使用这个token或者制作自己的token。之后,运行如下命令: apt-get install keystone python-keystoneclient 参照OpenStack提供的文档,使用 vi /etc/keystone/keystone.conf来编辑配置文件。 需要注意的是OpenStack文档当中的某些命令会导致错误,因为其打开了一个新的shell。可以通过运行如下命令来避免产生这种错误,注意前面不要添加su –s: /bin/sh -c "keystone-manage db_sync" keystone 之后执行如下命令重启keystone服务: service keystone restart 现在用户必须导出这两种环境变量。这样就能够临时允许用户使用token来通过Keystone的认证,而不需要使用用户账户。 export OS_SERVICE_TOKEN=cde3aa151a5a7e048da9 OS_SERVICE_ENDPOINT=http://controller:35357/v2.0 创建tenant、用户和角色 这时候我遇到了一个error 500的错误,是因为我忘记了重启Keystone服务。为了创建Keystone、用户和角色,需要首先执行下面的命令: keystone tenant-create --name admin --description "Admin Tenant" keystone user-create --name admin --pass ADMIN_PASS --email EMAIL_ADDRESS 继续参照OpenStack提供的文档,执行如下命令: keystone tenant-create --name service --description "Service Tenant" 创建service entity(服务实体)和API endpoint 根据OpenStack提供的文档说明,下一步需要进行验证操作,也就是尝试发现任何错误。 验证操作 根据OpenStack所提供的文档,如果想要验证上面的操作是否正确需要执行下面的命令: unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT 为了保证用户名和密码能够顺利通过验证过程,可以使用下面的命令: keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS \ >   --os-auth-url http://controller:35357/v2.0 token-get 上面的命令模拟了Identity Service的验证过程,会为用户分配一个登陆token。 在我执行OpenStack所提供命令的过程当中,收到了下面的错误提示信息: The request you have made requires authentication. (HTTP 401) (Request-ID: req-0550f2c3-9077-470b-95d8-ce4ff498ff8f) Error 401表明用户没有通过验证,意味着我忘记使用下面的命令创建管理员角色了。 keystone role-create --name admin 用户还可以使用下面这条命令检查用户具有哪些角色: keystone user-role-list --user admin --tenant admin 可以使用如下命令重设token环境变量: export OS_SERVICE_TOKEN=cde3aa151a5a7e048da9 export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0 为了修复这个问题,我为admin用户添加了admin角色: keystone user-role-add --user admin --tenant admin --role admin 还可以使用其他Keystone命令——比如list——在当前环境当中进行debug。这对于将要安装的下一个命令集同样适用: 创建OpenStack客户端环境脚本 如果不想使用token运行这些命令或者不想将它们放在命令行当中执行,那么可以配置环境变量。使用下面的命令创建两个脚本文件。 vi admin-openrc.sh export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_AUTH_URL=http://controller:35357/v2.0 vi demo-openrc.sh export OS_TENANT_NAME=demo export OS_USERNAME=demo export OS_PASSWORD=DEMO_PASS export OS_AUTH_URL=http://controller:5000/v2.0 之后执行如下命令: source admin-openrc.sh 添加image service(镜像服务) 参考这个文档安装Glance,之后使用下面的命令来创建数据库: keystone user-create --name glance --pass GLANCE_PASS 我收到了error 401错误提示信息,但是可以使用如下命令进行修复: export OS_SERVICE_TOKEN=cde3aa151a5a7e048da9 export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0 如果你同时使用shell和endpoint进行认证,那么将会收到下面的提示:“警告,可以使用token和终端来绕开认证(认证凭证已经被忽略。)” 继续输入如下所示的一系列命令: keystone service-create --name glance --type image \  --description "OpenStack Image Service" keystone endpoint-create \  --service-id $(keystone service-list | awk ‘/ image / {print $2}‘) \  --publicurl http://controller:9292 \  --internalurl http://controller:9292 \  --adminurl http://controller:9292 \  --region regionOne apt-get install glance python-glanceclient 这时当你参照OpenStack教程编辑“/etc/glance/glance-api.conf”文件的时候,还需要rem out: #sqlite_db = /var/lib/glance/glance.sqlite 使用下面这些命令来替换上面这条命令: [keystone_authtoken] #identity_uri = http://127.0.0.1:35357 #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% #revocation_cache_time = 10     auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 admin_tenant_name = service admin_user = glance admin_password = GLANCE_PASS 完成上面的操作之后,参考OpenStack教程继续进行编辑: vi /etc/glance/glance-registry.conf 之后输入下面的命令,省略sh –c: /bin/sh -c "glance-manage db_sync" glance 这时,我收到了如下的错误提示信息: CRITICAL glance [-] DBConnectionError: (OperationalError) (2003, "Can‘t connect to MySQL server on ‘controller‘ (111)") None None 这条信息表明,我没有输入正确格式的IP地址,而且没有执行如下命令: flavor = keystone in [paste_deploy] 验证操作 根据验证操作的说明,用户必须首先下载一个Linux镜像,之后使用如下命令将其上传到image service当中: glance image-create --name "cirros-0.3.3-x86_64" --file /tmp/images/cirros-0.3.3-x86_64-disk.img \  --disk-format qcow2 --container-format bare --is-public True --progress 执行这条命令之后我收到了如下错误信息: error 403

403 Forbidden

Access was denied to this resource.

To debug that, I ran: 之后我运行下面这条命令进行debug: glance image-list 但是程序又返回一个error 500错误提示,因此我重启了glance服务: service glance-registry restart     service glance-api restart 添加计算服务和部署控制器节点 我发现OpenStack教程当中的下一部分会让人感到十分困惑,因为通过apt-get获取的配置文件当中的全部内容都丢失了,为了解决这个问题,可以使用下面的内容进行替换: [DEFAULT] verbose = True 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 force_dhcp_release=True libvirt_use_virtio_for_bridges=True verbose=True ec2_private_dns_show_ip=True api_paste_config=/etc/nova/api-paste.ini enabled_apis=ec2,osapi_compute,metadata my_ip = 127.0.0.1 vncserver_listen = 127.0.0.1 vncserver_proxyclient_address = 127.0.0.1 rpc_backend = rabbit rabbit_host = controller rabbit_password = RABBIT_PASS auth_strategy = keystone [database] connection = mysql://nova:[email protected]/nova [keystone_authtoken] auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 admin_tenant_name = service admin_user = nova admin_password = NOVA_PASS [glance] host = controller 配置计算节点 到这个部分为止,用户已经控制器节点这个部分编辑过“/etc/nova/nova.conf"”文件了。现在唯一需要做的就是将下面这两条命令添加到“DEFAULT”区域当中: vnc_enabled = True novncproxy_base_url = http://controller:6080/vnc_auto.html 之前我们已经运行过下面这条命令: /bin/sh -c "nova-manage db sync" nova 但是现在还是应该再运行一次,虽然只是显示如下信息,没有什么实际作用: No handlers could be found for logger "oslo_config.cfg" 我们可以跳过Neutron Networking这一部分,因为我们只部署一台机器,不需要使用虚拟接口。 添加dashboard 参考OpenStack教程来安装Apache,并且在其中配置OpenStack dashboard;这样你就能够访问OpenStack命令行界面工具了。当你重启Apache之后应该会出现如下信息: AH00558: apache2: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName‘ directive globally to suppress this message 出现这种信息十分正常,可以直接忽略。 如果用户使用的是Ubuntu Server,那么可以安装Unity Ubuntu desktop来登陆dashboard。如果用户使用的是Ubuntu Desktop,那么虚拟机当中默认已经安装了Unity Ubuntu。通过将Ubuntu虚拟机作为桥接网络,用户还可以从另外一台虚拟机登陆Apache。 可以使用如下命令安装Unity Ubuntu: sudo apt-get install --no-install-recommends ubuntu-desktop 上面的操作并不会安装Firefox或者任何浏览器,所以用户需要在Ubuntu命令行当中添加一个用户,之后使用visudo为其赋予root访问权限,允许用户运行程序。 图A. 登陆dashborad查看hypervisor和硬件使用情况 之后用户就可以使用和“admin-openrc.sh”文件当中相同的用户ID和密码登陆dashboard了。

TechTarget中国原创内容,原文链接: http://www.searchvirtual.com.cn/showcontent_92815.htm
© TechTarget中国:http://www.techtarget.com.cn

时间: 2024-11-06 20:27:53

手把手教你如何逐步安装OpenStack的相关文章

手把手教你nginx基础安装配置

手把手教你nginx基础安装配置! 一.Nginx安装及简单配置: 安装环境和依赖的包: #yum groupinstall "developmenttools" "server platform development" # yum -yinstall pcre-devel #yum install openssl-devel 下载相关nginx源码包: #wgethttp://nginx.org/download/nginx-1.6.2.tar.gz 解压缩源码

手把手教你Ant的安装与配置

Ant是一个基于Java的构造工具,其主要作用就是生成可以执行的Java程序,掌握Ant的一些特性可以使项目更加专业化. 废话不多说,在这里可以下载到2014年8月最新Ant http://download.csdn.net/detail/u011731233/7733073 具体配置步骤: 1.将下载的二进制压缩包解压缩到固定位置 2.设置环境变量Ant_HOME指向解压缩的位置 3.确认JDK已经正确安装 4.在系统的Path环境变量中增加%Ant_HOME%\bin 在调用命令行窗口输入"

手把手教你下载及安装Genymotion模拟器

手把手教你下载及安装Genymotion模拟器:https://blog.csdn.net/qq_35890560/article/details/77993248?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task genymotion下载安装及使用:https://blog.csdn.net/qq_33745804/article/details/860

手把手教你Chrome浏览器安装Postman(含下载云盘链接)(转)

文章转自http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要介绍下安装过程. 本文使用的是解压文件直接进行安装.是比较快速有效的安装方式,当然也可以去goole的在线商店去直接安装,可是你要FQ才行. 压缩文件在文后! 第一步:把下载后的.crx扩展名的离线Chrome插件的文件扩展名改成.zip或者.rar(如果看不到Chrome插件的扩展名请百度搜索相关

理解 Redis(2) - 手把手教你理清 Redis 安装全过程

Redis 官网 https://redis.io/ 之前学习 Redis 学了好多次, 下载安装也都按照教程或官网文档弄过, 但是对于安装过程一直有点迷糊, 感觉稀里糊涂地就好了, 就可以用了. 这种迷糊得到的结果就是一旦遇到一点问题就会不知就里.今天学到了安装的过程, 记录一下, 顺便分享~~~ but, only for mac 系统. 首先, 安装的位置, 可以自定义, 你可以放在任何位置, 比如桌面上新建一个 redis 文件夹都是可以的. 但是根据常规, mac 系统里安装的程序都是

小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动

声明:很多仪器是没有驱动的.所以,具体问题具体分析. 另外声明:所谓的驱动,也就是封装好的底层的串口通信程序,也是程序而已,只不过别人帮你做成了子 VI,让自己容易用. 所以:不要弄混淆了概念. 国外的很多仪器,都是有现成的 LV 程序驱动的,这个时候,我们到网上搜搜就行了.如果你要做仪器驱动,你最好先到网上搜搜,看有木有现成的.有现成的,开发速度就好多啦.如果手边的仪器搜不到现成的驱动,那就只能自己写了. 下面讲解怎么安装现成的驱动.①,网站下载篇,前面这个帖子讲了.http://bbs.el

手把手教你在win10系统上安装、配置MySQL 5.7.19数据库

关于数据库这个东东,可能还有很多小伙伴没有接触过,这里简单说一下吧,数据库就是按照数据结构来组织.存储.管理数据的仓库,它可以高效的存储和管理数据,用途及其广泛,比如网站建设开发.软件应用开发等领域,我们常见的数据库有Access.Sqlserver.Mysql.Oracle等,今天亦是美网络小编给大家介绍的是mysql数据库,因为网络上80%以上的网站采用的是PHP+Mysql的搭配组合,想要学习网站建设开发,不了解Mysql数据库是说不过去的哦! 首先下载最新版MySQL数据库安装包,官网下

手把手教你Git安装

序:Mac与Linux中,Mac都预装了Git,各版本的Linux也都提供了Git的软件包.下面手把手教你Windows下的安装. 一.Git Windows GUI 下载地址 msysgit https://git-for-windows.github.io/ 二.

手把手教你安装Hbase,一次成功!

安装环境: OS: Centos 6.5 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1.       Jdk环境已安装:版本为1.6以上 2.       hadoop环境已安装:完全分布模式安装如下 http://blog.csdn.net/lichangzai/article/details/8206834 3.       hbase版本选择 Hbase 版本必需与 Hadoop版本匹配,否则会安装失败