手动搭建openstack云平台-Linux

该实验旨在通过脚本部署一个由控制节点和计算节点组成的OpenStack平台。首先,配置YUM源并上传基础镜像。接着,搭建FTP服务器供计算节点访问。然后,修改SELinux配置和关闭防火墙。最后,对计算节点的磁盘进行分区,创建Cinder和Swift存储。所有这些步骤都是为了准备安装和部署OpenStack服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

1、了解OpenStack平台部署方法

2、了解脚本部署方式

3、使用脚本部署OpenStack平台

二、实验软件要求

VMware、Centos7、CentOS-7-x86_64-DVD-1511 、XianDian-IaaS-v2.2 

三、实验内容

1、部署架构

一台控制节点和一台计算节点组成简单架构OpenStack平台,控制节点安装MySQL、Keystone、Glance、Nova、Neutron、Dashboard等服务,主要作为认证、镜像管理节点,以及提供Nova和Neutron服务的管理节点。提供Dashboard界面服务。计算节点主要安装nova-compute和Neutron服务,Nova服务提供云主机服务,Neutron提供网络服务。通过Shell脚本进行OpenStack平台部署,脚本分为控制节点脚本和计算节点脚本,对应节点执行部署脚本。

2、规划节点

Linux操作系统的节点规划,见下表。

IP

主机名

节点

192.168.100.10

controller

控制节点

192.168.100.20

compute

计算节点

3、基础准备

准备2台VMware虚拟机,手动最小化安装2台CentOS 7.2系统,作为OpenStack节点,第一张网卡为仅主机模式,第二张网卡为NAT模式,以及配置CPU虚拟化,计算节点至少使用4 GB内存,硬盘不小于50GB。第一张网卡网段为192.168.100.0/24,第二张网卡网段为192.168.200.0/24。并对compute节点分两个区为sdb1与sdc1。

  1. 实施步骤

四、YUM源配置

[root@localhost ~]# rm -rf /etc/yum.repos.d/CentOS-*

[root@localhost ~]# cat > /etc/yum.repos.d/local.repo <<EOF

> [centos]

> name=centos

> baseurl=file:///opt/centos7.2

> gpgcheck=0

> enabled=1

> [iaas]

> name=iaas

> baseurl=file:///opt/iaas/iaas-repo

> gpgcheck=0

> enabled=1

> EOF

controller节点

[root@localhost ~]# rm -rf /etc/yum.repos.d/CentOS-*

[root@localhost ~]# cat > /etc/yum.repos.d/local.repo <<EOF

> [centos]

> name=centos

> baseurl=ftp://192.168.100.10/centos7.2

> gpgcheck=0

> enabled=1

> [iaas]

> name=iaas

> baseurl=ftp://192.168.100.10/iaas/iaas-repo

> gpgcheck=0

> enabled=1

> EOF

compute节点

五、上传基础镜像并挂载

[root@localhost ~]# ll

total 7012772

-rw-------. 1 root root 1319 Oct 31 13:17 anaconda-ks.cfg

-rw-r--r--. 1 root root 4329570304 Jan 16 2017 CentOS-7-x86_64-DVD-1511.iso

-rw-r--r--. 1 root root 2851502080 Nov 5 2017 XianDian-IaaS-v2.2.iso

[root@localhost ~]# mkdir /opt/centos7.2

[root@localhost ~]# mkdir /opt/iaas

