当前位置:

OpenStack搭建史上 极快入手

访客 2024-04-24 1491 0

前提环境

搭建openstack平台所需要的两个镜像包:CentOS-7-X86_64-DVD-1804.iso和chinaskill_cloud_iaas.iso镜像文件。

在VMware上准备两台虚拟机,分别作为controller(控制)节点和compute节点.下面是VMware上虚拟机的基础配置。

compute&&controller

双网卡,NAT模式和仅主机模式,配置硬盘各给50G

多添的一块网卡作为openstack对外提供服务的网络(创建云主机实例时使用的IP地址),默认的第一块网卡作为openstack本地服务的IP地址(访问openstack的WEB界面时的IP地址)

compute要加两块20G虚拟硬盘

controller内存4G以上处理器两个以上

这里的NET模式的子网地址给的是100段(cidr)WEB访问的IP地址,仅主机模式的子网地址给的是200段的这里controller节点给的IP是192.168.100.10compute节点给的IP是192.168.100.20网络配置器的网关设置的是192.168.100.02

一、基本配置

修改主机名

#controller执行[root@controller~]hostnamectlset-hostnamecontroller#compute[root@compute~]hostnamectlset-hostnamecompute##修改后重新连接终端##MobaXterm中按ctrld退出按R重新登陆##SecureCRTPortable中按ctrld退出按回车重新登陆##直接bash执行也可,不过后面执行脚本可能报错##su也可以使之生效

配置网络

1.利用vi文本编辑器去配置虚拟机的虚拟网卡

#controller

[root@controller~]vi/etc/sysconfig/network-scripts/ifcfg-ens33#ifcfg-需要配置的网卡名BOOTPROTO=dhcp#修改为static静态IPONBOOT=no#修改为yes,设为开机自启#文件最后添加IPADDR=192.168.100.10#配置的IP地址,根据虚拟网络编辑器的网段来配置NETMASK=255.255.255.0#子网掩码,也可以用PREFIX=24来表示GATEWAY=192.168.100.2#网关DNS1=114.114.114.114#DNS域名解析DNS2=8.8.8.8#备用DNS域名解析#:wq(保存退出)

2.配置好后重启网络服务,使配置生效

[root@controller~]systemctlrestartnetwork#第一种重启网络的方法[root@controller~]servicenetworkrestart#第二种重启网络的方法#可能出现的问题:网络重启报错先停掉NetworkManager[root@controller~]systemctlstopNetworkManager#也可以直接将NetworkManager,disable掉

3.看是否能ping通,利用远程工具(Xshell,SecureCRT,mobaXterm等)去连接虚拟机

[root@controller~]ifconfig#查看网卡的网络参数[root@controller~]ping百度.com第二快网卡无需配置,后面跑脚本的时候会自动将它kill掉,作为创建云主机实例的IP地址

4.当第一台VM虚拟机的网卡配置好,用命令或手动点击将VM虚拟机关机后,对它进行克隆,克隆出的虚拟机作为compute节点

poweroff#第一种关机命令shutdown-hnow#第二种关机命令init0#第三种关机命令记得克隆时最好选择完全克隆,它是独立的,并不依赖controller节点,当你删掉controller节点也不会影响到compute节点。克隆完成后重命名,修改它的配置,给compute虚拟机增加两块20G的硬盘,分别提供给cinder和swift组件修改克隆机的IP地址IPADDR=192.168.100.20删除/etc/sysconfig/network-scripts/ifcfg-ens33文件中的UUID一行,UUID不能重复在vi编辑器命令行模式下按dd删除光标所在的一行(因为克隆虚拟机的配置是controller节点的配置)

二、基本环境

1.配置域名解析文件

#contreller&&compute

[root@controller~]vim/etc/hosts#结尾添加这两行IP地址主机名192.168.100.10controller192.168.100.20compute[root@controller~]scp/etc/hosts192.168.100.20:/etc/hosts#将controller节点上的配置文件传输到compute节点上将其替换#这一步做完后,后面就可以直接使用域名(controller,compute)来代替IP地址了

2.挂载镜像文件

#controller

