OpenStack 基础平台部署

发布于 2024-04-14  109 次阅读


内容纲要

OpenStack 基础平台部署

1. 规划节点

IP 主机名 节点 网络模式
10.0.0.10 controller 控制节点 NAT
192.168.217.10 controller 控制节点 仅主机
10.0.0.20 compute 计算节点 NAT
192.168.217.20 compute 计算节点 仅主机

2. 基础准备

现平台已经提供了Centos 7.9系统的两台云主机,云主机类型为4vcpu、12G内存、40G磁盘及50G临时磁盘;网络接口1设置为外部网络(NAT),作为云主机通信和管理使用,网络接口2设置为内部网络(仅主机),主要为云主机提供一个网卡设备。

3. 项目实施

3.1 环境准备

1)配置主机名

使用 Xshell 连接 controller 节点和 compute 节点,用户名默认为root,密码默认为000000。连接上之后修改节点主机名。

[root@centos7 ~]# hostnamectl set-hostname controller
[root@centos7 ~]# hostnamectl set-hostname compute

2)配置主机解析

[root@controller ~]# vi /etc/hosts
#新增如下内容,写NAT地址
10.0.0.10 controller
10.0.0.20 compute

[root@compute ~]# vi /etc/hosts
#新增如下内容,写NAT地址
10.0.0.10 controller
10.0.0.20 compute

3)配置仓库源

将CentOS-7-x86_64-DVD-2009.iso和chinaskills_cloud_iaas_v2.0.1.iso上传到/root下

[root@controller ~]# mkdir /opt/{centos7-2009,iaas-train}
[root@controller ~]# mount /root/CentOS-7-x86_64-DVD-2009.iso /mnt/
[root@controller ~]# cp -r /mnt/* /opt/centos7-2009/
[root@controller ~]# umount /mnt/
[root@controller ~]# mount /root/chinaskills_cloud_iaas_v2.0.1.iso /mnt/  
[root@controller ~]# cp -r /mnt/* /opt/iaas-train/
[root@controller ~]# umount /mnt/

配置controller节点yum安装源文件yum.repo,指向本地文件目录路径

[root@controller ~]# mv /etc/yum.repos.d/* /media/
[root@controller ~]# vi /etc/yum.repos.d/yum.repo
[centos]
name=centos7-2009
baseurl=file:///opt/centos7-2009
gpgcheck=0
enabled=1

[openstack]
name=openstack-train
baseurl=file:///opt/iaas-train/iaas-repo
gpgcheck=0
enabled=1

[root@controller ~]# yum clean all && yum repolist
…
repo id            repo name                        status
centos            centos7-2009                      4,070
openstack         openstack-train                     953
repolist: 5,023

在controller节点使用yum安装vsftpd服务,并将/opt目录下的文件共享出去

[root@controller ~]# yum install -y vsftpd
[root@controller ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf 
[root@controller ~]# systemctl start vsftpd
[root@controller ~]# systemctl enable vsftpd

配置compute节点yum安装源文件yum.repo,指向controller节点的共享文件目录路径

[root@compute ~]# mv /etc/yum.repos.d/* /media/
[root@compute ~]# cat  /etc/yum.repos.d/yum.repo
[centos]    
name=centos7-2009
baseurl=ftp://controller/centos7-2009
gpgcheck=0
enabled=1

[openstack]
name=openstack-train
baseurl=ftp://controller/iaas-train/iaas-repo
gpgcheck=0
enabled=1

[root@compute ~]# yum clean all && yum repolist
…
repo id            repo name                        status
centos            centos7-2009                      4,070
openstack         openstack-train                     953
repolist: 5,023

4)划分分区

在compute节点上的临时磁盘vdb中划分两个20G的分区

[root@compute ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0   50G  0 disk /mnt

[root@compute ~]# umount /mnt/

[root@compute ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +20G
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
Partition number (2-4, default 2): 
First sector (41945088-104857599, default 41945088): 
Using default value 41945088
Last sector, +sectors or +size{K,M,G} (41945088-104857599, default 104857599): +20G
Partition 2 of type Linux and of size 20 GiB is set

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@compute ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0   50G  0 disk 
├─vdb1 253:17   0   20G  0 part 
└─vdb2 253:18   0   20G  0 part

3.2 OpenStack部署

完成基础环境部署后,开始部署OpenStack云平台

1)配置环境变量

在controller节点和compute节点安装OpenStack云平台的安装脚本软件包

[root@controller ~]# yum install -y openstack-iaas
[root@compute ~]# yum install -y openstack-iaas

在controller节点和compute节点配置环境变量文件/etc/openstack/openrc.sh,按“i”建进入编辑模式进行配置配置完按ESC键输入:

:%s/^.\{1\}//

删除每行前1个字符,再按ESC键输入:wg保存退出,内容如下所示

[root@controller ~]# vi /etc/openstack/openrc.sh 
#修改以下内容
HOST_IP=10.0.0.10
HOST_PASS=000000           #controller节点root用户密码
HOST_NAME=controller
HOST_IP_NODE=10.0.0.20
HOST_PASS_NODE=000000      #compute节点root用户密码
HOST_NAME_NODE=compute
network_segment_IP=10.0.0.0/24
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
PLACEMENT_DBPASS=000000
PLACEMENT_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ens32      #仅主机那块网卡的地址
Physical_NAME=provider
minvlan=1
maxvlan=1000
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=vdb1           #compute节点第一个分区名称
SWIFT_PASS=000000
OBJECT_DISK=vdb2          #compute节点第二个分区名称
STORAGE_LOCAL_NET_IP=10.0.0.20

2)部署openStack云平台基础环境

