openstack云计算平台(1)--基本环境部署

文章目录

      • openstack是什么
      • 官方文档链接
      • 一、基础准备
        • 1. 硬件准备
        • 2. 硬件信息
      • 二、软件环境
        • 1. 主机网络
        • 2. 网络时间协议(NTP)
        • 3.openstack包
        • 4.SQL数据库
        • 5.消息队列
        • 6.memcached

openstack是什么

  1. OpenStack是一个云操作系统,它控制整个数据中心的计算、存储和网络资源的大型池,所有这些都通过具有通用身份验证机制的api进行管理和配置。
  2. 还提供了一个仪表板,允许管理员控制,同时允许用户通过web界面提供资源。
  3. 除了标准的基础设施即服务功能外,其他组件还提供编排、故障管理和服务管理等服务,以确保用户应用程序的高可用性。
  4. 目的是搭建一个类似于阿里云那样的云计算平台,但只是一个具备基础功能的平台,更多功能的扩展需要添加不同的组件才可以实现。

官方文档链接

官方文档链接::https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/overview.html

一、基础准备

1. 硬件准备

由于实际条件限制,我们使用虚拟机来代替实际的硬件来进行 部署

  1. 这个示例架构需要至少2个(主机)节点来启动基础服务:term:virtual machine 或者实例。像块存储服务,对象存储服务这一类服务还需要额外的节点
  2. 控制节点上运行身份认证服务,镜像服务,计算服务的管理部分,网络服务的管理部分,多种网络代理以及仪表板。也需要包含一些支持服务,例如:SQL数据库,term:消息队列, and NTP。
  3. 计算节点上运行计算服务中管理实例的管理程序部分。默认情况下,计算服务使用 KVM。你可以部署超过一个计算节点。每个计算节点至少需要两块网卡。可以在计算节点上运行部分块存储,对象存储,Orchestration 和 Telemetry 服务。
  4. 计算节点内存至少需要4G,双网卡,添加的网卡模式一定要选择host-passthrough模式
    openstack云计算平台(1)--基本环境部署_第1张图片
    openstack云计算平台(1)--基本环境部署_第2张图片
2. 硬件信息
  1. 尽管大多数环境中包含认证,镜像,计算,至少一个网络服务,还有仪表盘,但是对象存储服务也可以单独操作。

  2. 必须用有管理员权限的帐号来配置每个节点。可以用 root 用户或 sudo 工具来执行这些命令。

  3. 为获得最好的性能,在环境中符合或超过在 :ref:figure-hwreqs中的硬件要求。

  4. 以下最小需求支持概念验证环境,使用核心服务和几个:term:CirrOS实例:
    - 控制节点: 1 处理器, 4 GB 内存, 及10 GB 存储
    - 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储

  5. 由于Openstack服务数量以及虚拟机数量的正常,为了获得最好的性能,环境满足或者超过基本的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,考虑为环境增加硬件资源。

二、软件环境

1. 主机网络
  1. 配置控制节点网络
  2. 第一块网卡常规配置即可,第二块网卡首先更改网卡命名格式(保持和第一块网卡命名格式相同,防止发生未知错误),然后激活网卡,不需要为其分配ip
[root@foundation ~]# cd /boot/grub2/
[root@foundation grub2]# ls
grubenv
[root@foundation grub2]# vim grubenv 
net.ifnames=0  ##添加内核参数,使网卡命名格式为eth格式

[root@server1 ~]# cd /etc/sysconfig/network-scripts/
[root@server1 network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@server1 network-scripts]# vim ifcfg-eth1
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
[root@server1 network-scripts]# ifup eth1 ##激活网卡
[root@server1 network-scripts]# ip addr

#配置域名解析:设置节点主机名为 controller,计算节点为compute1,存储节点为block1
[root@server1 network-scripts]# vim /etc/hosts  
192.168.0.1 controller
192.168.0.2 compute1
192.168.0.3 block1
[root@server1 network-scripts]# hostnamectl set-hostname controller

openstack云计算平台(1)--基本环境部署_第3张图片
openstack云计算平台(1)--基本环境部署_第4张图片

openstack云计算平台(1)--基本环境部署_第5张图片openstack云计算平台(1)--基本环境部署_第6张图片
openstack云计算平台(1)--基本环境部署_第7张图片

2. 网络时间协议(NTP)

使用chrony保证不同节点之间的时间同步

#真机设置
[root@foundation Desktop]# vim /etc/chrony.conf 
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst

allow 192.168/16
[root@foundation Desktop]# systemctl enable --now chronyd  ##置开机自启并立刻启动
[root@foundation Desktop]# chronyc sources -V  ##查看时间同步状态

openstack云计算平台(1)--基本环境部署_第8张图片
openstack云计算平台(1)--基本环境部署_第9张图片

