【Linux】搭建Openstack(一)

搭建openstack平台的总结

Openstack是一个开源的云计算平台,可以提供基础设施即服务(IaaS)的功能,让用户可以在自己的数据中心部署和管理虚拟化的资源。

Openstack是当今最具影响力的云计算管理工具——通过命令或者基于web的可视化Iaas云端的资源池(服务器、存储和网络)云计算是通过虚拟化(kvm)技术去实现的,它是一种按量付费的模式。

本文主要介绍了在CentOS-7-x86_64-DVD-1708.iso系统上,使用VM搭建Openstack-M版的双节点环境的过程,以及在搭建过程中可能会遇到的一些问题和解决方案。双节点环境包括一个控制节点(controller)和一个计算节点(compute),控制节点负责提供Openstack的各种服务和管理功能,计算节点负责提供计算资源和运行虚拟机。

一、基础环境配置

1.基础环境

  • (下图的要求可根据自身情况进行更改)虚拟机规划
节点控制节点计算节点
主机名controllercompute
内存大于3G大于10G
IP10.0.0.1110.0.0.31
作用管理运行虚拟机
cpu打开虚拟化打开虚拟化
磁盘空间50G50G

2.网络配置

为控制节点(10.0.0.11)和计算节点(10.0.0.31)分配固定的IP地址,并在两个节点上配置好主机名和hosts文件解析(将主机名与ip地址相关联),使得两个节点可以互相通信。同时,配置好网关和DNS服务器

  • 分别修改主机名
# hostnamectl set-hostname controller
# hostnamectl set-hostname compute
  • DNS域名解析,修改两个节点的/etc/hosts文件,这个文件中记录这主机名称和IP地址的对应表,增加如下内容:
# vim /etc/hosts

10.0.0.11 controller
10.0.0.31 compute
  • 如果两机相同进行ping controller,ping compute,可拼通即成功,这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。

在这里插入图片描述
在这里插入图片描述

3.配置yum 源

挂载本地镜像,并设置开启自启动挂载本地镜像源,再配置openstack包(可以通过,拉取软件包,或者上传本地文件),在所有节点中配置本地yum源,在本地挂载mnt并设置文件所在处及openstack的文件所在处,通过yum repolist 检测本地镜像是否有local和openstack。

配置openstack包,在评论区获取,通过远程连接上传

解压到/opt/目录下
# tar -xzvf openstack_rpm.tar.gz -C /opt/

配置本地yum源

# vim /etc/yum.repos.d/local.repo
[local]
name=local
gpgcheck=0
baseurl=file:///mnt

[openstack]
name=openstack
gpgcheck=0
baseurl=file:///opt/repo

进行检测,repo id 出现了local和openstack
# yum repolist

4.关闭安全服务

关闭防火墙和selinux(安全增强型)通过关闭输入命令setenforce 0是临时关闭,重启系统后还会开启。永久关闭则是输入输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

关闭防火墙
# systemctl stop firewalld.service;systemctl disable firewalld.service
临时关闭selinux
# setenforce 0
也可以采取永久关闭

5.克隆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

克隆完成后,修改克隆机的IP(10.0.0.31)和主机名(compute),作为区别,并将openstack_rpm.tar.gz文件复制给计算节点。可以仔细阅读步骤2和3。

# hostnamectl set-hostname compute
# scp -r /opt/repo 10.0.0.31:/opt/  

6.时间同步

为了保证Openstack的服务正常运行,需要保证两个节点的时间一致,可以使用chrony服务来实现时间同步,先都安装chrony(时间同步服务,集群节点之间需要时间同步),再对两个节点分别操作,并重启chronyd服务控制节点作为时间服务器,计算节点作为时间客户端。

【所有节点安装软件包】

# yum install chrony

【控制节点】,增添如下内容

# vim /etc/chrony.conf
server ntp6.aliyun.com iburst
allow 10.0.0.0/24        //设置同步网段

重启服务
# systemctl restart chronyd
# systemctl enable chronyd

【计算节点】,操作如下:

# vim /etc/chrony.conf
server 10.0.0.11 iburst

重启服务
# systemctl restart chronyd
# systemctl enable chronyd

7.安装通用包

为了方便安装和使用Openstack,需要在两个节点先安装一些通用的包,例如python-openstackclient,openstack-selinux等。RHEL 和 CentOS 默认启用了 SELinux . 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略。

【两个节点安装通用包】

安装Openstack客户端
# yum -y install python-openstackclient
安装openstack-selinux 
# yum -y install openstack-selinux

8. 安装SQL数据库

