OpenStack云平台部署(手动)

这篇具有很好参考价值的文章主要介绍了OpenStack云平台部署(手动)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基础环境准备

1、yum源配置

# 切换到yum目录
[root@controller ~]# cd /etc/yum.repos.d/
# 创建备份目录
[root@controller yum.repos.d]# mkdir repo.bak
[root@controller yum.repos.d]# ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo  ....
# 把原来的yum文件移到到备份目录
[root@controller yum.repos.d]# mv *.repo repo.bak/
# 下载阿里的yum源
[root@controller yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0  20847      0 --:--:-- --:--:-- --:--:-- 21025
# 清理yum
[root@controller yum.repos.d]# yum clean all && yum makecache

2、主机名修改

# 修改主机名
[root@asdad yum.repos.d]# hostnamectl set-hostname controller
# 让修改生效显示
[root@asdad yum.repos.d]# bash
[root@controller yum.repos.d]# 
# 修改后hostname文件内容对应修改
[root@controller yum.repos.d]# cat /etc/hostname
controller

3、本地域名的解析

直接通过主机名访问主机,需要将主机名和IP地址进行绑定,绑定工作可以通过本地域名解析来实现。
Linux中的 /etc/hosts 文件可以将一些常用的域名和对应的IP建立对应关系。

默认hosts文件内容和意义:

[root@controller ~]# cat /etc/hosts
# 每一行都表示一个域名到Ip地址的映射关系
# 127.0.0.1表示IPv4的本地IP地址
# ::1表示IPv6的本地IP地址
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4   # 第一个名称是主机名,后面的为主机的别名
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6   # 第一个名称是主机名,后面的为主机的别名

案例:将controller解析为内网IP——192.168.10.10

# 添加解析信息到文件最后一行
[root@controller ~]# echo '192.168.10.10   controller' >> /etc/hosts
[root@controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10   controller

# ping通,解析正常
[root@controller ~]# ping controller
PING controller (192.168.10.10) 56(84) bytes of data.
64 bytes from controller (192.168.10.10): icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from controller (192.168.10.10): icmp_seq=2 ttl=64 time=0.034 ms

4、防火墙管理

CentOS7系统默认使用firewall作为系统防火墙,管理功能集成在系统服务管理命令 systemctl中。

常用参数 功能说明
status 查看服务运行状态
start 开启服务
stop 停止服务
enable 服务开机启动
disable 服务开机禁用
restart 重启服务
# 停止防火墙和禁止开机启动防火墙
[root@controller ~]# systemctl stop firewalld && systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
# 查看防火墙是否关闭
[root@controller ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

二、Openstack基础支持服务

Openstack平台需要借助多种第三方提供的基础服务才能正常运行,数据库、消息队列、时间同步、缓存服务等。

1、Chrony时间同步服务

同一个系统内的计算机时间必须保持一致才能保证系统工作正常。

Chrony软件是一款开源的自由软件,包括两个核心组件:chronyd(后台守护程序)和chronyc(命令行用户管理工具)。

(1)时间同步服务配置

通过修改chrony配置可以将任意一台计算机配置成NTP服务器或NTP服务器连接的客户端。

# 安装chrony
[root@controller ~]# yum install -y  chrony

# 查看chrony配置文件
[root@controller ~]# cat /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
server 0.centos.pool.ntp.org iburst  
server 1.centos.pool.ntp.org iburst  # Centos官方提供了4个NTP服务器 
server 2.centos.pool.ntp.org iburst  # iburst作用:设置当NTP服务器一定时间没有应答时,客户端发送8倍数据包以提升同步成功率
server 3.centos.pool.ntp.org iburst
...略
# Allow NTP client access from local network.
allow 192.168.10.0/24   # 设置允许某个网段的chrony客户端使用本机NTP服务
...略

# 修改配置后,重启服务生效
[root@controller ~]# systemctl restart chronyd 
[root@controller ~]# systemctl enable chronyd

(2)时间同步服务管理

时间同步由chronyc命令进行监控和管理。

功能说明 常用参数命令
查看 ntp_servers信息,加-v将显示对数据的说明 chronyc sources -v
查看 ntp_servers 状态 chronyc sourcestats -v
查看 ntp_servers 是否在线 chronyc activity -v
查看 ntp 详细信息 chronyc tracking -v
强制同步下系统时钟 chronyc -a makestep
显示访问本服务器的客户端 chronyc clients
添加新的ntp服务器 chronyc add server
删除已有的ntp服务器 chronyc delete
# 查看当前客户端与NTP服务器连接情况(不加-v)
[root@controller ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 119.28.183.184                2   6    17     4  +4589us[  +17ms] +/-   45ms
^- ntp1.ams1.nl.leaseweb.net     2   6   375     5    +20ms[  +32ms] +/-  235ms
^+ 85.199.214.102                1   6   377     4    -17ms[-4919us] +/-  134ms
^- pingless.com                  2   6   377     4    -15ms[  -15ms] +/-  132ms

# 查看当前客户端与NTP服务器连接情况(加-v)
[root@controller ~]# chronyc sources -v
210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 119.28.183.184                2   6    17     6  +4589us[  +17ms] +/-   45ms
^- ntp1.ams1.nl.leaseweb.net     2   6   375     7    +20ms[  +32ms] +/-  235ms
^+ 85.199.214.102                1   6   377     6    -17ms[-4919us] +/-  134ms
^- pingless.com                  2   6   377     6    -15ms[  -15ms] +/-  132ms

# 查看 ntp服务器 是否在线
[root@controller ~]# chronyc activity 
200 OK
4 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

# 添加腾讯NTP服务器
[root@controller ~]# chronyc add server time1.cloud.tencent.com
200 OK
# 删除腾讯的NTP服务器
[root@controller ~]# chronyc delete time1.cloud.tencent.com
200 OK

2、Openstack云计算平台框架

安装组件前,需要先将框架搭建起来。因此要安装由CentOS官方发布的Openstack云计算框架与客户端管理工具。

(1)安装Openstack框架和客户端

# 1.安装Openstack框架
# 模糊查询软件包名称
[root@controller ~]# yum list *-openstack-train
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Available Packages
centos-release-openstack-train.noarch                   1-1.el7.centos                    extras
# 安装
[root@controller ~]# yum -y install centos-release-openstack-train

# 2.升级所有的软件包
# 自动检查所有可升级的软件包并升级
[root@controller ~]# yum upgrade -y

# 3.安装openstack客户端
[root@controller ~]# yum install -y python-openstackclient

# 4.查看openstack的版本号
[root@controller ~]# openstack --version
openstack 4.0.2

(2)禁用Centos的SElinux,安装openstack-selinux
selinux有三种工作模式:
强制模式(enforcing)————强制使用selinux的安全策略;
宽容模式(permissive)————不使用安全策略,只将相关信息写入日志;
禁用模式(disabled)————禁用selinux。

openstack-selinux:帮助openstack平台自动控制和管理selinux安全策略。

# 1.禁用Centos的SElinux
[root@controller ~]# vi /etc/selinux/config
...略
SELINUX=disabled     《————改为这样
...略
# 让修改配置生效
[root@controller ~]# setenforce  0

# 2.安装openstack-selinux
[root@controller ~]# yum install -y openstack-selinux

3、mariadb数据库

Mysql的创始人Michel Widenius主导开发完全兼容MYSQL、开源免费的MariaDB数据库。

MariaDB采用Maria存储引擎的MYSQL数据库的分支版本。

(1)安装mariadb

# mariadb-server:数据库后台服务
# python2-PyMySQL:python访问数据库的模块
[root@controller ~]# yum install -y mariadb-server python2-PyMySQL

(2)编辑数据库配置文件

配置文件是 /etc/my.cnf.d/ 目录下所有后缀为 cnf的文件。

配置文件中主要参数及功能:

参数 功能说明
port 数据库对外服务的端口号,默认为3306
datadir 数据库文件存放目录
bind-address 绑定远程访问地址,只允许从该地址访问数据库
default-storage-engine 默认存储引擎,MariaDB支持几十种存储引擎,其中InnoDB是比较常用的支持事务的存储引擎
innodb_file_per_table InnoDB引擎的独立表空间,让每个表的数据都单独保存
max_connections 最大连接数
collation-server 字符的排序规则,也称为排列字符集,每个字符集都对应一个或多个排列字符集
character-set-server 字符集
[root@controller ~]# cd /etc/my.cnf.d/
[root@controller my.cnf.d]# ls
client.cnf                mariadb-server.cnf
enable_encryption.preset  mysql-clients.cnf

# 创建文件
[root@controller my.cnf.d]# touch openstack.cnf
# 写入信息
echo '[mysqld]
bind-address = 192.168.10.10
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8' > openstack.cnf

(3)启动mariadb

# 设置开机启动
[root@controller my.cnf.d]# systemctl enable mariadb
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/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]# systemctl start mariadb
# 检查数据库启动情况
[root@controller my.cnf.d]# systemctl status mariadb

(4)初始化mariadb数据库

[root@controller ~]# mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):     《输入当前密码,没有则直接按【Enter】键
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:                       《输入新密码
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   《是否禁止root用户远程登录
 ... 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!

(5)登录和使用数据库

# 登录数据库
[root@controller ~]# mysql -h localhost -uroot -p000000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mysql;
MariaDB [mysql]> show tables;
MariaDB [mysql]> exit
Bye

4、RabbitMQ消息队列服务

消息队列(Message Queue,MQ)是一种应用间的通信方式,消息发送到消息队列后由消息队列来确保消息的可靠传递,即消息发布者和消息使用者之间并不产生直接关系。

OpenStack各个组件之间就是通过消息队列进行相互通信的。其中RabbitMQ是一个开源的、应用广泛的消息服务系统。

通常使用RabbitMQ为OpenStack提供消息队列服务。

(1)用户管理常用语法

RabbitMQ用户的用户名和密码由rabbitmqctl命令进行管理
新建RabbitMQ用户的命令如下:
rabbitmqctl add_user <用户名> <密码>
删除RabbitMQ用户的命令如下:
rabbitmqctl delete_user <用户名>
修改RabbitMQ用户密码的命令如下:
rabbitmqctl change_password <用户名> <新密码>

(2)案例

# 1.安装RabbitMQ消息队列
[root@controller ~]# yum install -y rabbitmq-server

# 2.启动RabbitMQ消息队列
# 开机启动
[root@controller ~]# 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.
# 立即启动
[root@controller ~]# systemctl start rabbitmq-server

# 3.设置用户和密码
# 创建一个名为“rabbitmq”的用户,密码为“RABBIT_PASS”
[root@controller ~]# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack"

# 修改openstack用户密码为000000
[root@controller ~]# rabbitmqctl change_password openstack 000000
Changing password for user "openstack"

# 4.管理用户权限
# 3个“.*”分别对应配置、写入、读取权。给openstack用户赋予对RabbitMQ所有资源的配置、写入与读取权限
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"

# 查看用户的权限
[root@controller ~]# rabbitmqctl list_user_permissions openstack
Listing permissions for user "openstack"
/	.*	.*	.*

5、Memcached内存缓存服务

内存缓存(Memcached)是一个高性能的分布式内存对象缓存系统,能够存储各种格式的数据,包括图像、视频、文件,以及数据库检索的结果等

(1)安装memcached服务

# “memcached”是内存缓存服务软件,
# “python-memcached”是对该服务进行管理的接口程序软件
[root@controller ~]# yum install -y memcached python-memcached

# 安装完成后,系统将自动创建名为“memcached”的用户
[root@controller ~]# cat /etc/passwd | grep memcached
memcached:x:995:992:Memcached daemon:/run/memcached:/sbin/nologin

(2)配置内存缓存服务

Memcached的配置文件为/etc/sysconfig/memcached

[root@controller ~]# vi /etc/sysconfig/memcached 
PORT="11211"                     # 服务端口
USER="memcached"                 # 用户名
MAXCONN="1024"                   # 允许的最大连接数
CACHESIZE="64"                   # 最大的缓存大小
OPTIONS="-l 127.0.0.1,::1,192.168.10.10"         # 监听地址(默认监听本地)

(3)启动内存缓存服务

# 开机启动
[root@controller ~]# systemctl enable memcached
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
# 立即启动
[root@controller ~]# systemctl start memcached

# 检查服务是否启动
[root@controller ~]# netstat -tnlup | grep memcached
tcp        0      0 192.168.10.10:11211     0.0.0.0:*               LISTEN      3778/memcached      
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      3778/memcached      
tcp6       0      0 ::1:11211               :::*                    LISTEN      3778/memcached

6、etcd分布式键值对存储系统

etcd是一个开源项目,它的目标是构建一个高可用的分布式键-值(Key-Value)数据库用于配置共享和服务发现。

这个软件的作用类似于分布式系统中“/etc”目录的功能,即存储大规模分布式系统的配置信息。

(1)etcd配置参数

配置参数 说明
ETCD_LISTEN_PEER_URLS 用于监听其他etcd成员的地址,只能是IP地址,不能写域名
ETCD_LISTEN_CLIENT_URLS 对外提供服务的地址,只能是IP地址,不能写域名
ETCD_NAME 当前etcd成员的名字,成员必须有唯一名字,建议采用主机名
ETCD_INITIAL_ADVERTISE_PEER_URLS 列出这个成员的伙伴地址,通告给集群中的其他成员
ETCD_ADVERTISE_CLIENT_URLS 列出这个成员的客户端地址,通告给集群中的其他成员
ETCD_INITIAL_CLUSTER 启动初始化集群配置,值为“成员名=该成员服务地址”
ETCD_INITIAL_CLUSTER_TOKEN 初始化etcd集群标识,用于多个etcd集群相互识别
ETCD_INITIAL_CLUSTER_STATE 初始化集群状态(新建值为“new”,已存在值为“existing”)。如果这个选项被设置为existing,etcd将试图加入已有的集群

(2)安装配置

# 1.安装
[root@controller ~]# yum install -y etcd

# 2.备份配置文件
[root@controller ~]# cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak
# 修改配置
echo 'ETCD_LISTEN_PEER_URLS="http://192.168.10.10:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.10.10:2379,http://127.0.0.1:2379"
ETCD_NAME="controller"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.10.10:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.10.10:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
' > /etc/etcd/etcd.conf

# 3.启动服务
[root@controller ~]# systemctl enable etcd
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
[root@controller ~]# systemctl start etcd

# 4.检查运行
[root@controller ~]# netstat -tnlup| grep etcd
tcp        0      0 192.168.10.10:2379      0.0.0.0:*               LISTEN      4319/etcd           
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      4319/etcd           
tcp        0      0 192.168.10.10:2380      0.0.0.0:*               LISTEN      4319/etcd  

(3)etcd服务管理

etcdctl是管理etcd服务的工具,利用它可以实现数据的存取。

[root@controller ~]# etcdctl set testkey 001
001
[root@controller ~]# etcdctl get testkey
001
[root@controller ~]# etcdctl set name kobe
kobe
[root@controller ~]# etcdctl get name
kobe

三、集群配置

现在已经有了一台符合条件的虚拟机作为控制节点,还需要准备一个计算节点。

1、计算节点克隆

第1步,在VMware Workstation主界面鼠标右键单击【我的计算机】下的虚拟机(虚拟机需处于关闭状态),在弹出的菜单中依次选择【管理】→【克隆】后出现【克隆虚拟机向导】

第2步,选择克隆源与克隆类型。在【克隆虚拟机向导】对话框中单击【下一页】按钮进入【克隆源】界面。在【克隆源】界面中选择【虚拟机中的当前状态】单选按钮,然后单击【下一步】按钮,弹出克隆类型】界面。在【克隆类型】界面中选择【创建完整克隆】单选按钮,然后单击【下一步】按钮,弹出【新虚拟机名称】界面。

第3步,设置新的虚拟机名称及存储位置,然后开始克隆虚拟机。在【新虚拟机名称】界面中的【虚拟机名称】和【位置】文本框内填写和选择新克隆的虚拟机的名称和虚拟机存储的位置,设置完成后单击【完成】按钮,显示【正在克隆虚拟机】对话框。

给这个计算节点添加一个40G的磁盘。

2、计算节点配置

# 修改网络配置
[root@controller ~]# cd /etc/sysconfig/network-scripts/
# 生产新的uuid
[root@controller network-scripts]# uuidgen >> ifcfg-ens33
[root@controller network-scripts]# uuidgen >> ifcfg-ens34

# 修改ifcfg-ens33配置
NAME=ens33
UUID=80d04405-642e-41f6-aa31-a33b79b92ca4        # 将新生成的uuid放这里替换
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.20       # 修改网卡地址
NETMASK=255.255.255.0

# 修改ifcfg-ens34配置
NAME=ens34
UUID=381db26e-7267-485c-a459-f4b56d0e5e42        # 将新生成的uuid放这里替换
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.20.20       # 修改网卡地址
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
DNS1=114.114.114.114
DNS2=8.8.8.8

# 重启网络
[root@controller network-scripts]# systemctl restart network

# 使用xshell等工具连接192.168.10.20,查看当前的网络信息:
[root@controller ~]# ip a
1: lo: 略
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:fc:73:40 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4883:d953:184d:971b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:fc:73:4a brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.20/24 brd 192.168.20.255 scope global noprefixroute ens34
       valid_lft forever preferred_lft forever
    inet6 fe80::e991:bf85:171d:2a7a/64 scope link noprefixroute 
       valid_lft forever preferred_lft foreve
	   
# 更改计算节点主机名
[root@controller ~]# hostnamectl set-hostname compute
[root@controller ~]# bash
[root@compute ~]# 

3、配置域名解析和防火墙

为了提升工作效率,将主机名和ip地址绑定。

(1)域名解析配置

# 修改控制节点本地域名解析
[root@controller ~]# echo '192.168.10.20   compute' >> /etc/hosts
# 修改计算节点本地域名解析
[root@compute ~]# echo '192.168.10.20   compute' >> /etc/hosts
# 验证互PING
[root@controller ~]# ping compute
[root@compute ~]# ping controller

(2)selinux和防火墙关闭

安装openstack之前需要关闭linux系统自带的selinux和firewall防火墙,避免因防火墙设置问题造成服务访问出现问题。

# 1.控制、计算节点都修改/etc/selinux/config,将"SELINUX=enforcing" 改为 "SELINUX=disabled"

# 2.禁止开机启动和关闭防火墙
# 控制节点:
[root@controller ~]# systemctl disable firewalld
[root@controller ~]# systemctl stop firewalld
# 计算节点:
[root@compute ~]# systemctl disable firewalld
[root@compute ~]# systemctl stop firewalld

4、搭建本地软件仓库

不能访问外网的环境,需要搭建本地的YUM源。

没必要在每台机器上都配置同样的软件仓库,可以选择共享的方式为其他主机提供服务。

案例:在控制节点配置YUM源,并搭建文件传输服务器为其他的计算节点提供服务。

(1)在控制节点配置YUM源

添加base、extras、updates、train、virt这5个软件仓库的本地地址——挂载镜像的地址。

name是软件仓库名、baseurl是仓库地址、enable设置1为启用该软件仓库、gpgcheck设置为0为取消数字签名验证。

file:/// 表示链接到本地文件系统的地址。

# 1.上传openStack-train.iso文件到/opt目录下
[root@controller opt]# du -sh *
0	mydriver
16G	openStack-train.iso

# 2.将镜像文件挂载到文件夹中,即可访问镜像文件内容
[root@controller opt]# mkdir openstack
[root@controller opt]# ls
mydriver  openstack  openStack-train.iso
# 挂载命令:将镜像文件挂载到/opt/openstack
[root@controller opt]# mount openStack-train.iso openstack/
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller opt]# df -H
...略
/dev/loop0                17G   17G     0 100% /opt/openstack

# 3.备份原有的yum的配置文件
[root@controller openstack]# cd /etc/yum.repos.d/
[root@controller yum.repos.d]# ls
CentOS-Base.repo  CentOS-OpenStack-train.repo  repo.bak
# 将阿里源改名,避免覆盖官方源备份
[root@controller yum.repos.d]# mv CentOS-Base.repo CentOS-ALIBABA-Base.repo
# 移动repo文件到备份目录
[root@controller yum.repos.d]# mv *.repo repo.bak/

# 4.编写本地YUM源文件,指向本地文件
[root@controller yum.repos.d]# vi OpenStack.repo
[base]
name=base
baseurl=file:///opt/openstack/base/     
enable=1                         
gpgcheck=0 
[extras]
name=extras
baseurl=file:///opt/openstack/extras/   
enable=1                         
gpgcheck=0 
[updates]
name=updates
baseurl=file:///opt/openstack/updates/ 
enable=1                         
gpgcheck=0 
[train]
name=train
baseurl=file:///opt/openstack/train/
enable=1                         
gpgcheck=0
[virt]
name=virt
baseurl=file:///opt/openstack/virt/
enable=1                         
gpgcheck=0 


# 5.清除原有的YUM源缓存并重建缓存
[root@controller ~]# yum clean all
# 重建缓存
[root@controller ~]# yum makecache
# 检查yum源
[root@controller ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                     repo name                    status
base                        base                         10,039
extras                      extras                          500
train                       train                         3,168
updates                     updates                       3,182
virt                        virt                             63
repolist: 16,952

# 长期挂载,避免重启丢失
[root@controller ~]# vi /etc/fstab
# 在最后添加如下内容
/opt/openStack-train.iso  /opt/openstack/   iso9660  defaults,loop  0   0

(2)控制节点配置FTP服务器

控制节点上已经有了本地YUM源文件,搭建一个FTP服务器,共享软件仓库为计算节点提供服务。

# 1.安装FTP服务
[root@controller ~]# yum install -y vsftpd

# 2.配置FTP主目录为软件仓库目录:添加如下信息
[root@controller ~]# echo 'anon_root=/opt' >> /etc/vsftpd/vsftpd.conf

# 3.启动FTP服务
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

(3)计算节点配置YUM源

修改yum配置文件,将YUM源指向控制节点FTP服务器的软件仓库。

# 1.备份YUM配置文件
[root@compute ~]# cd /etc/yum.repos.d/
[root@compute yum.repos.d]# mv CentOS-Base.repo CentOS-ALIBABA-Base.repo   # 改名
[root@compute yum.repos.d]# mv *.repo repo.bak/     # 迁移到备份目录

# 2.从控制节点传输配置文件
[root@compute yum.repos.d]# scp root@controller:/etc/yum.repos.d/OpenStack.repo OpenStack.repo
# 注意输入控制节点密码和yes

# 3.编辑YUM源文件
[root@compute yum.repos.d]# vi OpenStack.repo  
[base]
name=base
baseurl=ftp://controller/openstack/base/     
enable=1                         
gpgcheck=0 
[extras]
name=extras
baseurl=ftp://controller/openstack/extras/   
enable=1                         
gpgcheck=0 
[updates]
name=updates
baseurl=ftp://controller/openstack/updates/ 
enable=1                         
gpgcheck=0 
[train]
name=train
baseurl=ftp://controller/openstack/train/
enable=1                         
gpgcheck=0
[virt]
name=virt
baseurl=ftp://controller/openstack/virt/
enable=1                         
gpgcheck=0 

# 4.清除原有的YUM源缓存并重建缓存
[root@compute ~]# yum clean all
[root@compute ~]# yum makecache

5、局域网时间同步

实现控制节点和计算节点的时间同步,控制节点作为时间同步系统服务端,计算节点作为客户端。

# 1.配置控制节点为NTP时间服务器
[root@controller ~]# vi /etc/chrony.conf
###### 注释默认同步服务器,添加阿里时间同步 #########
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp.aliyun.com iburst

###### 配置允许同网段主机使用本机的NTP服务  ###########
# Allow NTP client access from local network.
allow 192.168.10.0/24

# 2.配置计算节点时间同步
[root@compute ~]# vi /etc/chrony.conf
###### 注释默认同步服务器,添加本地同步 #########
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server controller iburst

# 3.重启时间同步服务让配置生效
[root@controller ~]# systemctl restart chronyd
[root@compute ~]# systemctl restart chronyd

# 4.检查时间同步状态
[root@compute ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address       Stratum Poll Reach LastRx Last sample               
===========================================================================
^* controller              3   6    17    41  +6800ns[  +15us] +/-   29ms
[root@controller ~]# date
Wed Oct  5 16:32:39 CST 2022
[root@compute ~]# date
Wed Oct  5 16:32:39 CST 2022

6、openstack云计算平台基础框架自检

控制节点和计算节点都需要执行软件框架安装、云计算平台管理客户端安装、openstack的selinux防火墙管理包。
安装方法见本章2-2。文章来源地址https://www.toymoban.com/news/detail-742015.html

# 检查1:只有自建的repo文件
[root@controller ~]# ls /etc/yum.repos.d/
OpenStack.repo  repo.bak
[root@compute ~]# ls /etc/yum.repos.d/
OpenStack.repo  repo.bak

# 检查2:
[root@controller ~]# openstack --version

到了这里,关于OpenStack云平台部署(手动)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenStack云平台搭建

    参考: https://blog.csdn.net/m0_45692110/article/details/122628664 https://huaweicloud.csdn.net/635607c3d3efff3090b58eb4.html 一、虚拟机准备 controller和compute虚拟机,使用centos7操作系统,下面给出一些需要修改的地方,其他都可以使用默认,点击下一步即可 controller: 一块磁盘200G 两块网卡: 192.168.100.

    2024年02月13日
    浏览(23)
  • openstack云平台搭建与使用

    使用CentOS 7系统搭建一个OpenStack私有云平台。 (1)掌握Linux系统的基础操作,包括修改主机名和配置网络等。 (2)掌握OpenStack私有云平台的搭建。 准备环境: CentOS 7.2 Linux系统。 XianDian-IaaS-v2.2.iso镜像文件 192.168.0.21 controller 192.168.0.20 compute 两台节点分别两个网卡,一个是n

    2023年04月09日
    浏览(45)
  • 云计算|OpenStack|社区版OpenStack安装部署文档(二---OpenStack运行环境搭建)

    一个良好的运行环境对于任何一个部署工作来说都是必须的,俗话说 万事开头难,其实很多部署工作失败的原因在于初始环境没有正确的配置,因此,按照官网的部署文档并结合自己的实际情况,配置一个合理的OpenStack运行环境是十分有必要的。 OpenStack的运行环境配置文档

    2023年04月08日
    浏览(40)
  • 使用Ansible部署openstack平台

    本周没啥博客水了,就放个云计算的作业上来吧(偷个懒) 案例描述 1、了解高可用OpenStack平台架构 2、了解Ansible部署工具的使用 3、使用Ansible工具部署OpenStack平台 案例目标 1、部署架构 Dashboard访问采用负载均衡方式,提供VIP地址,平台访问通过VIP地址进行访问,当其中一台

    2023年04月09日
    浏览(29)
  • OpenStack云计算平台部署 单节点

    虚拟机(centos7 、内存8G、硬盘300G、处理器4核并开启intel vt-x,网络模式设置为NAT,虚拟机网络一定要设置好,并可以ping通baidu,不然有中途掉IP的情况发生) 点击查看执行结果 博客园地址点击此处!

    2024年02月17日
    浏览(31)
  • openstack云计算平台 3 (Dashboard搭建、创建云主机平台)

    Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务,这个部署示例使用的是 Apache Web 服务器。接下来将描述如何在控制节点上安装和配置仪表板。 首先用admin用户身份登陆; 查看集群状态 查看镜像、计算节点、网络等等 云主机已启

    2023年04月16日
    浏览(38)
  • 国基北盛 openstack 云平台搭建保姆级步骤

    需要使用到的软件 VMware-workstation-full-16.1.2 链接:https://pan.baidu.com/s/1oauUyyfQFNAKboUXDu9QQg?pwd=6666 提取码:6666 SecureCRTPortable 链接:https://pan.baidu.com/s/1kXJsYeQuQeClJYNbgkIjRw?pwd=6666 提取码:6666 需要下载以下三种镜像 CentOS-7.5-x86_64-DVD-1804 链接:https://pan.baidu.com/s/1xy8PIGowJZeFQjCGO8mtCA?pwd=6

    2024年02月06日
    浏览(27)
  • Openstack服务器平台搭建手册(基于省赛资源搭建)

    Openstack版本:Q版本(chinaskills_cloud_iaas.iso)其他版本也可 配置需求:一台交换机(能通外网的交换机,这里不做网络的配置),两台服务器(CPU,内存和硬盘等资源越大越好),装有CentOS系统的启动盘(这里使用CentOS-7-x86_64-DVD-1804.iso作为例子) 1.交换机的配置 为三层交换机

    2024年04月16日
    浏览(35)
  • Ubuntu20.04 搭建W版本OpenStack平台

    目录 一、基础环境配置 1.controller、compute配置网卡地址 2.配置域名解析 3.NTP时间同步 二、添加OpenStack-wallaby软件包及基本环境 1、OpenStack 服务的所有节点上添加软件包 2、Mysql数据库 3、Rabbitmq消息队列 4、Memcached 5、etcd环境部署 三、keystone服务 四、glance镜像服务 五、Placement环

    2024年02月15日
    浏览(28)
  • OpenStack云计算基础架构平台搭建(国基北盛):第一篇

    目录 文章介绍 一、VMware 的环境准备 二、安装操作系统(本文是Centos7) 1.引导项选择 2.语言选择 3.安装系统分区选择 4.root用户密码设置,及完成安装 三.设置操作系统基础环境 1.设置静态IP地址 2.克隆一台虚拟机 3.使用远程工具链接虚拟机 4.设置控制节点和计算节点服务器的

    2024年03月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包