OpenStack环境设计和系统准备

来自CloudWiki
跳转至: 导航搜索

实训内容

OpenStack Mitaka平台的安装

参考文档:

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo

先电云计算基础架构服务平台用户手册2.1版

实验准备

硬件准备

笔记本电脑中装有VMware workstation软件

VM中准备两台虚拟机: VMware中快速构建Openstack Mitaka平台:

准备两台虚拟机,内存不低于4G:

controller:CPU1个,内存4G,硬盘60G,网卡两块,网卡1:内网vnet8,网卡2:仅主机
compute:CPU2个(打开CPU硬件虚拟化),内存2G,硬盘60G(安装时空出10G以上的剩余空间),网卡两块,网卡1:内网vnet8,网卡2:仅主机

软件准备

Centos7 操作系统

时区:中国上海,分区:调整分区,

调整:/ 40G /home 10G swap 6G

关闭kdump

安装包模式:minimal最小化 297个包 5-10分钟

网络配置:

Controller节点:

VMNET8网卡(第一块网卡):nat模式,192.168.100.10

VMNET1网卡(第二块网卡):仅主机,192.168.200.10

Compute节点:

VMNET8网卡(第一块网卡):nat模式,192.168.100.20

VMNET1网卡(第二块网卡): 仅主机,192.168.200.20

考前准备

安装好两个节点,要求:

(1)controller:内存2G,CPU 2个,自动分区,网卡两块:NAT,仅主机,硬盘建议60G,创建新的虚拟磁盘,镜像centos7.2.虚拟机的名字为学号后两位+姓名全拼+ controller。

(2)compute:内存2G,CPU 2个,手动分区(交换分区4G,根分区25G,/boot 500M),网卡两块:NAT,仅主机,硬盘建议60G,创建新的虚拟磁盘,镜像centos7.2. 虚拟机的名字为学号后两位+姓名全拼+ compute。

名词解释

基础环境的构建主要包括:

  • 配置主机名
  • 安全设置
  • 网络设置
  • 配置yum源
  • 配置环境变量

配置主机名的作用是将控制节点和计算节点分别按照各自的作用命名,以示区分;关闭selinux、防火墙和网络管理器是为了避免这三者对部署造成阻碍;配置yum源,是考虑到在线yum安装速度较慢,改为本地yum源安装加快速度。

名词解释:

  • yum :Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。https://baike.baidu.com/item/yum/2835771?fr=aladdin
  • ftp服务器:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。支持FTP协议的服务器就是FTP服务器。用户能够从FTP服务器上下载、上传文件。

配置主机名

配置主机名

控制节点

hostnamectl set-hostname controller

按ctrl+d 退出 重新登陆

计算节点

hostnamectl set-hostname compute

按ctrl+d 退出 重新登陆

配置主机名和IP的映射

控制、计算节点:

vi /etc/hosts :

添加:

  192.168.200.10 controller
  192.168.200.20 compute

service network restart

ping controller

ping compute

安全设置

Controller和compute节点:

selinux配置

(关闭高级安全功能)

修改配置文件:永久生效,但是需重启;执行setenforce 0 立即生效

[root@controller ~]# sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config 永久性生效

或者用vi /etc/selinux/config把配置改成如下配置,其余项不变:

  SELINUX=permissive

[root@controller ~]# getenforce
Enforcing
[root@controller ~]# setenforce 0  仅当前生效
[root@controller ~]# getenforce
Permissive

修改配置文件永久生效 需要重启 执行setenforce 0 立即生效

关闭防火墙

[root@controller ~]# systemctl stop iptables  //暂时性关闭
[root@controller ~]# systemctl disable iptables   //永久性关闭
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@controller ~]# systemctl  stop firewalld.service
[root@controller ~]# systemctl  disable  firewalld.service 

验证

重启controller、compute节点之后,执行以下命令