[root@controller~]mkdir/opt/{centos,openstack}#创建两个需要被挂载的本地路径#yum源配置好后,将iaas镜像上传,这里centos镜像虚拟机配置使用了,它默认存储在/dev/cdrom或/dev/sr0中,可以直接将存放centos镜像的路径挂载到/opt/centos下了[root@controller~]mount/dev/cdrom/opt/centos/#以只读方式挂载#我们也可以在/etc/fstab中进行配置,让它开机自动挂载,这样在启动虚拟机时就不用再手动挂载了(用于直接挂载到挂载点的时候使用)[root@controller~]vim/etc/fstab#在结尾添加/dev/cdrom/opt/centosiso9660defaults00#接下来在挂载iaas镜像[root@controller~]mountchinaskills_cloud_iaas.iso/mnt/[root@controller~]cp-rvf/mnt/*/opt/openstack[root@controller~]umount/mnt/

3.配置本地yum源

#controller

#备份本地网络yum源[root@controller~]mv/etc/yum.repos.d/*/mnt/[root@controller~]vi/etc/yum.repos.d/centos.repo[centos]name=centosbaseurl=file:///opt/centosgpgcheck=0enabled=1[iaas]name=iaasbaseurl=file:///opt/openstack/iaas-repogpgcheck=0enabled=1#配置好本地yum源后,我们需要清理一下yum源缓存,和列出能用的yum仓库中的包[root@controller~]yummakecache#或[root@controller~]yumcleanall;yummakecache#或[root@controller~]yumcleanall;yumrepolist

如图挂载成功

#compute

#备份本地网络yum源[root@compute~]mv/etc/yum.repos.d/*/mnt/#创建repo文件[root@compute~]vi/etc/yum.repos.d/centos.repo[centos]name=centosbaseurl=ftp://192.168.100.10/centosgpgcheck=0enabled=1[iaas]name=iaasbaseurl=ftp://192.168.100.10/openstack/iaas-repogpgcheck=0enabled=1

[root@compute~]yummakecache

4.搭建ftp服务器,开启并设置自启

#controller

[root@controller~]yuminstallvsftpd-y[root@controller~]vi/etc/vsftpd/vsftpd.conf#添加anon_root=/opt/#保存退出#或:echo"anon_root=/opt/">>/etc/vsftpd/vsftpd.conf#重启服务,使修改的配置生效,并设置开机自启[root@controller~]systemctlstartvsftpd&&systemctlenablevsftpd

#comput

#验证ftp[root@compute~]curl-Lftp://192.168.100.10#ftp://controllerIP#这里连接成功会返回controller下opt目录内信息[root@compute~]yumcleanall;yummakecache#或[root@compute~]yumcleanall;yumrepolist

5.关闭防火墙

#contreller&&compute

#两个节点都需要关闭[root@controller~]systemctlstopfirewalld.service&&systemctldisablefirewalld.service#关闭防火墙和移除防火墙[root@controller~]yumremove-yNetworkManagerfirewalld[root@controller~]yum-yinstalliptables-services[root@controller~]systemctlenableiptables[root@controller~]systemctlrestartiptables[root@controller~]iptables-F[root@controller~]iptables-X[root@controller~]iptables-Z[root@controller~]serviceiptablessave#清空规则

##可以只关闭防火墙而不写入配置,在将要执行的脚本中会卸载掉防火墙,selinux同理,此时关闭是为了后面的ftp

6.关闭SELinux

#contreller&&compute

#临时关闭selinux模式和永久关闭selinux规则[root@controller~]setenforce0&&sed-i's/SELINUX=.*/SELINUX=permissive/g'/etc/selinux/config[root@controller~]getenforce#检测是否关闭selinux#可能出现问题:ssh远程连接慢时执行,一般不需要[root@controller~]sed-i-e's/#UseDNSyes/UseDnsno/g'-e's/GSSAPIAuthentcationyes/GSSAPIAuthenticationno/g'/etc/ssh/sshd_config

三、编辑环境变量

#contreller&&compute

[root@controller~]yuminstalliaas-xiandian-y#安装xiandian包

分盘(根据自己的情况)

#compute分盘

#这里可以不用分盘了,因为我们一开始就多配置了两块虚拟硬盘,使用fdisk-l查看[root@controller~]fdisk/dev/sdbn#两次回车100Gnp#三次回车wlsblk#查看

1.修改xiandian服务的配置文件

#controller

