此次是基于devstack进行自动化部署,后续会经过解析这个部署脚本的源代码的形式,学习openstack的部署,同时一步步阅读openstack其余服务的源码,好比keystone、nvoa等,一步步深刻。
html
事实上手动部署和自动化部署在命令上没啥区别,若是对自动化部署软件的源码熟悉,其实收获更大mysql
自动化部署原理:git
自动执行安装脚本:将安装命令脚本化—>github
自动生成配置文件:生成正确的配置参数—>sql
自动解决依赖关系:安装依赖的软件包&服务的安装顺序数据库
(理解自动化部署的思路,以便后续本身编写自动化部署脚本)分析软件的架构特色ubuntu
devstack下载swift
devstack经过git来实现代码的版本管理bash
注:ubuntu下git安装: sudo apt-get install git 服务器
git clone https://github.com/openstack-dev/devstack.git代理问题(proxy):
git通常经过两种协议实现传输:http(https)和ssh
有些公司会经过代理服务器上网,代理服务器一般只会容许http协议
注:具体参见《ubuntu git http proxy配置 》
我这里是建议使用在一个彻底干净的环境中进行部署,安装的时候,我在ubuntu14中部署,而后时区设置在usa,以前设置在重庆留下了蛮多坑的,好比上面设置代理之类的,后面的话,改为usa顺利了一些。
分析devstck的文件结构
stack.sh à自动化部署的入口 à .exe文件
unstack.sh à 卸载脚本
localrc à配置文件 à 传入stack.sh的参数(这个localrc文件在这~github上面是没有的
localrc文件下载连接http://down.51cto.com/data/2339580
nova部署在哪一个节点,用户名密码是啥
openrc à 环境变量脚本
在执行openstack命令时要导入一些环境变量
export OS_USERNAME = admin
lib à每一个服务的自动化安装脚本
nova,swift等自动化安装脚本
手动安装时执行的全部命令
每个openstack服务对应一个文件
分别对应的是各类服务的部署脚本,介绍一下其中一部分服务
database、databases:openstack数据库服务的数据库服务的部署脚本
postgresql/mysql默认使用mysql
nova、nova_plugins
functions-libvirt hypervisor-baremetal hypervisor-fake hypervisor-ironic hypervisor-libvirt hypervisor-openvz hypervisor-vsphere hypervisor-xenserver
tempest单元测试框架
devserack的执行原理
先经过stack.sh判断localrc是否存在,若是是则进入配置模式,不然进行交互模式交互模式是须要根据自身需求向stack.sh输入相关的服务指令,如mysql的密码、roken参数等信息配置模式的话,就是根据localrc配置好的参数进行自动化安装,并部署,下面介绍localrc的指令信息
DATABASE_PASSWORD=123456 配置数据库的密码,默认是mysql,若是想安装postgresql则须要修改DATABASE_TYPE=postgresql ADMIN_PASSWORD=123456 管理员密码 SERVICE_PASSWORD=123456 SERVICE_TOKEN=123456 token信息,每次请求都要带着不然会被拒绝 RABBIT_PASSWORD=123456 rabbit MQ密码 reclone=true 这个配置以后会从新下载各个服务的源码,若是检测到哪一个服务的源码不对的话,将会从新下载
接着是配置devstack和openstack日志文件的存储位置
DEST=/home/stack LOGFILE=$DEST/logs/stack.sh.log VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=$DEST/logs
须要部署的服务直接写在这儿就行,而后我在部署的时候稍微修改了一下文件,目的是增长一些服务以便后续的学习,固然了,读者能够自便修改相关参数
VIF_PLUGGING_IS_FATAL=False VIF_PLUGGING_TIMEOUT=10
上面两个是用来解决openstack部署vxlan时的一个bug
以上是我建议的须要的修改的一些配置,仅供参考
详细的部署教程看下一篇