[root@controller ~]# getenforce
Permissive
[root@controller ~]#  systemctl status firewalld.service (确保关闭!)
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Nov 19 17:08:01 controller systemd[1]: Starting...
Nov 19 17:08:04 controller systemd[1]: Started ...
Nov 19 18:45:25 controller systemd[1]: Stopping...
Nov 19 18:45:26 controller systemd[1]: Stopped ...
Hint: Some lines were ellipsized, use -l to show in full.

 systemctl status iptables (确保关闭!)

网络设置

(控制、计算节点)

关闭NetworkManager

[root@controller ~]# systemctl stop NetworkManager 
[root@controller ~]# systemctl disable NetworkManager 

删除软件包

yum remove -y NetworkManager firewalld

启动传统网络管理

service network restart

配置第二块网卡

(控制节点)

cd /etc/sysconfig/network-scripts

vi ifcfg-eno33554984(以你实际的网卡名称为准)

注意:同一节点的两块网卡网段不一样,但是IP地址最后一位请用同一个数字

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554984(以你实际的网卡名称为准)
DEVICE=eno33554984(以你实际的网卡名称为准)
ONBOOT=yes
IPADDR=192.168.200.10
PREFIX=24
DNS1=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

service network restart

(计算节点)

cd /etc/sysconfig/network-scripts

vi ifcfg-eno33554984(以你实际的网卡名称为准)

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554984(以你实际的网卡名称为准)
DEVICE=eno33554984(以你实际的网卡名称为准)
ONBOOT=yes
IPADDR=192.168.200.20
PREFIX=24
DNS1=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

service network restart

配置网络安装仓库(yum源)

挂载iso文件

控制节点

在两个光驱上分别挂载iso文件(CentOS-7-x86_64-DVD-1511.iso和XianDian-IaaS-v2.1.iso):

Openstack9-3.PNG

把右下角的光盘连接按钮连接上:

Openstack9-4.PNG

重启电脑

【挂载CentOS-7-x86_64-DVD-1511.iso】

[root@controller ~]# mkdir /mnt/centos

[root@controller ~]# mount -o loop /dev/sr1 /mnt/centos(此命令没有任何输出,如果有输出就说明发生了错误)

[root@controller ~]# ls /mnt/centos
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL 

注: 挂载完毕之后最好用上面的ls命令检查一下,如果挂反了,就执行umount /mnt/centos命令,重新挂载一下。

【挂载XianDian-IaaS-v2.1.iso】


# mkdir /mnt/iaas

[root@controller ~]# mount -o loop /dev/sr0 /mnt/iaas(此命令没有任何输出,如果有输出就说明发生了错误)
[root@controller ~]# ls /mnt/iaas
iaas-repo  images

注: 挂载完毕之后最好用上面的ls命令检查一下,如果挂反了,就执行umount /mnt/iaas命令,重新挂载一下。

配置自动挂载

vi /etc/fstab

/dev/sr1                /mnt/centos             iso9660 defaults        0 0
/dev/sr0                /mnt/iaas               iso9660 defaults        0 0

重启验证自动挂载是否成功。

配置repo文件

控制节点

yum源备份