#编辑文件/etc/xiandian/openrc.sh,此文件是安装过程中的各项参数,根据每项参数上一行的说明及服务器实际情况进行配置。[root@controller~]cd/etc/xiandian/[root@controller~]sed-i"/=/s/#//g"openrc.sh[root@controller~]sed-i"/PASS/s/PASS=/PASS=000000/g"openrc.sh#或:[root@controller~]vi/etc/xiandian/openrc.sh#进入配置文件后需要在命令行模式下敲:%s/^#//g#一行中只带有一个#注释的,作用去除#注释:%s/PASS=/PASS=000000/g#将PASS=全部替换成PASS=000000,这样省的我们自己手动敲很多代码了

还需要手动修改,需要修改的地方已在后面增加注释有的地方还需输入六个零

--------------------systemConfig--------------------##ControllerServerManagerIP.example:x.x.x.xHOST_IP=192.168.100.10#controller节点的IP地址ControllerHOSTPassword.example:000000HOST_PASS=000000ControllerServerhostname.example:controllerHOST_NAME=controller#controller节点的主机名ComputeNodeManagerIP.example:x.x.x.xHOST_IP_NODE=192.168.100.20#compute节点的IP地址ComputeHOSTPassword.example:000000HOST_PASS_NODE=000000ComputeNodehostname.example:computeHOST_NAME_NODE=compute#compute节点的主机名--------------------ChronyConfig-------------------##ControllernetworksegmentIP.example:x.x.0.0/16(x.x.x.0/24)network_segment_IP=192.168.100.0/24#控制节点的网段--------------------RabbitConfig------------------##userforrabbit.example:openstackRABBIT_USER=openstack#rabbit用户名Passwordforrabbituser.example:000000RABBIT_PASS=000000--------------------MySQLConfig---------------------##PasswordforMySQLrootuser.exmaple:000000DB_PASS=000000--------------------KeystoneConfig------------------##PasswordforKeystoreadminuser.exmaple:000000DOMAIN_NAME=demo#OpenStack中登录页面的认证域名ADMIN_PASS=000000DEMO_PASS=000000PasswordforMysqlkeystoreuser.exmaple:000000KEYSTONE_DBPASS=000000--------------------GlanceConfig--------------------##PasswordforMysqlglanceuser.exmaple:000000GLANCE_DBPASS=000000PasswordforKeystoreglanceuser.exmaple:000000GLANCE_PASS=000000--------------------NovaConfig----------------------##PasswordforMysqlnovauser.exmaple:000000NOVA_DBPASS=000000PasswordforKeystorenovauser.exmaple:000000NOVA_PASS=000000--------------------NeturonConfig-------------------##PasswordforMysqlneutronuser.exmaple:000000NEUTRON_DBPASS=000000PasswordforKeystoreneutronuser.exmaple:000000NEUTRON_PASS=000000metadatasecretforneutron.exmaple:000000METADATA_SECRET=000000TunnelNetworkInterface.example:x.x.x.xINTERFACE_IP=192.168.100.10#隧道接口的IP地址,填当前节点的IP地址即本机IPExternalNetworkInterface.example:eth1INTERFACE_NAME=ens36#第二块网卡作为外网,对外提供服务(云主机实例)的网卡名ExternalNetworkThePhysicalAdapter.example:providerPhysical_NAME=provider#物理适配器的外网FirstVlanIDinVLANRANGEforVLANNetwork.exmaple:101minvlan=5#VLAN最小从5开始(自己根据需要来给定)LastVlanIDinVLANRANGEforVLANNetwork.example:200maxvlan=201#VLAN最大到201--------------------CinderConfig--------------------##PasswordforMysqlcinderuser.exmaple:000000CINDER_DBPASS=000000PasswordforKeystorecinderuser.exmaple:000000CINDER_PASS=000000CinderBlockDisk.example:md126p3BLOCK_DISK=sdb#compute节点增加的第一快磁盘名称(lsblk查看)--------------------SwiftConfig---------------------##PasswordforKeystoreswiftuser.exmaple:000000SWIFT_PASS=000000TheNODEObjectDiskforSwift.example:md126p4.OBJECT_DISK=sdc#compute节点的增加的第二快磁盘名称TheNODEIPforSwiftStorageNetwork.example:x.x.x.x.STORAGE_LOCAL_NET_IP=192.168.100.20#对象存储的IP地址--------------------HeatConfig----------------------##PasswordforMysqlheatuser.exmaple:000000HEAT_DBPASS=000000PasswordforKeystoreheatuser.exmaple:000000HEAT_PASS=000000--------------------ZunConfig-----------------------##PasswordforMysqlZunuser.exmaple:000000ZUN_DBPASS=000000PasswordforKeystoreZunuser.exmaple:000000ZUN_PASS=000000PasswordforMysqlKuryruser.exmaple:000000KURYR_DBPASS=000000PasswordforKeystoreKuryruser.exmaple:000000KURYR_PASS=000000--------------------CeilometerConfig----------------##PasswordforGnocchiceilometeruser.exmaple:000000CEILOMETER_DBPASS=000000PasswordforKeystoreceilometeruser.exmaple:000000CEILOMETER_PASS=000000--------------------AODHConfig----------------##PasswordforMysqlAODHuser.exmaple:000000AODH_DBPASS=000000PasswordforKeystoreAODHuser.exmaple:000000AODH_PASS=000000--------------------BarbicanConfig----------------##PasswordforMysqlBarbicanuser.exmaple:000000BARBICAN_DBPASS=000000PasswordforKeystoreBarbicanuser.exmaple:000000BARBICAN_PASS=000000

