基于ansible的openstack私有云平台自动化部署研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计开发
本栏目责任编辑:谢媛媛
基于Ansible 的OpenStack 私有云平台自动化部署研究与实现
孙雅妮
(四川信息职业技术学院,四川广元628040)
摘要:私有云是企业实现IT 基础设施资源共享最有效的途径,OpenStack 可以为企业提供一个私有云管理平台,高效可靠
的提供IaaS 服务。

部署OpenStack 私有云平台相对比较复杂,文章提出一种自动化部署OpenStack 的解决方案。

基于ansi⁃ble 编写自动化部署文件,可以快速实现OpenStack 私有云平台的部署,显著降低OpenStack 部署的复杂度及时间成本。

关键词:自动化部署;ansible ;openstack ;私有云平台中图分类号:TP393
文献标识码:A
文章编号:1009-3044(2019)28-0087-03
开放科学(资源服务)标识码(OSID ):
1概述
近年来,私有云已经逐渐成为云计算的主要模式和重要的发展方向。

私有云(Private Clouds)是云计算基础设施,实现机构或企业内各部门的IT 资源共享。

通过私有云,企业可以提高IT 基础设施的有效利用率,从而降低了企业对于保护用户数据所需的成本,潜在地提高了企业基础业务的优势。

私有云既具有传统IT 可控性、高可用性、高安全性等特点,又具有公有云的资源共享,弹性资源分配,同时还提供对数据、安全性和服务质量的有效控制和保障。

2OpenStack 简介
OpenStack 是一个旨在提供私有云管理平台的开源项目,侧重提供基础设施即服务(IaaS ),让任何人都可以自行建立和提供云端计算服务。

OpenStack 部署云环境非常灵活,可以根据需求来搭建基础设施,同时也可以灵活的扩充集群规模。

所以开源、可扩展性、管理灵活是OpenStack 的三大主要特点。

OpenStack 是由几个主要的组件组合起来完成具体的工作,每个组件由单独的项目构成,提供特定的服务。

主要的组件有:Keystone (身份认证服务)、Glance (镜像服务)、Nova (计算服务)、Neutron (网络服务)、Horizon (UI 服务)、Cinder (块存储服务)、Swift (对象存储服务)、Heat (编排服务)。

OpenStack 架构如图1所示。

图1OpenStack 架构图
值得注意的是OpenStack 架构并没有实现虚拟化服务,而是利用成熟的Libvirt 模块的虚拟化技术实现了整体的云平台服务。

Libvirt 负责连接OpenStack 平台和处于底层的虚拟化管理软件,实现对平台虚拟资源的操作,是OpenStack 中管理虚拟资源的重要工具。

3自动化部署程序的设计与实现
3.1ANSIBLE 简介
Ansible 是当前流行的自动化运维工具,由Python 语言实现,能够实现批量程序部署、批量系统配置、批量运行命令等功能。

Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行、基于推送(Push)的运行方式,通过Core Modules (核心模块)、Custom Modules (自定义模块)、Plugins 、Playbooks (剧本)、Host Inventory (主机清单)来实现所需功能。

论文利用ansible 编写自动化部署脚本。

收稿日期:2019-07-01基金项目:论文系2018年四川信息职业技术学院课题项目“基于云计算应用仓库的全栈实验平台构建(2018KC13)”阶段性成果
之一
作者简介:孙雅妮(1980—),女,陕西渭南人,副教授,硕士,研究方向为云计算技术与应用。

87
本栏目责任编辑:谢媛媛
软件设计开发Computer Knowledge and Technology 电脑知识与技术第15卷第28期(2019年10月)
3.2自动化部署ansible 脚本的实现
自动化部署ansible 脚本的实现主要需要编写几个文件。

下文以一个controller 节点,一个computer 节点,共两个节点搭建的openstack 私有云平台为例进行介绍。

1)ansible 系统文件
在控制节点安装Ansible 组件后,主机/etc 目录会生成ansi⁃ble 文件夹,内部包含所有的ansible 的所必须的配置文件和环境变量文件。

[root@controller~]#tree /etc/ansible//etc/ansible/
#Ansible 主文件夹
├──ansible.cfg#Ansible 配置文件
├──hosts#Ansible 执行服务安装远程主机名称└──roles#Ansible 执行的命令或方法存放目录1directory,2files
2)ansible 基础文件配置
创建openstack_base 目录。

此目录创建所有使用到的数据和变量信息,此目录的部分文件和目录如下所示。

[root@controller~]#tree /etc/ansible/openstack_base/├──deploy.yml ├──group_vars
│└──all ├──library └──roles ├──config_basic │├──tasks ││└──main.yml │└──templates ……
34directories,23files
在上述文件中所有的默认环境参数则由group_vars 目录内all 文件来定义,playbooks 中的一个操作由roles 目录内的执行方法来执行,每一个roles 目录内的方法均分为tasks 和tem⁃plates 两个目录,tasks 目录为该方法执行的所有脚本,templates 目录为此方法所有的模板文件或配置文件。

