企业网站趋势,资阳优化团队平台,深圳龙华区教师招聘,营销型网站建设制作OpenStack搭建
前言
搭建采用双节点安装#xff0c;即controller控制节点和compute计算节点。 CentOS7 系统选择 2009 版本#xff1a;CentOS-7-x86_64-DVD-2009.iso 可从阿里镜像站下载#xff1a;https://mirrors.aliyun.com/centos/7/isos/x86_64/
OpenStack使用竞赛培…OpenStack搭建
前言
搭建采用双节点安装即controller控制节点和compute计算节点。 CentOS7 系统选择 2009 版本CentOS-7-x86_64-DVD-2009.iso 可从阿里镜像站下载https://mirrors.aliyun.com/centos/7/isos/x86_64/
OpenStack使用竞赛培训平台提供的镜像包。 备赛时经常浏览别人做样卷的文章看到很多人都在求这个但其实这玩意儿是可以搞出来的不过估计就我一个人想到了搞出来的方法。而且这玩意儿好像是有版权保护的我也只能自己用了。你们可以通过在这个网站申请环境进行操作https://ncc.douxuedu.com/
使用到的工具/软件
VMware Workstation ProSecureCRPT、SecureFX(其他远程连接软件也可以看个人喜好)
节点规划如下
主机名IP/24内存/处理器数量/磁盘节点controller192.168.100.106GB/4/40GB控制节点compute192.168.100.204GB/4/40GB20GB计算节点
操作过程
虚拟机的创建与安装
如果是在网站中申请资源这一步都不需要做
创建虚拟机
使用Vmware软件在上方导航栏【文件】处选择【新建虚拟机】或者在主页点击【创建新的虚拟机】 在【新建虚拟机向导】框中选择【自定义安装】然后【下一步】 虚拟机兼容性界面默认下一步
虚拟机操作系统界面选择【稍后安装操作系统】 注Vmware从14版本开始在这一步安装操作系统若先指定镜像文件下一步就会变成下图这个步骤要你创建一个用户我们并不需要多余的用户只需要root用户即可所以这里先不指定镜像文件。 ⬆指定镜像文件后 操作系统选择【Linux】版本选择【CentOS 7 64 位】 在【命名虚拟机】步骤中设置【虚拟机名称】为【controller】【位置】无所谓选择一个空间足够且你记得住的位置
在【处理器配置】中根据个人电脑的配置数量不小于4个即可 在【虚拟机内存】界面中设置虚拟机的内存根据个人电脑配置不小于4G即可 在【网络类型】界面选择【仅主机模式】 【选择I/O控制器类型】和【选择磁盘类型】界面使用推荐配置默认下一步
【选择磁盘】界面选择【创建新虚拟磁盘】 【指定磁盘容量】界面设置【最大磁盘大小】为40G你要更多也可以 【指定磁盘文件】界面默认下一步
在最后的界面我们选择【自定义硬件】 在弹出的选项卡中我们选择光盘映像指定ISO镜像文件 可以将不需要的硬件移除减少资源占用USB、声卡、打印机 点击下方添加按钮添加一张网卡设置为NAT模式 然后我们关闭选项卡点击完成这样虚拟机就创建好了
安装虚拟机
我们开启虚拟机在启动界面通过方向上下键和回车选择【install Centos 7】这样能更快的安装
等待一段时间后会进入安装向导界面 在选择语言界面我们拉至最底下选择中文 在安装信息摘要界面【软件选择】选择【最小安装】 【安装位置】选择【我要配置分区】 选择【点这里自动创建他们】
【KDUMP】禁用kdump 【网络和主机名】配置ens32网卡 在【常规】处勾选【可用时自动链接到这个网络】 在【IPv4设置】栏选择【方法】为【手动】点击【Add】添加IP地址保存退出 配置ens33网卡只需要在【常规】处勾选【可用时自动链接到这个网络】即可 设置完成之后我们点击【开始安装】 在安装过程中设置root用户的密码 为了避免记混密码默认设置为000000 由于密码设置过于简单需要按两下完成才可设置 然后等待安装完毕重启即可 然后我们以相同的步骤安装计算节点compute虚拟机(克隆也行不过要用完整克隆并且还需要额外的操作)设置的区别在于
compute需要额外添加一块硬盘作为cinder和swift还有manila的存储磁盘。设置IP时controller节点是192.168.100.10compute节点是192.168.100.20
配置如下图
克隆机额外操作
如果你是使用克隆出的compute那么你还需要进行以下操作 注使用远程连接工具方便操作 首先UUID可能会影响到后续的步骤我们使用uuid命令生成一个随机的uuid并将其复制 我们进入ens32网卡配置文件将UUID修改为生成的UUID并修改IP地址为192.168.100.20 然后重启网络服务 如果你没有搭建云平台的经验无法保证在后面的步骤中能够不犯错误那么我建议你在这开始保存快照一步一个脚印以便后面连自己都不知道哪里错了的情况可以从快照开始重来。
虚拟机基础配置
更改主机名
控制节点192.168.100.10改为controller 计算节点192.168.100.20改为compute
[rootlocalhost ~]# hostnamectl set-hostname controller
[rootlocalhost ~]# bash
[rootcontroller ~]#[rootlocalhost ~]# hostnamectl set-hostname compute
[rootlocalhost ~]# bash
[rootcompute ~]#连接光盘映像文件
打开Vmware软件右键控制节点controller的选项卡保证【可移动设备】→【CD/DVD(IDE)】处于连接状态 如果是在网站上的环境可以不用做直接跳转到配置YUM源那步
上传云平台镜像
打开SecureCRT在控制节点controller选项卡右键选择【打开SecureFX】 进入SecureFX后将提供的openstack平台镜像传入到root目录下若无法拖入可以复制文件后粘贴 传输完成后可在/root目录下查看到镜像文件
[rootcontroller ~]# ls
anaconda-ks.cfg chinaskills_cloud_iaas_v2.0.3.iso
[rootcontroller ~]# 如果是在网站上的环境那么直接从他们的源里拉取就行了 curl -O http://mirrors.douxuedu.com/competition/chinaskills_cloud_iaas_v2.0.3.iso
挂载镜像
#我们将镜像挂载首先在opt目录下创建一个centos目录用于存放centos镜像的软件包
[rootcontroller ~]# mkdir /opt/centos
#然后进行挂载我们使用永久挂载的方式进行挂载这样可以防止重启后挂载的内容丢失导致无法安装服务。
#先将centos镜像挂载到一个第三方空目录/mnt里
[rootcontroller ~]# mount -o loop /dev/sr0 /mnt/
#可用ls命令查看是否真的挂载成功
[rootcontroller ~]# ls /mnt/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
#再把/mnt目录下的所有内容复制到我们真正要挂载的目录/opt/centos下
[rootcontroller ~]# cp -rvf /mnt/* /opt/centos/
#cp 复制命令即copy的缩写
#-rvf为选项r为递归复制及该文件夹及包含的文件全部复制
#拷贝文件夹时这个参数必须加上否则报错。
#v为显示命令执行的操作可省略。
#F为强制复制无论目标文件或目录是否存在。
#*为通配符代表多个所有字符这里意义为mnt目录下的所有文件。
#命令执行完后就可在/opt/centos目录下看见和/mnt/目录下一样的内容了这些复制过来的东西在重启后也不会消失所以我称其为永久挂载
[rootcontroller ~]# ls /opt/centos/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
#mnt目录只是我们完成永久挂载的“工具人”因此我们再把他取消挂载一下
#可用看到取消挂载后/mnt又变成了空目录
[rootcontroller ~]# umount /mnt
[rootcontroller ~]# ls /mnt/
[rootcontroller ~]#
#相同的操作我们把openstack的镜像也用同样的方法进行永久挂载操作
#请出我们的工具人将openstack镜像挂载过去
[rootcontroller ~]# mount -o loop chinaskills_cloud_iaas_v2.0.3.iso /mnt
mount: /dev/loop0 写保护将以只读方式挂载
[rootcontroller ~]# ls /mnt/
iaas-repo images
#将/mnt/目录下所有内容复制到/opt/目录下
[rootcontroller ~]# cp -rvf /mnt/* /opt
#最后取消挂载mnt目录利用完他就不要了
[rootcontroller ~]# umount /mnt/
[rootcontroller ~]# 配置YUM源仓库
控制节点controller采用本地源的方式配置YUM源仓库计算节点compute通过ftp服务使用控制节点controller的资源配置YUM源仓库。 当然计算节点compute也可以和控制节点controller一样都采用本地源的方式步骤都是一样的但这样比较费时还更加占用空间。
如果是网站申请的环境两个节点均使用他们的http源即可路径分别是 baseurl http://mirrors.douxuedu.com/Centos7 baseurlhttp://mirrors.douxuedu.com/iaas
控制节点controller
#首先删除系统源
[rootcontroller ~]# rm -rf /etc/yum.repos.d/*
#创建一个新的仓库文件
[rootcontroller ~]# vi /etc/yum.repos.d/local.repo
[centos]
namecentos
baseurlfile:///opt/centos
enabled1
gpgcheck0
[iaas]
nameiaas
baseurlfile:///opt/iaas-repo
enabled1
gpgcheck0
#检查可用性若可用包显示0则为上面的文件配置写错了
[rootcontroller ~]# yum clean all yum repolist
...
源标识 源名称 状态
centos centos 4,070
iaas iaas 954
repolist: 5,024
[rootcontroller ~]#
#配置好YUM源仓库后我们就可以安装软件了安装ftp服务
#在控制节点controller安装ftp服务方便计算节点compute使用控制节点controller的资源
[rootcontroller ~]# yum -y install vsftpd
...
Complete!
#修改ftp服务的配置文件共享/opt目录
[rootmycat ~]# echo anon_root/opt /etc/vsftpd/vsftpd.conf
#启动ftp服务并设置开机自启
[rootmycat ~]# systemctl start vsftpd systemctl enable vsftpd
...
#关闭防火墙并关闭开机自启否则计算节点compute的ftp请求会被防火墙阻拦
[rootcontroller ~]# systemctl stop firewalld systemctl disable firewalld计算节点compute
#首先还是删除系统源
[rootcompute ~]# rm -rf /etc/yum.repos.d/*
#创建一个新的仓库文件
[rootcompute ~]# vi /etc/yum.repos.d/local.repo
[centos]
namecentos
baseurlftp://192.168.100.10/centos
enabled1
gpgcheck0
[iaas]
nameiaas
baseurlftp://192.168.100.10/iaas-repo
enabled1
gpgcheck0
#检查可用性
[rootcompute ~]# yum clean all yum repolist
...
源标识 源名称 状态
centos centos 4,070
iaas iaas 954
repolist: 5,024磁盘分区
计算节点compute需要给cinder、swift和manila服务各提供一块空白分区总共需要三块我们在创建虚拟机时就已经额外给计算节点compute添加了一块20G的硬盘现在我们给计算节点compute分区 使用fdisk命令进行分区 输入n添加一个新分区给cinder创建空白分区 分区类型为主分区p默认回车即可 分区号默认回车即可 起始扇区也是默认回车 截至扇区看个人情况如果你只装cinder和swift20G的硬盘均分10G即可那你就输入10G 我还要装个manila所以我这里设置7G 重复刚刚的操作给swift创建空白分区 在设置最后一块分区的时候如果你还是输入10G就会超出分区的范围(硬盘实际大小并没有20G) 所以我们这里直接不输入默认值就是最大值回车即可 分好后可以输入p打印分区表查看分区的情况
确认无误后输入w保存设置并退出即可 可以通过罗列块设备的命令查看分区情况 虽然这里显示了但有时当我们创建或删除分区设备后系统并不会立即生效需要重启后才能生效 这个时候我们只需要输入partprobe命令 partprobe命令可以在不重启系统的情况下重新读加载分区表信息使得新设备信息被同步 至此该步骤完毕可以拍摄一个快照。
平台搭建基础配置
安装openstack
#两个节点都安装
[rootcontroller ~]# yum -y install openstack-iaas
[rootcompute ~]# yum -y install openstack-iaas编辑环境变量文件
#设置各个变量的参数这些变量会用在之后的搭建脚本中。
[rootcontroller ~]# vi /etc/openstack/openrc.sh
#需要更改的段落如下
HOST_IP192.168.100.10
HOST_PASS000000
HOST_NAMEcontroller
HOST_IP_NODE192.168.100.20
HOST_PASS_NODE000000
HOST_NAME_NODEcompute
network_segment_IP192.168.100.0/24
RABBIT_USERopenstack
RABBIT_PASS000000
DB_PASS000000
DOMAIN_NAMEdemo
ADMIN_PASS000000
DEMO_PASS000000
KEYSTONE_DBPASS000000
GLANCE_DBPASS000000
GLANCE_PASS000000
PLACEMENT_DBPASS000000
PLACEMENT_PASS000000
NOVA_DBPASS000000
NOVA_PASS000000
NEUTRON_DBPASS000000
NEUTRON_PASS000000
METADATA_SECRET000000
INTERFACE_NAMEens33 #外网网卡名称
Physical_NAMEprovider
minvlan1
maxvlan1000
CINDER_DBPASS000000
CINDER_PASS000000
BLOCK_DISKsdb1 #第一个分区
SWIFT_PASS000000
OBJECT_DISKsdb2 #第二个分区
STORAGE_LOCAL_NET_IP192.168.100.20
TROVE_DBPASS000000
TROVE_PASS000000
HEAT_DBPASS000000
HEAT_PASS000000
CEILOMETER_DBPASS000000
CEILOMETER_PASS000000
AODH_DBPASS000000
AODH_PASS000000
ZUN_DBPASS000000
ZUN_PASS000000
KURYR_PASS000000
OCTAVIA_DBPASS000000
OCTAVIA_PASS000000
MANILA_DBPASS000000
MANILA_PASS000000
SHARE_DISKsdb3
CLOUDKITTY_DBPASS000000
CLOUDKITTY_PASS000000
BARBICAN_DBPASS000000
BARBICAN_PASS000000
SENLIN_DBPASS000000
SENLIN_PASS000000
#可以发现涉及PASS密码的参数都是设置为000000所以我们可以批量进行设置
#使用命令行模式即
#输入%s/PASS/PASS000000/g
#%s 表示替换字符
#/ 分隔符
#PASS 旧字符要替换的字符
#PASS000000 新字符替换成为什么字符
#/g 表示全文替换
#整个命令意思即为查找文件中匹配PASS条件的字符将其全部改为PASS000000
#然后我们再把那些空的补上
#最后按文件最后的提示在命令行模式下执行命令删除每行前的注释符
################################################################
######在vi编辑器中执行:%s/^.\{1\}// 删除每行前1个字符(#号)#####
################################################################
#不过我个人喜欢用Ctrlv进入块操作模式然后按下G跳至行末选中每行的第一个字符最后按下gg删除
[rootcontroller ~]# scp /etc/openstack/openrc.sh 192.168.100.20:/etc/openstack/openrc.sh
...
Are you sure you want to continue connecting (yes/no)? yes
root192.168.100.20s password: #输入控制节点的密码
openrc.sh 100% 4964 2.5MB/s 00:00 执行初始化脚本
#这个脚本会对虚拟机进行一些基础配置两个节点都要执行
#运行这些脚本的时候保证一个原则就是让控制节点执行完毕后再去计算节点执行
[rootcontroller ~]# iaas-pre-host.sh
[rootcompute ~]# iaas-pre-host.sh
#脚本执行完毕后会提示你重启系统输入reboot命令重启即可
...
Please Reboot or Reconnect the terminal
#实际上CtrlD登出再回车重新登入也行
[rootcontroller ~]# reboot
[rootcompute ~]# reboot
#重启之后登录之后就会打印欢迎语了################################# Welcome to OpenStack #################################
[rootcontroller ~]# 初始化脚本解析
我就只讲解这个脚本的功能其他的脚本大差不多你可以自己去查看脚本的内容。实际上就是把手动搭的命令放到一个脚本里一些可能不同的配置项就用变量替代而这个变量我们在前面就已经设置好了值每个脚本开始前都会生效那个变量文件。
#/bin/bash
source /etc/openstack/openrc.sh生效环境变量
#Welcome page
cat /etc/motd EOF ################################# Welcome to OpenStack #################################
EOF整个段落所做的事在用户登录后弹出欢迎界面 /etc/motd这个文件是在你登录系统后显示的不管你是直接登录还是远程登录都将显示这个文件里的信息 故而这段脚本功能是每次登录都打印欢迎界面
#selinux
sed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/config
setenforce 0第一句为设置Selinux为Disable(关闭模式) 由于修改配置文件后需要重启才能生效所以第二句功能为临时关闭Selinux
#firewalld
systemctl stop firewalld
systemctl disable firewalld /dev/null 21整个段落所做的事将防火墙关闭并禁用开机自启 关于 /dev/null 21的解释 /dev/null 是说将命令的返回结果(输出)追加到/dev/null文件中 而/dev/null文件是Linux的空文件设备所有往这个文件里面写入的内容都会丢失正因如此它还有黑洞的俗称 21 2指的是错误输出1指的是标准输出为重定向为绑定 意思即为将错误输出和标准输出绑定输出到同一个文件中而这个文件是/dev/null的话就找不着了 所以整句 /dev/null 21 的功能就是让命令的返回结果(无论正确还是报错)不显示在屏幕上
#NetworkManager
systemctl stop NetworkManager /dev/null 21
systemctl disable NetworkManager /dev/null 21
yum remove -y NetworkManager firewalld
systemctl restart network整个段落所做的事将NetworkManager服务停止、禁止开机自启、删除随后重启network服务 为何这么做的原因 NetworkManager服务和network服务类似都是管理网络的服务 但是两种服务都配置会起冲突导致network服务开不起来所以一般都会关闭其中一个服务 并且NetworkManager在网络断开的时候会清除路由如果是自定义的路由没有添加进NetworkManager的配置文件当中的话路由就会被清除掉 NetworkManager比较适合有桌面环境的系统我们搭建openstack只是用作服务器不需要桌面环境。所以我们保留network服务将NetworkManager服务关闭禁用开机自启
其他解释 yum remove是删除软件脚本这里粗暴的删除了NetworkManager和firewalld防火墙
#iptables
yum install iptables-services -y
if [ 0 -ne $? ]; thenecho -e \033[31mThe installation source configuration errors\033[0mexit 1
fi
systemctl restart iptables
iptables -F
iptables -X
iptables -Z
/usr/sbin/iptables-save
systemctl stop iptables
systemctl disable iptables整个段落所做的事安装和配置iptables服务。
iptables是一个防火墙服务和firewalld相比有以下区别
iptablesfirewalld实现方式链式规则区域和服务默认放行规则允许拒绝优缺点修改规则后需全部刷新才可生效允许动态更新规则而不破坏现有会话和连接
CentOS7默认使用的防火墙是firewalld替换了iptables因为firewalld使用更加方便功能也更加强大。 这里选择抛弃功能强大的firewalld转而使用iptables的原因是 OpenStack网络相关组件的功能(如安全组)是基于iptables实现的所以没办法
if语句的解释
if [ 条件 ]; then执行命令
fi是shell语言中if判断语句的基本写法。如果(if)满足某条件那么(then)就执行以下语句。fi是结束的标记用于结束一个if语句 if判断语句当中的条件0 -ne $? -ne 意为不等于 $?是一个系统变量表示最后一次执行命令的退出状态.0为成功,非0为失败 合起来这个条件就是最后一次执行的命令($?)没有(不等于)成功(0)**的话 那么这段代码中的整个语句意思就很明显了如果最后一次命令即安装iptables的命令失败了(返回非0) 则执行echo命令打印一段话(The installation source configuration errors)提示用户安装出错并退出程序(exit 1) 如果成功了不满足条件则直接运行后面的命令 iptables -F 清空防火墙规则 iptables -X 删除用户自定义的链 iptables -Z 清空防火墙数据表统计信息 /usr/sbin/iptables-save 生效配置 最后将服务关闭和禁用开机自启。
echo语句的解释 -e 参数用于启用特殊字符的解释例如\n换行符\t制表符等等 后面双引号里打印的文字可以看作 \033[31m打印的文字\033[0m \033[31m是设置输出字体的颜色为红色31代表的是红色 这里颜色的控制是通过ESC字符**(ASCII码中的八进制表示形式为\033)**[颜色代码m实现的。 而后面的\033[0m就是将颜色重新改回去回到默认设置去
# install package
sed -i -e s/#UseDNS yes/UseDNS no/g -e s/GSSAPIAuthentication yes/GSSAPIAuthentication no/g /etc/ssh/sshd_config
yum upgrade -y
yum install python-openstackclient openstack-selinux openstack-utils crudini expect lsof net-tools vim -y修改SSH配置文件禁用DNS解析和GSSAPI身份认证然后更新系统中所有已安装软件包至其最新版本并安装openstack所需的软件包。 其中crudini和expect是脚本执行过程中需要用到的工具。
#hosts
if [[ ip a |grep -w $HOST_IP ! ]];then hostnamectl set-hostname $HOST_NAME
elif [[ ip a |grep -w $HOST_IP_NODE ! ]];then hostnamectl set-hostname $HOST_NAME_NODE
elsehostnamectl set-hostname $HOST_NAME
fi
sed -i -e /$HOST_NAME/d -e /$HOST_NAME_NODE/d /etc/hosts
echo $HOST_IP $HOST_NAME /etc/hosts
echo $HOST_IP_NODE $HOST_NAME_NODE /etc/hosts整个段落所做的事根据你在openrc.sh环境变量文件中填写的ip地址参数修改主机名并在/etc/hosts文件中添加对应主机映射。 这里的if里的条件通过将ip a命令的反馈结果给grep筛查-w参数是匹配具体字段这样一来。如果是控制节点第一个if条件筛查ip是否与环境变量文件中的一致结果! (不为空值即能够匹配得到)则修改主机名为controller。若是计算节点则不满足第一个if条件转而匹配第二个。当我们配置没有出错的情况下这段if语句完美的实现了我们的需求根据不同节点设置主机名。
#ssh
if [[ ! -s ~/.ssh/id_rsa.pub ]];thenssh-keygen -t rsa -N -f ~/.ssh/id_rsa -q -b 2048
fi
namehostname
if [[ $name $HOST_NAME ]];then
expect -c set timeout -1;spawn ssh-copy-id -i /root/.ssh/id_rsa $HOST_NAME_NODE;expect {*password:* {send -- $HOST_PASS_NODE\r;expect {*denied* {exit 2;}eof}}*(yes/no)* {send -- yes\r;exp_continue;}eof {exit 1;}}
else
expect -c set timeout -1;spawn ssh-copy-id -i /root/.ssh/id_rsa $HOST_NAME;expect {*password:* {send -- $HOST_PASS\r;expect {*denied* {exit 2;}eof}}*(yes/no)* {send -- yes\r;exp_continue;}eof {exit 1;}}
fi整个段落所做的事设置两节点之间的免密登录方便后面脚本中主机之间进行交互操作 这里用到了上面安装的expect工具它是一个用于自动化交互式任务的工具和编程语言。通常用于编写脚本来与命令行程序进行交互自动化执行诸如登录、输入密码、处理交互式提示等任务。 其中expect -c 表示运行一段包含期望操作的代码块。 set timeout -1设置了超时时间为永不超时避免程序响应过长导致错过一些输出信息。 spawn则是启动进程并持续监控跟踪输出的信息。 expect命令检测到了password:关键字时则使用send命令模拟用户输入。出现大量的\r是因为send无法自动回车用\r模拟用户回车。
#chrony
yum install -y chrony
if [[ $name $HOST_NAME ]];thensed -i 3,6s/^/#/g /etc/chrony.confsed -i 7s/^/server controller iburst/g /etc/chrony.confecho allow $network_segment_IP /etc/chrony.confecho local stratum 10 /etc/chrony.conf
elsesed -i 3,6s/^/#/g /etc/chrony.confsed -i 7s/^/server controller iburst/g /etc/chrony.conf
fisystemctl restart chronyd
systemctl enable chronyd整个段落所做的事安装chrony时间同步服务根据不同的主机做不同的配置然后重启服务设置开机自启 具体设置了controller节点的ip网段为主时间节点用于同步compute节点的时间
#DNS
if [[ $name $HOST_NAME ]];then
yum install bind -y
sed -i -e 13,14s/^/\/\//g \
-e 19s/^/\/\//g \
-e 37,42s/^/\/\//g \
-e s/recursion yes/recursion no/g \
-e s/dnssec-enable yes/dnssec-enable no/g \
-e s/dnssec-validation yes/dnssec-validation no/g /etc/named.conf
systemctl start named.service
systemctl enable named.service
fi
printf \033[35mPlease Reboot or Reconnect the terminal\n\033[0m整个段落所做的事在controller节点安装bind域名解析服务并做相应配置开启服务设置开机自启 随后打印信息提示用户重启系统
安装数据库服务
#数据库是所有组件的依赖必须要装
#在控制节点controller执行安装数据库的脚本
[rootcontroller ~]# iaas-install-mysql.sh
#默默等待脚本执行完毕即可
#至此建议拍摄快照安装openstack基础服务
[rootcontroller ~]# iaas-install-keystone.sh
[rootcontroller ~]# iaas-install-glance.sh
[rootcontroller ~]# iaas-install-placement.sh
[rootcontroller ~]# iaas-install-nova-controller.sh
[rootcontroller ~]# iaas-install-neutron-controller.sh
[rootcontroller ~]# iaas-install-dashboard.sh
[rootcontroller ~]# iaas-install-cinder-controller.sh
[rootcontroller ~]# iaas-install-swift-controller.sh
#dashboard脚本执行完后会提示这么一句信息
浏览器访问http://192.168.100.10/dashboard
域demo
用户名admin
密码000000
信息输出到root目录下的logininfo.txt中了。
#这个就是登录云平台Web界面的网址以及登录的相关参数可以记下来
#以上脚本执行完后再从计算节点compute执行以下脚本
[rootcompute ~]# iaas-install-nova-compute.sh
[rootcompute ~]# iaas-install-neutron-compute.sh
[rootcompute ~]# iaas-install-cinder-compute.sh
[rootcompute ~]# iaas-install-swift-compute.sh
#至此建议拍摄快照安装openstack高级服务
高级服务不是必装的你需要用到再装不然就我们这个配置分分钟卡死给你看这里只写安装需要执行的脚本。 注意所有需要在两个节点都执行脚本的服务都需要让控制节点controller先执行完毕再让计算节点compute去执行
Trove服务
#控制节点controller
[rootcontroller ~]# iaas-install-trove.sh Heat服务
#控制节点controller
[rootcontroller ~]# iaas-install-trove.sh Ceilometer服务
#控制节点controller
[rootcontroller ~]# iaas-install-ceilometer-controller.sh
#计算节点compute
[rootcompute ~]# iaas-install-ceilometer-compute.shAodh服务
#控制节点controller
[rootcontroller ~]# iaas-install-aodh.sh Zun服务
#控制节点controller
[rootcontroller ~]# iaas-install-zun-controller.sh
#计算节点compute
[rootcompute ~]# iaas-install-zun-compute.shOctavia服务
#控制节点controller
[rootcontroller ~]# iaas-install-octavia.shManila服务
#控制节点controller
[rootcontroller ~]# iaas-install-manila-controller.sh
#计算节点compute
[rootcompute ~]# iaas-install-manila-compute.shCloudkitty服务
#控制节点controller
[rootcontroller ~]# iaas-install-cloudkitty.sh Barbican服务
#Barbican服务
控制节点controller
[rootcontroller ~]# iaas-install-barbican.sh将控制节点资源添加到云平台
由于我们是双节点搭建计算节点compute的资源里(4020G)20G用于swift、cinder和manila服务剩下的40G除去/boot分区和/swap分区只有约35G的空间供云平台使用而控制节点controller的几十G空间却无处可用所以将控制节点controller资源添加到云平台是很有必要的
编辑环境变量文件
我们编辑控制节点controller的环境变量文件将compute节点的IP地址和主机名改为controller的IP地址和主机名
执行nova-compute脚本
#在控制节点controller执行nova-compute脚本
#执行过程中需要输入两次控制节点controller的密码
[rootcontroller ~]# iaas-install-nova-compute.sh
...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 192.168.100.10 (ECDSA) to the list of known hosts.
root192.168.100.10s password:
...
root192.168.100.10s password: 登录Web界面查看
执行完毕后登录云平台在左侧导航栏【管理员】→【计算】→【主机聚合】页面即可看到控制节点controller资源加入了云平台
后语
后续我还会分享一些竞赛的相关内容openstack运维和系统运维的部分都比较简单可能讲的不多或者不会细讲。