OpenStack脚本安装

来自CloudWiki
跳转至: 导航搜索

名词解释

ntp(时间服务器),mariadb(关系数据库),rabbitmq(qpid消息服务),mongodb(非结构化数据库的支持ceilometor),memcache(非结构化缓存数据库),httpd(提供http的API服务)

ntp服务

(Network Time Protocol)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)有两种时间服务器:chrony和ntp,chrony比ntp精度更高

mariadb

  • mariadb: mysql创始人创立的另一个版本,是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品

rabbimq

  • rabbitmq:是一种应用程序对应用程序的通信方法,MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

mongodb

  • mongodb:MongoDB是一个基于分布式文件存储的数据库, 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。mongodb这里主要给openstack的ceilometor组件提供服务。

mamcache

  • mamcache : 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。

httpd

  • httpd:是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程。在openstack中httpd的用途有二::1.keystone python wsgi httpd,python+django:dashboard)

准备工作

OpenStack环境设计和系统准备

基础服务构建

执行iaas-pre-host.sh

控制节点

[root@controller yum.repos.d]# cd  /usr/local/bin
[root@controller bin]# ls
iaas-install-alarm.sh                  iaas-install-neutron-compute-vlan.sh
iaas-install-ceilometer-compute.sh     iaas-install-neutron-controller-flat.sh
iaas-install-ceilometer-controller.sh  iaas-install-neutron-controller-gre.sh
iaas-install-cinder-compute.sh         iaas-install-neutron-controller.sh
iaas-install-cinder-controller.sh      iaas-install-neutron-controller-vlan.sh
iaas-install-dashboard.sh              iaas-install-nova-compute.sh
iaas-install-glance.sh                 iaas-install-nova-controller.sh
iaas-install-heat.sh                   iaas-install-swift-compute.sh
iaas-install-keystone.sh               iaas-install-swift-controller.sh
iaas-install-mysql.sh                  iaas-install-trove.sh
iaas-install-neutron-compute-flat.sh   iaas-pre-host.sh
iaas-install-neutron-compute-gre.sh    iaas-uninstall-all.sh
iaas-install-neutron-compute.sh


编辑iaas-pre-host.sh文件,在yum upgrade -y后面添加

rm -rf /etc/yum.repos.d/Cent*

保存退出,执行iaas-pre-host.sh


报错:

Error: Package: glibc-common-2.17-106.el7_2.8.x86_64 (iaas)
           Requires: glibc = 2.17-106.el7_2.8
           Removing: glibc-2.17-105.el7.x86_64 (@anaconda)
               glibc = 2.17-105.el7
           Updated By: glibc-2.17-157.el7.x86_64 (iaas)
               glibc = 2.17-157.el7
           Available: glibc-2.17-106.el7_2.8.x86_64 (iaas)
               glibc = 2.17-106.el7_2.8
Error: Package: glibc-2.17-157.el7.x86_64 (iaas)
           Requires: glibc-common = 2.17-157.el7
           Removing: glibc-common-2.17-105.el7.x86_64 (@anaconda)
               glibc-common = 2.17-105.el7
           Updated By: glibc-common-2.17-106.el7_2.8.x86_64 (iaas)
               glibc-common = 2.17-106.el7_2.8
 You could try using --skip-broken to work around the problem

重新启动

重启之后挂载失效了,重新配一下挂载:

[root@controller bin]# mount -o loop /dev/sr1 /mnt/centos
[root@controller bin]# ls /mnt/centos
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@controller bin]# mount -o loop /dev/sr0 /mnt/iaas
[root@controller bin]# ls /mnt/iaas
iaas-repo  images

计算节点

[root@compute yum.repos.d]# scp 192.168.200.10:/usr/local/bin/iaas-pre-host.sh /usr/local/bin/

执行iaas-pre-host.sh

重新启动


检查各项配置

控制、计算节点:

执行以下命令:

  82  hostname   (检查:controller,compute)
  83  systemctl status network iptables firewalld  (检查:network开,iptables,firewalld关)
  84  getenforce  (输出应为permissive)
      yum clean all
  85  yum repolist  (正常输出)
  86  ping compute   (能ping通)
  87  ping controller  (能ping通)

network状态应为active,iptables和firewalld 应为inactive

如果iptables 现在处于开启状态(active),使用如下命令关闭:

[root@compute ~]# systemctl stop iptables

[root@compute ~]# systemctl disable iptables

安装mysql

Controller节点: cd /usr/local/bin

执行脚本iaas-install-mysql.sh进行安装


compute节点:

  1. yum -y install MySQL-python

基础模块构建

自底层向上层安装Openstack组件

Keystone:认证服务1
Glance:镜像服务2
Nova:计算服务3
Neutron:网络服务4
Horizon:仪表盘服务5
Cinder:块存储服务
Swift:对象存储服务
Ceilometor:监控服务(效率低)
Heat:编排服务
Aodh:告警服务
Trove:数据库服务
Zun:容器管理服务


注意:swift必须先搭controller再搭compute

trove安装需要很多基础设施,不要随意安装。

安装Keystone认证服务

Controller节点

安装Glance镜像服务

Controller 节点

安装Nova计算服务

Controller节点

  • 执行脚本iaas-install-nova-controller.sh进行安装


Compute节点

执行脚本iaas-install-nova-compute.sh进行安装


验证:Nova组件验证(控制节点上操作)

安装Neutron网络服务

Controller节点:

执行脚本iaas-install-neutron-controller.sh进行安装

Compute节点:

执行脚本iaas-install-neutron-compute.sh进行安装

验证操作:

安装dashboard服务

Controller

执行脚本iaas-install-dashboard.sh进行安装

访问dashboard服务

打开浏览器访问Dashboard

http://controller(或本机内网ip)/dashboard

注:检查防火墙规则,确保允许http服务相关端口通行,或者关闭防火墙。

dashboard:

demo admin 000000

Openstack9-33.png

检查是否部署成功

source /etc/keystone/admin-openrc.sh
openstack help
openstack-status 能够检查openstack所有服务的状态

参考文档:

https://www.cnblogs.com/horizonli/p/6039975.html