3)all 文件编写
首先需要填写环境参数文件group_vars 目录内all 文件如下:
[root@controller~]#vim /etc/ansible/openstack_base/group_vars/all HOST_IP:XXX.XXX.XXX.XXX#控制节点IP 地址HOST_NAME:controller
#控制节点主机名
HOST_IP_NODE:XXX.XXX.XXX.XXX#计算节点IP 地址HOST_NAME_NODE:compute
#计算节点主机名
RABBIT_USER:openstack#消息队列用户RABBIT_PASS:password#用户密码DB_PASS:password
#数据库密码DOMAIN_NAME:default#域名称ADMIN_PASS:password #admin 用户密码
DEMO_PASS:password
#域demo 密码KEYSTONE_DBPASS:password #keystone 数据库密码
GLANCE_DBPASS:password #glance 数据库密码
GLANCE_PASS:password #glance 密码NOVA_DBPASS:password #nova 数据库密码NOVA_PASS:password #nova 密码
NEUTRON_DBPASS:password #neutron 数据库密码NEUTRON_PASS:password #neutron 密码
METADATA_SECRET:password
#元数据密码
INTERFACE_NAME:ens34#网卡名称
4)deploy.yml 文件编写
编写统一的脚本把所有的功能模块合成一个整体,在roles 同级目录编写deploy.yml 文件。

如下所示。

[root@controller~]#vim /etc/ansible/openstack_base/deploy.yml -hosts:controller remote_user:root roles:-config_basic -mysql -rabbit
-keystone -glance -nova_controller -neutron_controller -dashboard
-hosts:compute remote_user:root roles:
-config_basic -ntpclient -nova_compute
-neutron_compute
4基于HADOOP 的企业大数据平台自动化部署测试
4.1测试环境准备
本次测试以yum 方式安装Ansible 环境,采用双节点自动
化部署OpenStack ,源采用的是阿里源。

ip 地址和主机名规划表如表1所示。

表1IP 地址和主机名规划表
主机IP 地址
192.168.204.129192.168.204.131内存大小
8GB 8GB CPU 个数
4个4个磁盘大小
40G 40G 操作系统
Centos7.2Centos7.2节点选择
Controller
Compute
4.2ansible 环境准备
Ansible 环境准备具体如下:
[root@localhost ~]#hostnamectl set-hostname controller #更改控制节点主机名为controller [root@localhost ~]#hostnamectl set-hostname compute#更改计算节点主机名为compute ##########以下操作在两节点同时进行,以Controller 为例#########[root@controller~]#systemctl stop firewalld [root@controller~]#sed -i 's/SELINUX=.*/SELINUX=disabled/g'/etc/selinux/config [root@controller~]#setenforce 0[root@controller ~]#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #备份yum 源
[root@controller ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo/re⁃po/Centos-7.repo#下载阿里源
[root@controller ~]#yum clean all #清除本地缓存[root@controller ~]#yum makecache#生成源缓存[root@controller ~]#echo -e "192.168.204.129controller \n192.168.204.131compute ">>/etc/hosts#配置域名解析
[root@controller ~]#ping -c4controller &&ping -c4compute #测试主机连通性[root@controller ~]#yum install ansible -y #在控制节点安装ansible [root@controller ~]#ansible --version #查看ansible 版本
88
软件设计开发
本栏目责任编辑:谢媛媛Computer Knowledge and Technology 电脑知识与技术
第15卷第28期(2019年10月)
4.3基于ansible 的OpenStack 私有云平台自动化部署
1)Ansible 远程主机配置在Ansible 的目录树中,/etc/ansible/hosts 文件为ansible 执行时读取的主机文件,内部可以通过主机组来区分不同部分的功能和作用也可以通过主机组来执行的不同的命令。

这里的主机之间的关系是通过inventory 文件来进行维持和最终的配置,此关系最终的维持配置文件就是下面要配置的文件。

在这里将Ansible 主机分成一个主机组,另外一个主机分成一个主机组,如下所示:
[root@controller~]#vim /etc/ansible/hosts [controller]192.168.204.129[compute]192.168.204.131
2)修改all 文件。

将all 文件中的IP 地址修改为表1中的主机IP 地址。

3)执行ansible 脚本
一切配置完成后开始执行ansible 脚本,执行命令如下。

[root@controller~]#ansible-playbook /etc/ansible/openstack_base/deploy.yml
4)查看执行结果
等待执行完成后可以通过web 界面查看最后的安装效果,登陆http://192.168.204.129/dashboard ,如图2
所示。

图2OpenStack 登录界面图
使用默认用户名admin ,默认密码passwdord 登录成功后,
在主机聚合选项中可以看到当前云平台的节点。

如图3
所示。

图3OpenStack 主机聚合
可以看出双节点的OpenStack 私有云平台自动化部署成功。

5总结
OpenStack 私有云平台被企业广泛应用,但其部署过程复杂、耗时长、技术要求高。

论文以双节点的OpenStack 私有云部署为研究对象,提出使用ansible 自动化部署工具来改善手动部署的缺点,编写了ansible 自动化部署文件,并在双节点集群上进行了自动化部署测试。

测试结果显示,基于ansible 的自动化部署将部署时间从5~6小时缩减至10~20分钟,大大降低了OpenStack 私有云部署的时间成本。

参考文献:
[1]孙春雨.基于Linux 集群的Ansible 部署与自动化管理研究[J].
中国管理信息化,2019,22(9):165-166.
[2]陆冰芳,粟邈如.基于Ansible 的web 形式自动化运维系统的研究与设计[J].数字技术与应用,2017(12):151-152.
[3]付杨洋,刘音,严紫薇,等.私有云计算平台的设计[J].电子技术与软件工程,2018(12):67.
[4]杨秀芳.OpenStack 在学校教学私有云搭建中的应用[J].电脑编程技巧与维护,2019(5):97-98,110.
[5]姚捃,严南.OpenStack 高可用分布式存储方案设计与实现[J].计算机技术与发展,2019(2):35-38.
【通联编辑:王力】
89。

相关文档
最新文档