[root@controller ~]mv /etc/yum.repos.d/* /opt/ //yum源备份

创建repo文件

[root@controller ~]# cd /etc/yum.repos.d

[root@controller yum.repos.d]# ls

[root@controller yum.repos.d]# pwd

/etc/yum.repos.d

确保当前目录是此目录

[root@controller yum.repos.d]# vi local.repo

[centos]
name=centos
baseurl=file:///mnt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///mnt/iaas/iaas-repo
gpgcheck=0
enabled=1

搭建FTP服务器:

[root@controller yum.repos.d]# yum install vsftpd –y

[root@controller yum.repos.d]# vi /etc/vsftpd/vsftpd.conf

添加

anon_root=/mnt/ #此处错误,修改为anon_root=/mnt/

[root@controller yum.repos.d]# systemctl start vsftpd

[root@controller yum.repos.d]# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

验证:

清除缓存,验证yum源 yum clean all

root@controller yum.repos.d]# yum repolist

Loaded plugins: fastestmirror
centos                                                   | 3.6 kB     00:00
iaas                                                     | 2.9 kB     00:00
(1/3): centos/group_gz                                     | 155 kB   00:00
(2/3): centos/primary_db                                   | 2.8 MB   00:00
(3/3): iaas/primary_db                                     | 2.3 MB   00:00
Determining fastest mirrors
repo id                              repo name                            status
centos                               centos                               3,723
iaas                                 iaas                                 1,681
repolist: 5,404

计算节点

yum源备份

[root@compute ~]mv /etc/yum.repos.d/* /opt/ //yum源备份

创建repo文件

[root@compute ~]# cd /etc/yum.repos.d

[root@compute yum.repos.d]# ls

[root@compute yum.repos.d]# vi centos.repo

[centos]
name=centos
baseurl=ftp://192.168.200.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.200.10/iaas/iaas-repo
gpgcheck=0
enabled=1

验证

清除缓存,验证yum源 yum clean all

root@controller yum.repos.d]# yum repolist

Loaded plugins: fastestmirror
centos                                                   | 3.6 kB     00:00
iaas                                                     | 2.9 kB     00:00
(1/3): centos/group_gz                                     | 155 kB   00:00
(2/3): centos/primary_db                                   | 2.8 MB   00:00
(3/3): iaas/primary_db                                     | 2.3 MB   00:00
Determining fastest mirrors
repo id                              repo name                            status
centos                               centos                               3,723
iaas                                 iaas                                 1,681
repolist: 5,404

编辑环境变量

controller节点

 yum install iaas-xiandian -y


安装完之后增加/etc/xiandian/openrc.sh , /usr/local/bin/iaas-*.sh 等20-30个脚本文件

[root@controller ~]# ls /usr/local/bin

iaas-install-alarm.sh                  iaas-install-neutron-compute-vlan.sh
iaas-install-ceilometer-compute.sh     iaas-install-neutron-controller-flat.sh
iaas-install-ceilometer-controller.sh  iaas-install-neutron-controller-gre.sh
iaas-install-cinder-compute.sh         iaas-install-neutron-controller.sh
iaas-install-cinder-controller.sh      iaas-install-neutron-controller-vlan.sh
iaas-install-dashboard.sh              iaas-install-nova-compute.sh
iaas-install-glance.sh                 iaas-install-nova-controller.sh
iaas-install-heat.sh                   iaas-install-swift-compute.sh
iaas-install-keystone.sh               iaas-install-swift-controller.sh
iaas-install-mysql.sh                  iaas-install-trove.sh
iaas-install-neutron-compute-flat.sh   iaas-pre-host.sh
iaas-install-neutron-compute-gre.sh    iaas-uninstall-all.sh


编辑文件/etc/xiandian/openrc.sh,此文件是安装过程中的各项参数,根据每项参数上一行的说明及服务器实际情况进行配置。

HOST_IP=192.168.200.10(控制节点 仅主机那个网卡的IP地址)

HOST_NAME=controller

HOST_IP_NODE=192.168.200.20(计算节点 仅主机那个网卡的IP地址)

HOST_NAME_NODE=compute

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

NOVA_DBPASS=000000

NOVA_PASS=000000

NEUTRON_DBPASS=000000

NEUTRON_PASS=000000

METADATA_SECRET=000000

INTERFACE_NAME=eno33554984(这里是第2块网卡实际的名称)

编辑后,可以如下命令检查一下:

[root@controller xiandian]# grep -v ^# /etc/xiandian/openrc.sh | uniq -u(应该有19行)

compute节点

 yum install iaas-xiandian -y


安装完之后增加/etc/xiandian/openrc.sh , /usr/local/bin/iaas-*.sh 等20-30个脚本文件

配完控制节点后,可在计算节点用如下命令将配置文件复制过来。

scp 192.168.200.10:/etc/xiandian/openrc.sh /etc/xiandian/

复制完成之后,需要把openrc.sh里面INTERFACE_NAME一项改成计算节点实际的网卡2名称(使用ip addr查询)。

完成后,可以如下命令检查一下:

[root@compute xiandian]# grep -v ^# /etc/xiandian/openrc.sh | uniq -u(应该有19行)