[root@controller ~]# yum install chrony  -y
[root@controller ~]# vim /etc/chrony.conf 
server 192.168.0.100 iburst
[root@controller ~]# systemctl enable --now chronyd
[root@controller ~]# chronyc sources -V

openstack云计算平台(1)--基本环境部署_第10张图片
openstack云计算平台(1)--基本环境部署_第11张图片
openstack云计算平台(1)--基本环境部署_第12张图片

3.openstack包
  1. 下载资源包
    将资源包放在apache的默认发布目录下
  2. 配置软件仓库,路径为刚才资源包所放置的位置
  3. 在主机上升级包
  4. 安装 OpenStack 客户端
  5. RHEL 和 CentOS 默认启用了 SELinux . 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略(这里我们禁用了selinux和防火墙,因此这一步可以不做)
[root@controller ~]# cd /etc/yum.repos.d
[root@controller yum.repos.d]# vim openstack.repo
[root@controller yum.repos.d]# cat openstack.repo 
[openstack]
name=mitaka
baseurl=http://192.168.0.100/mitaka
gpgcheck=0
[root@controller yum.repos.d]# yum upgrade  #主机上升级包
[root@controller yum.repos.d]# yum install python-openstackclient -y  #装OpenStack客户端

将mitaka放在共享发布目录下
在这里插入图片描述

openstack云计算平台(1)--基本环境部署_第13张图片
openstack云计算平台(1)--基本环境部署_第14张图片

4.SQL数据库

大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。指南中的步骤依据不同的发行版使用MariaDB或 MySQL。

[root@controller yum.repos.d]# yum install mariadb mariadb-server python2-PyMySQL -y 

[root@controller yum.repos.d]# cd /etc/my.cnf.d/
[root@controller my.cnf.d]# ls
auth_gssapi.cnf  client.cnf  enable_encryption.preset  mariadb-server.cnf  mysql-clients.cnf  tokudb.cnf
[root@controller my.cnf.d]# vim openstack.cnf
[root@controller my.cnf.d]# cat openstack.cnf 
[mysqld]
bind-address = 192.168.0.1            ##设置 bind-address值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库
default-storage-engine = innodb        
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

#启动数据库服务,并将其配置为开机自启,运行mysql_secure_installation脚本安全安装数据库
[root@controller my.cnf.d]# systemctl enable --now mariadb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

[root@controller my.cnf.d]# mysql_secure_installation
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:                            #密码设置为westos
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

在这里插入图片描述
openstack云计算平台(1)--基本环境部署_第15张图片

5.消息队列

OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。

[root@controller my.cnf.d]# yum install rabbitmq-server -y
[root@controller my.cnf.d]# systemctl enable --now rabbitmq-server.service   ##启动消息队列服务并将其配置为随系统启动
[root@controller my.cnf.d]# rabbitmqctl add_user openstack openstack ##添加openstack用户,密码最好和用户名保持一致
Creating user "openstack" ...
[root@controller my.cnf.d]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"    ##给openstack用户配置写和读权限
Setting permissions for user "openstack" in vhost "/" ...

[root@controller ~]# rabbitmq-plugins list
[root@controller ~]# rabbitmq-plugins enable rabbitmq_management
[root@controller ~]# netstat -antlp   ##查看端口,通过15672端口可以访问web图形化界面

[root@controller ~]# rabbitmqctl list_users
Listing users ...
openstack	[]
guest	[administrator]
[root@controller ~]# rabbitmqctl list_user_permissions openstack
Listing permissions for user "openstack" ...
/	.*	.*	.*
[root@controller ~]# rabbitmqctl authenticate_user openstack openstack
Authenticating user "openstack" ...
Success

openstack云计算平台(1)--基本环境部署_第16张图片
openstack云计算平台(1)--基本环境部署_第17张图片
openstack云计算平台(1)--基本环境部署_第18张图片
openstack云计算平台(1)--基本环境部署_第19张图片
openstack云计算平台(1)--基本环境部署_第20张图片
openstack云计算平台(1)--基本环境部署_第21张图片
openstack云计算平台(1)--基本环境部署_第22张图片

6.memcached

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

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

[root@controller ~]# vim /etc/sysconfig/memcached 
[root@controller ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
#OPTIONS="-l 127.0.0.1,::1"   ##注释这一行,表示允许所有网段(公网)访问
[root@controller ~]# systemctl enable --now memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@controller ~]# netstat -antulp|grep :11211  ##memcache11211端口开启
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      6524/memcached      
tcp6       0      0 :::11211                :::*                    LISTEN      6524/memcached      
udp        0      0 0.0.0.0:11211           0.0.0.0:*                           6524/memcached      
udp6       0      0 :::11211                :::*                                6524/memcached  

openstack云计算平台(1)--基本环境部署_第23张图片
openstack云计算平台(1)--基本环境部署_第24张图片

你可能感兴趣的:(openstack云计算平台(1)--基本环境部署)