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云平台
- 访问地址:http://10.0.0.10/dashboard
- domain:demo
- 用户名:admin
- 密码:000000
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连接。
Comments NOTHING