Openstack的各个服务需要使用SQL数据库来存储数据,可以使用MariaDB作为数据库服务器,只需要在控制节点上安装和配置并重启数据库服务即可。

  • 相关配置中的,在 [mysqld] 部分,设置[ bind-address ]值为本机监听的 IP 地址;以使得其它节点可以通过IP地址访问数据库。为了保证数据库服务的安全性,运行mysql_secure_installation脚本。
  • 特别需要说明的是,为数据库的root用户设置一个适当的密码,如果不执行,那么启动后,需要同步数据库时就会报错。
  • 【控制节点】
    安装MariaDB数据库
# yum -y install mariadb mariadb-server python2-PyMySQL

编辑 vim /etc/my.cnf.d/openstack.cnf,将下图代码输入文件中,注意ip要输对

# vim /etc/my.cnf.d/openstack.cnf

设置bind-address值为本机监听的IP地址;以使的其他节点可以通过IP地址访问数据库;
[mysqld]
bind-address = 10.0.0.11    //控制节点IP[mysqld]部分,设置如下键值,来启用一些必要的选项和UTF-8字符集:
[mysqld]
default-storage-engine = innodb	    #默认存储引擎	
innodb_file_per_table	            #独立表空间文件	
max_connections = 4096				#最大连接数	
collation-server = utf8_general_ci
character-set-server = utf8	        #默认字符集 utf-8

对mariadb设置开机自启并开启服务

# systemctl enable mariadb.service;systemctl start mariadb.service

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

数据库安全初始化,运行代码mysql_secure_installation
按照下图一步一步操作,设置root密码那里要注意,如果仅仅是用于实验就不必设置密码,不然后续会出现一些问题

# mysql_secure_installation   

##输入root用户的当前密码
Enter current password for root (enter for none):   回车

#设置 root 密码?[y/n]
Set root password? [Y/n]n	 // 这里没有设置密码,因为的访问较快,如果在企业就必须设置	


#删除匿名用户?[Y/n]
Remove anonymous users? [Y/n] y

#不允许root用户远程登录?[Y/n]
Disallow root login remotely? [Y/n] y

#是否删除测试数据库并访问它?[Y/n]
Remove test database and access to it? [Y/n] y

# 现在重新加载特权表吗?[Y/n]
Reload privilege tables now? [Y/n] y

#成功标准
Thanks for using MariaDB!

9.安装RabbitMQ消息队列

Openstack的各个服务需要使用消息队列来进行通信,可以使用RabbitMQ(实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件))作为消息队列服务器,只需要在控制节点上安装和配置即可。之后在网页中输入10.0.0.11:15672 使用用户名和密码进入该界面。

  • **【控制节点】**运行消息队列
安装包
# yum -y install rabbitmq-server
设置开机自启并开启服务
# systemctl enable rabbitmq-server.service;systemctl start rabbitmq-server.service
执行下方命令添加openstack用户 创建用户密码,密码为RABBIT_PASS,可以将密码替换,但不建议修改,不然后面都要修改!!!
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...

给openstack用户配置读写权限,并查看端口(netstat -ntulp | grep 5672)
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"           //可读、可写、可配置	
Setting permissions for user "openstack" in vhost "/" .....done.


查看端口
# netstat -ntulp | grep 5672
tcp	0	.0.0.0.0:25672	0.0.0.0:*	LISTEN	29675/beam.smp	集群之间同步数据用的端口	
tcp6	:::5672	:::*	LISTEN	29675/beam.smp	/	客服端使用

tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp6       0      0 :::5672                 :::*                    LISTEN      3125/beam.smp

启用 rabbitmq 的管理插件 (可省略 )
方便以后做监控

# rabbitmq-plugins enable rabbitmq_management	      // 执行后会产生 15672 端口<插件的	
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@controller... started 6 plugins.



再次检查端口
# netstat -ntulp |grep 5672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      3125/beam.smp
tcp6       0      0 :::5672                 :::*                    LISTEN      3125/beam.smp

浏览器输入10.0.0.11:15672,用户名和密码均为guest

在这里插入图片描述
在这里插入图片描述

如上图的话,RabbitMQ队列服务就安装成功了

10.安装Memcached缓存服务

  • Memcached
    认证服务认证缓存使用Memseched缓的token,缓存服务memeseched运行在控制节点。
    token:用于验证用产登录信息,利用memcached将token缓存下来,那么下次用户登录时,就不需验证了
  • 【控制节点】
安装软件包
# yum install -y memcached python-memcached
修改配置文件
# sed -i 's/127.0.0.1/10.0.0.11/g' /etc/sysconfig/memcached
重启并开机自启
# systemctl enable memcached.service;systemctl restart memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值