OpenStack环境设计和系统准备
实训内容
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源安装加快速度。
名词解释:
- Selinux: SELinux是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对Linux的安全加强系统。https://blog.csdn.net/gulinxieying/article/details/78677139
- 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):
把右下角的光盘连接按钮连接上:
重启电脑
【挂载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行)