A01. openstack架构实战-openstack基本环境准备

本次所有原理,操作可以使用官方链接进行参考

https://docs.openstack.org/

环境要求:

  • 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储

  • 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储

 

controller01

10.100.201.201 

computer01  10.100.214.201

 

前提准备:防火墙,selinux关闭

sed  -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

systemctl stop  firewalld && systemctl disable firewalld

hosts域名解析:

安装虚拟化组件工具

yum install libvirt -y

[root@controller01 ~]# tail /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.100.201.201 controller01
10.100.214.202 computer01

 

一:配置时间同步:

 

controller01配置:

[root@controller01 ~]# yum install chrony -y 

配置ntp时间服务器主的config文件,修改一下图中两个地方:

vim /etc/chrony.conf

 

 

 

 启动服务:

[root@controller01 ~]# systemctl start chronyd  && systemctl enable  chronyd && systemctl status chronyd 

 

computer时间同步配置:

[root@compute01 ~]# yum install chrony -y 

 

 

 启动服务:

[root@compute01 ~]# systemctl start chronyd  && systemctl enable  chronyd && systemctl status chronyd 

 

验证是否时间同步正常:

[root@compute01 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* controller01 3 6 377 18 +70us[ +619us] +/- 23ms

[root@compute01 ~]# timedatectl
Local time: Sat 2020-05-23 19:53:34 CST
Universal time: Sat 2020-05-23 11:53:34 UTC
RTC time: Sat 2020-05-23 11:53:34
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

 

二:安全包

1:安装需要的源

我们这里使用阿里的源

准备阿里源的base源:

[root@controller01 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@controller01 yum.repos.d]# ls

 

CentOS-Base.repo

 

[root@node76 ~]# yum list | grep openstack

centos-release-openstack-queens.noarch      1-2.el7.centos             extras   

centos-release-openstack-rocky.noarch       1-1.el7.centos             extras   

centos-release-openstack-stein.noarch       1-1.el7.centos             extras   

centos-release-openstack-train.noarch       1-1.el7.centos             extras  

 

[root@controller01 ~]# yum install centos-release-openstack-queens.noarch  -y 

[root@compute01 ~]# yum install centos-release-openstack-queens.noarch  -y

注意此处如果没有,请更改为图片中的阿里源

 

 

 

2:安装openstack的客户端和openstack-selinux

[root@controller01 ~]# yum install python-openstackclient openstack-selinux -y

 

三:安装数据库

大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。

python2-PyMySQL:openstack架构是由python进行编写的,所以在每个组件进行存储信息的时候需要这个mysql的模块

 

1:安装软件包:

[root@controller01 ~]# yum install mariadb mariadb-server python2-PyMySQL -y

 

2:配置数据库:

innodb_file_per_table:使每个数据库的表都有独立的文件

 

创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作

[mysqld]

bind-address = 10.100.201.201

default-storage-engine = innodb

innodb_file_per_table

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

 

3:启动mariadb服务

[root@controller01 ~]# systemctl start mariadb && systemctl enable mariadb 

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

 

4:为mariadb数据库配置root密码

[root@controller01 ~]# mysql_secure_installation

 

四:安装消息队列

OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQQpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。本指南安装 RabbitMQ 消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。

 

1:安装包

[root@controller01 ~]# yum install rabbitmq-server -y

 

2:启动消息队列服务并将其配置为随系统启动

[root@controller01 ~]# systemctl start rabbitmq-server && systemctl enable rabbitmq-server 

 

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

 

3:添加 openstack 用户:

rabbitmq安装之后会后一个rabbitmqctl的命令用来管理rabbitmq服务

[root@controller01 ~]# rabbitmqctl add_user openstack huayun

 

Creating user "openstack"

 

4:给``openstack``用户 “配置” “写” 和 “读” 权限

[root@controller01 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

 

Setting permissions for user "openstack" in vhost "/"

 

5:启动rabbitmq_management 插件

rabbitmq_management是rabbitmq的管理插件:

当rabbitmq启动时候会有两个端口启动:5672和25672两个段

5672是为对外服务客户端提供;25672端口是为了支持rabbitmq的集群之间的通信

 

 

 

[root@controller01 ~]# rabbitmq-plugins  enable rabbitmq_management 

The following plugins have been enabled:

  amqp_client

  cowlib

  cowboy

  rabbitmq_web_dispatch

  rabbitmq_management_agent

  rabbitmq_management

 

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

 

当启动rabbitmq的管理插件之后又会出现一个新的端口15672

 

 

15672端口会提供一个web界面:默认的登入用户名/密码: guest/guest

 

 

 

五:memcached的安装

认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。

当我们去读取数据的时候,会去数据库读取数据,当读取数据之后会在memcached中进行缓存,当下次读取的时候直接从缓存空间中返回给客户端,这个就加快了访问的速度

1:安装包:

[root@controller01 ~]# yum install memcached python-memcached -y 

 

2:编辑/etc/sysconfig/memcached文件并完成以下操作:

  • 配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:

[root@controller01 ~]# sed  -i 's/127.0.0.1/10.100.201.201/g' /etc/sysconfig/memcached

 

3:启动服务:

[root@controller01 ~]# systemctl enable memcached.service && systemctl start  memcached.service

 

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

 

启动服务之后检测是否有11211的端口监听

 

 

 

六:安装etcd服务(openstack集群需要进行安装,这里不是集群不进行安装)

 

OpenStack服务可以使用Etcd(分布式可靠键值存储)来进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。

 

etcd服务在控制器节点上运行。

主要作用是:管理网络通过其他节点的访问的管理IP地址:

 

最小化openstack的基础服务到此结束,谢谢

 

 

posted @ 2020-05-23 22:02  Mr-呵呵哒  阅读(222)  评论(0编辑  收藏  举报