通过devstack自动部署Openstack icehouse 版本

问题导读
1、脚本自动化部署原理是什么?
2、重启虚拟机后,登录 Dashboard 时出现错误,如何解决?
3、stack.sh 执行之 pip-1.4.1 安装失败,怎么办?

本篇主要阐述通过DeveStack 去部署Openstack(icehouse),对大多数来说安装部署Openstack 来说是个痛苦的过程,尤其是 OpenStack和它依赖的一些组件在快速发展中,经常出现这个版本组件对不上那个版本 dashboard  等 情况。如果只是 看看或者初期玩玩 OpenStack的话,使用 DevStack也是个不错的办法。 DevStack采用了自动化源码部署的方式,适用于开发环境的部署和Openstack 开发者, 单节点,小环境;这里采用的操作系统为Ubuntu14.04

1. 自动化部署原理 :

1.1自动执行安装脚本

将安装命令脚本化

1.2自动生成配置文件

生成正确的配置参数

1.3自动解决依赖关系

安装依赖的软件包

服务的安装顺序

2.Openstack 部署详解

2.1更新系统及安装git软件包

  1. $sudo apt-get update
  2. $sudo apt-get upgrade
  3. $sudo apt-get dist#upgrade
  4. $sudo apt-get install git

复制代码

2.2 devstack 下载

  1. $git branch -a   #显示本地分支
  2. $git checkout -b icehouse origin/stable/icehouse  #切换到指定icehouse分支或标签
  3. $git clone https://github.com/openstack-dev/devstack.git  #克隆devstack的Git代码仓库
  4. $cd ./devstack

复制代码