在controller节点和compute节点都执行脚本iaas-pre-host.sh部署OpenStack云平台基础环境。完成后使用reboot命令重启虚拟机以生效配置

[root@controller ~]# iaas-pre-host.sh
[root@compute ~]# iaas-pre-host.sh

3)部署mariadb数据库

在controller节点执行脚本部署mariadb数据库

[root@controller ~]# iaas-install-mysql.sh

4)部署keystone服务

在controller节点执行脚本部署keystone服务

[root@controller ~]# iaas-install-keystone.sh

5)部署glance服务

在controller节点执行脚本部署glance服务

[root@controller ~]# iaas-install-glance.sh

6)部署nova服务

在controller节点执行脚本部署nova组件的控制服务

[root@controller ~]# iaas-install-placement.sh
[root@controller ~]# iaas-install-nova-controller.sh

执行完上面的脚本后,在compute节点执行脚本部署nova组件的计算服务,这样就将compute节点的cpu、内存及磁盘资源添加到OpenStack云平台的资源池中了

[root@compute ~]# iaas-install-nova-compute.sh

7)部署neutron服务

在controller节点执行脚本部署neutron组件的控制服务

[root@controller ~]# iaas-install-neutron-controller.sh

在compute节点执行脚本部署neutron组件的计算服务

[root@compute ~]# iaas-install-neutron-compute.sh

8)部署dashboard服务

在controller节点执行脚本部署dashboard组件服务

[root@controller ~]# iaas-install-dashboard.sh

安装完成后,使用浏览器访问OpenStack云平台

image-20240325150716228

image-20240325150754413

9)部署cinder服务

在controller节点执行脚本部署cinder组件的控制服务

[root@controller ~]# iaas-install-cinder-controller.sh

controller节点脚本执行完成后,在compute节点执行脚本部署cinder组件的计算服务

[root@compute ~]# iaas-install-cinder-compute.sh

10)部署swift服务

在controller节点执行脚本部署swift组件的控制服务

[root@controller ~]# iaas-install-swift-controller.sh

controller节点脚本执行完成后,在compute节点执行脚本部署swift组件的计算服务

[root@compute ~]# iaas-install-swift-compute.sh

3.3 创建cirros云主机

1)上传镜像

在controller节点使用OpenStack相关命令上传cirros镜像

[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare < /opt/iaas/images/cirros-0.3.4-x86_64-disk.img 
+------------------+--------------------------------------------------------------------+
| Property         | Value                                                              |
+------------------+--------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                   |
| container_format | bare                                                               |
| created_at       | 2022-02-16T02:58:23Z                                               |
| disk_format      | qcow2                                                              |
| id               | 76ce1b38-b1fa-465c-947f-288ea4760761                               |
| min_disk         | 0                                                                  |
| min_ram          | 0                                                                  |
| name             | cirros                                                             |
| os_hash_algo     | sha512                                                             |
| os_hash_value    |1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316 |
|                  |799e23240f4f739d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2       |
| os_hidden        | False                                                              |
| owner            | 1ac0739939db4dc78bf42802ba0205e9                                   |
| protected        | False                                                              |
| size             | 13287936                                                           |
| status           | active                                                             |
| tags             | []                                                                 |
| updated_at       | 2022-02-16T02:58:24Z                                               |
| virtual_size     | Not available                                                      |
| visibility       | shared                                                             |
+------------------+--------------------------------------------------------------------+

2)创建网络

在controller节点使用OpenStack相关命令创建一个net网络

[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# openstack network create net
[root@controller ~]# openstack subnet create --network net --subnet-range 10.0.0.0/24 --gateway 10.0.0.1 subnet

3)创建云主机

登录dashboard页面,在左侧菜单栏中选择“项目”计算实例”,点击“创建实例”,输入实例名称cirros,默认可用域为nova,数量为1,点击下一步:选择已共享的cirros镜像,选择不创建新卷,点击下一步:选择m1.tiny实例类型,点击下一步;选择net为虚拟机的网络;点击“创建实例”按钮就可以完成虚拟机创建等虚拟机创建完成后,可以看到虚拟机状态为“运行”,只要求创建cirros的云主机不报错,不要求创建后的cirros云主机可以使用xshell连接。

岁月静好
最后更新于 2024-04-14