#controller

#通过scp方法将修改过的xiandian配置文件传输到compute节点#scp发送:[root@controller~]scp-rpopenrc.shroot@192.168.100.20:/etc/xiandian/openrc.sh#或[root@controller~]scp!$compute:/etc/xiandian/openrc.sh#此时应写入host,否则用IP代替compute#等效于[root@controller~]scp/etc/xiandian/openrc.shcompute:/etc/xiandian/openr.sh##将controller目录下的文件传输到computer下,即把配置好的文件发给另一个节点(并替换对应文件)

#compute

#在compute节点中配置文件/etc/xiandian/openrc.sh下修改第69行的IP地址,改成对应节点的IP地址(在compute节点只需修改这一行)[root@compute~]INTERFACE_IP=192.168.100.20#修改完成后保存退出

四、通过脚本安装服务

1.执行脚本iaas-pre-host.sh进行安装

基础配置操作命令已经编写成shell脚本,通过脚本进行一键安装。如下:

Controller&&Compute

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

#安装完成后两个节点都需要CtrlD同时重启一下虚拟机

#或

[root@controller~]reboot

今天遇到一个yum安装报错如下:

错误:软件包:glibc-2.17-196.el7.i686(centos7)
需要:glibc-common=2.17-196.el7
已安装:glibc-common-2.17-222.el7.x86_64(@anaconda)
glibc-common=2.17-222.el7
可用:glibc-common-2.17-196.el7.x86_64(centos7)

原因:yum源没有对应版本包匹配
解决办法:

wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

sed-i's/$releasever/7/g'/etc/yum.repos.d/CentOS-Base.repo

yumrepolist

2.接下来开始跑部署OpenStack各个组件的脚本了

进入/usr/local/bin目录下(脚本存放的位置)

这里为了方便,我在脚本中执行了一下脚本

ls|tee1.sh#查看当前目录下的脚本文件并将结果发送到tee命令,tee命令将输出显示到终端,同时将其保存在1.sh文件中#在1.sh脚本中将几个需要跑的组件脚本排序,并将不需要跑的组件脚本删掉(在1.sh中操作,需熟练掌握vi编辑器下命令行模式(默认模式)下的快捷命令,在这里会用到yy:复制,p:粘贴,dd:删除)

controller节点执行脚本顺序[mysql组件,keystone组件,glance组件,nova-controller组件,neutron-controller组件,dashboard组件,cinder-controller组件,swift-controller组件](跑完controller节点,再跑compute节点

compute节点执行脚本的顺序[nova-compute组件,neutron-compute组件,cinder-compute组件,swift-compute组件]

#给1.sh增加可执行权限chmodx1.sh

执行:

./1.sh

五、搭建完成,web访问

两边都跑完后,去浏览器输入192.168.100.10/dashboard访问OpenStack

恭喜完成搭建!!!(一个萌新的攻略,有不对的地方还大神指教)

完成后可以关注我~~~去看我的另一篇T版搭建非常详细

这是我写的第一篇所以排版不是很好,多多关照

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~