2.3 devstack 下的一些文件描述

  1. stack.sh #自动化部署的入口;判断是否存在localrc文件; 否,进入交互模式; 是,进入配置模式(如果需要输入输入stack.sh需要的参数,如:数据库的密码、Rabbit MQ的密码、Service TOKEN 等)
  2. localrc  #配置文件;传入stack.sh的参数;nova部署在哪个节点,用户名密码是什么
  3. openrc   #环境变量脚本;在执行openstack命令时要导入一些环境变量 如:export OS_USERNAME = admin
  4. unstack.sh #卸载脚本
  5. lib          #每个服务的自动化安装脚本;通常存放nova,swift等自动化安装脚本,手动安装时执行的所有命令;每一个openstack服务对应一个文件(以下对相关文件作了简要说明)
  6. apache (Web 服务)
  7. Swift  (对象存储的组件)
  8. Glance  (镜像管理)
  9. Horizon (提供了一个模块化的webbased用户界面)
  10. heat(应用的自动化部署AWS cloudformation)
  11. ceilometer(监控和计费)
  12. sahara(BigData-as-a-Service #BDaaS,将hadoop部署在openstack的虚拟机上)
  13. ironic(PXE+IPMI,物理节点的自动化部署)
  14. trove(Database-as-a-service,将数据库部署在openstack的虚拟机上)
  15. tempest(openstack单元测试框架)
  16. opendaylight(开源的sdn控制器)
  17. ldap(轻量型目录访问协议,与keystone整合,实现多级用户的鉴权)
  18. database、databases(postgresql/mysql,默认将选择mysql)
  19. nova、nova_plugins  (可以说是一套虚拟化管理程序,还可以管理网络和存储;下面是支持的一些虚拟化管理程序)
  20. functions-libvirt  hypervisor-baremetal  hypervisor-fake  hypervisor-ironic  hypervisor-libvirt  hypervisor-openvz  hypervisor-vsphere  hypervisor-xenserver
  21. neutron、neutron_plugins、neutron_thirdparty(网络管理的组件,neutron未来将取代Nova相关网络相关内容)
  22. cinder、cinder_plugins (存储管理的组件。Cinder存储管理主要是指虚拟机的存储管理)

复制代码

2.4  localrc配置文件详解

  1. ##########################Gloable configuration########################
  2. DATABASE_PASSWORD=redhat   #数据库的密码
  3. ADMIN_PASSWORD=redhat      #admin用户的密码
  4. SERVICE_PASSWORD=redhat    #每个service对应用户的密码
  5. SERVICE_TOKEN=redhat       #每个service的TOKEN
  6. RABBIT_PASSWORD=redhat     #Message MQ的密码
  7. # Reclone each time
  8. #RECLONE=true
  9. # Python enviroments
  10. #OFFLINE=true
  11. ## For Keystone
  12. KEYSTONE_TOKEN_FORMAT=PKI
  13. ## For Swift
  14. #SWIFT_REPLICAS=1
  15. #SWIFT_HASH=011688b44136573e209e
  16. ##################openstack和devstack的日志文件的存放位置######################
  17. DEST=/home/stack
  18. LOGFILE=$DEST/logs/stack.sh.log
  19. VERBOSE=True
  20. LOG_COLOR=True
  21. SCREEN_LOGDIR=$DEST/logs
  22. # ################################服务配置##################################
  23. # Pre#requisite
  24. ENABLED_SERVICES=rabbit,mysql,key
  25. #############################消息队列配置###################################
  26. ## If you want ZeroMQ instead of RabbitMQ (don‘t forget to un-declare ‘rabbit‘ from the pre#requesite)
  27. #ENABLED_SERVICES+=,-rabbit,-qpid,zeromq
  28. ## If you want Qpid instead of RabbitMQ (don‘t forget to un-declare ‘rabbit‘ from the pre#requesite)
  29. #ENABLED_SERVICES+=,-rabbit,-zeromq,qpid
  30. ######################每个服务单独配置代码下载地址#########################
  31. # Horizon (Dashboard UI) - (always use the trunk)
  32. ENABLED_SERVICES+=,horizon
  33. #HORIZON_REPO=https://github.com/openstack/horizon
  34. #HORIZON_BRANCH=master
  35. ######################NOVA服务配置#######################################
  36. # Nova - Compute Service
  37. ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-novnc,n-cauth
  38. IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros#0.3.0#x86_64#disk.img"
  39. ## Nova Cells
  40. ENABLED_SERVICES+=,n-cell
  41. ###########################Glance服务配置###############################
  42. # Glance - Image Service
  43. ENABLED_SERVICES+=,g-api,g-reg
  44. #####################swift服务配置##############################
  45. # Swift - Object Storage
  46. #ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
  47. #####################网络服务配置:负载均衡、VPN和防火墙服务#################
  48. # Neutron - Networking Service
  49. # If Neutron is not declared the old good nova-network will be used
  50. ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
  51. #VIF_PLUGGING_IS_FATAL=False
  52. #VIF_PLUGGING_TIMEOUT=10
  53. ## Neutron - Load Balancing
  54. #ENABLED_SERVICES+=,q-lbaas
  55. ## Neutron - VPN as a Service
  56. #ENABLED_SERVICES+=,q-vpn
  57. ## Neutron - Firewall as a Service
  58. #ENABLED_SERVICES+=,q-fwaas
  59. # VXLAN tunnel configuration
  60. Q_PLUGIN=ml2
  61. Q_ML2_TENANT_NETWORK_TYPE=vxlan
  62. ####################cinder服务配置##############################
  63. # Cinder - Block Device Service
  64. ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch
  65. ####################heat服务配置################################
  66. # Heat - Orchestration Service
  67. #ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
  68. #IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2"
  69. ##################Ceilometer服务配置############################
  70. # Ceilometer - Metering Service (metering + alarming)
  71. #CEILOMETER_BACKEND=mysql
  72. #ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api
  73. #ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval
  74. ##############keystone和swift采用apache作为web前端配置###########
  75. # Apache fronted for WSGI
  76. APACHE_ENABLED_SERVICES+=keystone
  77. #,swift
  78. #GIT_BASE=http://review.thstack.com

复制代码

2.5 进行部署 (采用非交互模式)

  1. $ cp  localrc /home/junbj/devstack/
  2. $./stack.sh     等待安装部署即可;

复制代码

2.6  图形界面登录
访问: Http:// IP Address  即可

2.7  创建虚拟机通过镜像 cirros

3. 部署过程遇到的问题与解决方法

3.1 重新登录提示认证失败

重启虚拟机后,登录 Dashboard 时出现 “An error occurred authenticating. Please try again later” 的错误, 如上图 .

  1. $cd /devstack ; sh rejoin-stack.sh  (执行devstack目录下的rejoin-stack.sh脚本即可可以解决)

复制代码

3.2 pip 源连接失败,导致 pip 安装软件包失败

  1. $mkdir ~/.pip
  2. $vim ~/.pip/pip.conf
  3. -----------------pip.conf-------------------------------------
  4. [global]
  5. index-url = http://pypi.douban.com/simple/

复制代码

3.3 /opt/stack 目录权限问题

  1. $sudo chmod 777 /opt/stack -R

复制代码

3.4 devstack 下载失败

  1. fatal: unable to access ‘https://github.com/openstack-dev/devstack/‘: Could not resolve host: github.com

复制代码

检查物理机的 /etc/resov.conf 文件中是否有正确的 nameserver.

3.5 stack.sh 执行失败 1 : pip-1.4.1 安装失败

  1. pkg_resources.DistributionNotFound: pip==1.4.1

复制代码

通过 git log 查看 devstack 代码更新记录,恢复到之前的某个版本

3.6 stack.sh 执行失败 2 : pip-1.4.1 安装失败

  1. $git reset --hard d4fe50feb18133e39351af7becb5ff84c8d4f479
  2. --------------------------------------END----------------------------------------------

复制代码

时间: 2024-10-06 23:58:58

通过devstack自动部署Openstack icehouse 版本的相关文章

devstack自动部署openstack之localrc文件及遇到的问题解决

做完前期准备后,在devstack目录下创建localrc文件,最好不要直接上传,然后将下面的内容贴进去即可,下面是我转载的,以下有出处,但是部署期间有几个问题,我也列出来了. # Misc DATABASE_PASSWORD=123456ADMIN_PASSWORD=123456SERVICE_PASSWORD=123456SERVICE_TOKEN=123456RABBIT_PASSWORD=123456 # Reclone each timeRECLONE=yes ## For Keyst

openstack icehouse版本glance上传镜像

openstack icehouse 版本glance上传镜像的命令是: glance image-create --name "win2k8_x86_100GB" --disk-format qcow2 --container-format bare --is-public True --progress < /home/XXX.qcow2

saltstack 自动化部署openstack queens 版本

前面写了使用手动部署openstack的queens版本,但是太过繁琐,还容易出错,现在有时间写了一个使用saltstack部署openstack queens版本.环境:saltmaster 192.168.147.166 saltstack version 2017.7 redhat6.4controller 192.168.147.180 saltstack version 2017.7 centos7.2neutron 192.168.147.182 saltstack version

Devstack快速部署OpenStack Mitaka用户指南 All in One(by qiqishuang csdn)

本篇主要阐述通过DeveStack 去部署Openstack(mitaka),对大多数来说安装部署Openstack 来说是个痛苦的过程,尤其是 OpenStack和它依赖的一些组件在快速发展中,经常出现这个版本组件对不上那个版本 dashboard等情况.如果只是看看或者初期玩玩 OpenStack的话,使用DevStack也是个不错的办法.DevStack采用了自动化源码部署的方式,适用于开发环境的部署和Openstack开发者,单节点,小环境:这里采用的操作系统为Ubuntu14.04.

一步一步跟着官方文档安装部署Openstack(icehouse)二

继安装部署OpenStack(一) 三.配置身份识别服务(keystone)控制节点 身份识别服务执行以下功能: 用户管理,追踪用户和他们的权限 作为其他服务的目录,提供了一个可用服务和他们API端点的目录 为了明白身份识别服务,你要明白以下的概念: 用户(User)           一串数字代表使用openstackyun服务的人.系统.服务,身份识别服务验证用户进来的请求,通过之后,会分配其令牌,用户可以凭借令牌访问他所在的容器 证明材料(Credentials)            

一步一步跟着官方文档安装部署Openstack(icehouse)三

继安装部署OpenStack(二) 四.配置image(镜像)服务 镜像服务包含以下2个组件 glance-api:接受对镜像发现.检索.存储的API调用 glance-registry:存储,处理,检索镜像的metadate(源数据:大小.类型等) 安装镜像服务(控制节点) # yum install openstack-glance python-glanceclient 更新2个组件的配置文件中的数据库连接 # openstack-config --set /etc/glance/glan

一步一步跟着官方文档安装部署Openstack(icehouse)四

继安装部署OpenStack三 五.配置compute(计算)服务 compute服务简介 compute 服务是云计算的控制结构,它是Iaas(基础架构即服务)的主要部分,他通过下载image运行虚拟机实例 compute由以下组件组成 API nova-api                      接受和相应用户的API调用 nova-api-metadata     接受虚拟机实例的源数据 Compute core nova-compute              通过hypervi

脚本化自动部署openstack

为减少大家在部署openstack上花费的时间,结合官网教程和网上的各类安装指南,博主给出了一套实用的脚本来简化安装. 文件目录为: config.ini:                       全局配置文件 setupControllerNode.sh:安装控制节点上的组件 addNetworkNode.sh:          安装网络节点上的组件,可以部署多个网络节点提高可用性 addComputeNode.sh:          安装计算节点上的组件 network-create

openstack部署安装(Icehouse版本)-基本环境要求

摘要 openstack是有几个关键的组建组成,其中包括:Compute(nova). Identity Service(keystone). Networking(neutron). Image Service(glance).Dashboard (Horizon).Block Storage(cinder).Object Storage(Swift).Telemetry (Ceilometer).Database service (Trove).Orchestration (Heat).Da