[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso  /mnt/

[root@controller ~]# cp -rvf /mnt/*  /opt/centos7.2/

[root@controller ~]# umount /mnt/

[root@controller ~]# mount -o loop XianDian-IaaS-v2.2.iso  /mnt/

[root@controller ~]# cp -rvf /mnt/*  /opt/iaas/

[root@controller ~]# umount /mnt/

上传XianDian-IaaS-v2.2.iso和CentOS-7-x86_64-DVD-1511.iso两个镜像包至controller节点/root目录中,并将ISO文件挂载至/opt/目录中。

清除缓存,验证yum源。测试本地yum源是否安装成功。

六、搭建ftp服务器,开启并设置自启

控制节点安装vsftpd服务,提供计算节点ftp访问方式。

  # yum install vsftpd -y

在/etc/vsftpd/vsftpd.conf配置中添加一行代码:

  anon_root=/opt    

重启vsftpd服务:

# systemctl restart vsftpd

#systemctl enable vsftpd

七、修改selinux 文件(compute 和controller 同样配置)

#vi /etc/seliunx/config

修改SELINUX=disabled

#setenforce 0 (立即生效)

查看配置:#getenforce (查看selinux 规则,若输出为permissive 则成功)

八、配置防火墙(compute 和controller 同样配置)

禁止开机自启:#systemctl disable firewalld

立即关闭:#systemctl stop firewalld

九、划分空白磁盘,cinder存储和swift存储(compute)

[root@compute ~]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0  100G  0 disk

├─sda1            8:1    0  200M  0 part /boot

└─sda2            8:2    0 99.8G  0 part

  ├─centos-root 253:0    0 83.8G  0 lvm  /

  └─centos-swap 253:1    0   16G  0 lvm  [SWAP]

sdb               8:16   0   50G  0 disk

sdc               8:32   0   50G  0 disk

sr0              11:0    1 1024M  0 rom  

处理分区sdb

[root@compute ~]# parted /dev/sd

sda   sda1  sda2  sdb   sdc  

[root@compute ~]# parted /dev/sd

sda   sda1  sda2  sdb   sdc  

[root@compute ~]# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt                                                      

(parted) print                                                           

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 53.7GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart cinder 0 51GB

Warning: The resulting partition is not properly aligned for best performance.

Ignore/Cancel? Ignore                                                    

(parted) print                                                            

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 53.7GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name    Flags

 1      17.4kB  51.0GB  51.0GB               cinder

(parted) quit                                                            

Information: You may need to update /etc/fstab.

处理分区sdc

[root@compute ~]# parted /dev/sdc

GNU Parted 3.1

Using /dev/sdc

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt                                                     

(parted) print                                                            

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 53.7GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart swift 0 51GB                                              

Warning: The resulting partition is not properly aligned for best performance.

Ignore/Cancel? Ignore                                                    

(parted) print                                                            

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 53.7GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name   Flags

 1      17.4kB  51.0GB  51.0GB               swift

(parted) quit                                                            

Information: You may need to update /etc/fstab.

Sdb与Sdc进行格式化

[root@compute ~]# mkfs.xfs /dev/sdb

mkfs.xfs: /dev/sdb appears to contain a partition table (gpt).

mkfs.xfs: Use the -f option to force overwrite.

[root@compute ~]# mkfs.xfs /dev/sdc

mkfs.xfs: /dev/sdc appears to contain a partition table (gpt).

mkfs.xfs: Use the -f option to force overwrite.

查看分区结果

[root@compute ~]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0  100G  0 disk

├─sda1            8:1    0  200M  0 part /boot

└─sda2            8:2    0 99.8G  0 part

  ├─centos-root 253:0    0 83.8G  0 lvm  /

  └─centos-swap 253:1    0   16G  0 lvm  [SWAP]

sdb               8:16   0   50G  0 disk

└─sdb1            8:17   0 47.5G  0 part

sdc               8:32   0   50G  0 disk

└─sdc1            8:33   0 47.5G  0 part

sr0              11:0    1 1024M  0 rom 

[root@compute ~]# fdisk -l

#         Start          End    Size  Type            Name

 1           34     99609375   47.5G  Microsoft basic cinder

 1           34     99609375   47.5G  Microsoft basic swift

十、编辑环境变量(controller、compute相同)

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

配置信息如下:

[root@controller ~]# vi /etc/xiandian/openrc.sh

##--------------------system Config--------------------##

##Controller Server Manager IP. example:x.x.x.x

HOST_IP=192.168.100.10

##Controller Server hostname. example:controller

HOST_NAME=controller

##Compute Node Manager IP. example:x.x.x.x

HOST_IP_NODE=192.168.100.20

##Compute Node hostname. example:compute

HOST_NAME_NODE=compute

##--------------------Rabbit Config ------------------##

##user for rabbit. example:openstack

RABBIT_USER=openstack

##Password for rabbit user .example:000000

RABBIT_PASS=000000

##--------------------MySQL Config---------------------##

##Password for MySQL root user . exmaple:000000

DB_PASS=000000

##--------------------Keystone Config------------------##

##Password for Keystore admin user. exmaple:000000

DOMAIN_NAME=domain

ADMIN_PASS=000000

DEMO_PASS=000000

##Password for Mysql keystore user. exmaple:000000

KEYSTONE_DBPASS=000000

##--------------------Glance Config--------------------##

##Password for Mysql glance user. exmaple:000000

GLANCE_DBPASS=000000

##Password for Keystore glance user. exmaple:000000

GLANCE_PASS=000000

##--------------------Nova Config----------------------##

##Password for Mysql nova user. exmaple:000000

NOVA_DBPASS=000000

##Password for Keystore nova user. exmaple:000000

NOVA_PASS=000000

##--------------------Neturon Config-------------------##

##Password for Mysql neutron user. exmaple:000000

NEUTRON_DBPASS=000000

##Password for Keystore neutron user. exmaple:000000

NEUTRON_PASS=000000

##metadata secret for neutron. exmaple:000000

METADATA_SECRET=000000

##External Network Interface. example:eth1

INTERFACE_NAME=eno33554952(controller外网网卡名称)

##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101

#minvlan=101

##Last Vlan ID in VLAN RANGE for VLAN Network. example:200

#maxvlan=200

##--------------------Cinder Config--------------------##

##Password for Mysql cinder user. exmaple:000000

CINDER_DBPASS=000000

##Password for Keystore cinder user. exmaple:000000

CINDER_PASS=000000

##Cinder Block Disk. example:md126p3

BLOCK_DISK=sdb1(分区信息)

##--------------------Trove Config--------------------##

##Password for Mysql Trove User. exmaple:000000

TROVE_DBPASS=000000

##Password for Keystore Trove User. exmaple:000000

TROVE_PASS=000000

##--------------------Swift Config---------------------##

##Password for Keystore swift user. exmaple:000000

SWIFT_PASS=000000

##The NODE Object Disk for Swift. example:md126p4.

OBJECT_DISK=sdc1(分区信息)

##The NODE IP for Swift Storage Network. example:x.x.x.x.

STORAGE_LOCAL_NET_IP=192.168.100.20

##--------------------Heat Config----------------------##

##Password for Mysql heat user. exmaple:000000

HEAT_DBPASS=000000

##Password for Keystore heat user. exmaple:000000

HEAT_PASS=000000

##--------------------Ceilometer Config----------------##

##Password for Mysql ceilometer user. exmaple:000000

CEILOMETER_DBPASS=000000

##Password for Keystore ceilometer user. exmaple:000000

CEILOMETER_PASS=000000

##--------------------AODH Config----------------##

##Password for Mysql AODH user. exmaple:000000

AODH_DBPASS=000000

##Password for Keystore AODH user. exmaple:000000

AODH_PASS=000000

[root@controller ~]#

将controller节点的openrc.sh传输至compute节点所放目录下。

[root@compute ~]# scp controller://etc/xiandian/openrc.sh /etc/xiandian/openrc.sh

The authenticity of host 'controller (192.168.100.10)' can't be established.

ECDSA key fingerprint is 32:68:31:bb:4b:c9:2b:e6:73:7f:c0:2b:49:4b:97:c4.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'controller' (ECDSA) to the list of known hosts.

root@controller's password:

openrc.sh                                                                              100% 3105     3.0KB/s   00:00   

[root@compute ~]# cat /etc/xiandian/openrc.sh

十一、使用脚本安装部署OpenStack平台(controller、compute)

1、双节点执行 iaas-pre-host.sh

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

重启系统,执行reboot命令

执行完这个脚本两个节点都要重启!!!(compute 节点要先重启)

搭建OpenStack云平台需要进行一系列的步骤,包括准备环境、安装组件、配置、启动服务等。具体步骤如下: 1. 准备环境 在搭建OpenStack之前,需要确保服务器满足以下要求: - 操作系统:Ubuntu Server 18.04 LTS或CentOS 7.5及以上版本。 - 硬件:至少4个CPU、16GB内存、100GB可用磁盘空间、1个网卡。 - 网络:至少一个可用IP地址和一个可用的DNS服务器地址。 2. 安装组件 在准备好环境后,需要安装以下组件: - MySQL:用于存储OpenStack的数据。 - RabbitMQ:OpenStack各组件之间的消息队列。 - Keystone:OpenStack的认证服务- Glance:OpenStack的镜像服务- Nova:OpenStack的计算服务- Neutron:OpenStack的网络服务- Horizon:OpenStack的Web管理界面。 这些组件的安装可以通过包管理工具(如apt、yum)进行安装,也可以通过源代码编译安装。 3. 配置 安装完成后,需要进行一些配置工作,包括: - 配置MySQL和RabbitMQ:创建数据库、用户和权限等。 - 配置Keystone:创建用户、服务、终端等。 - 配置Glance:配置镜像存储路径、格式等。 - 配置Nova:配置虚拟化技术、网络等。 - 配置Neutron:配置网络、子网、路由等。 - 配置Horizon:配置访问地址、认证方式等。 这些配置工作需要修改OpenStack各组件的配置文件,一般位于/etc目录下。 4. 启动服务 配置完成后,需要启动各个服务。可以使用systemctl或service命令启动服务,也可以使用OpenStack提供的命令进行启动。 需要注意的是,服务的启动顺序非常重要,一般为: - RabbitMQ - MySQL - Keystone - Glance - Nova - Neutron - Horizon 5. 访问OpenStack 启动完成后,可以访问OpenStack的Web管理界面进行管理。默认访问地址为http://controller/dashboard,其中controller为OpenStack控制节点IP地址。 需要注意的是,OpenStack搭建比较复杂,需要对Linux系统和OpenStack的架构有一定的了解。如果没有经验,建议使用OpenStack发行版(如Red Hat OpenStack、Canonical OpenStack等)进行安装和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值