文章目录[隐藏]
搭建openstack平台,需在VMware上准备两台虚拟机,分别作为controller节点和compute节点。下面是VMware上虚拟机的基础配置。
一、创建虚拟机
内存给了4G,处理器给了两个,硬盘给了50G,这个根据个人电脑的配置来设置,不用设置太大,将虚拟机放置的位置一定不要放在C盘,多添的一块网卡作为openstack对外提供服务的网络(创建云主机实例时使用的IP地址),默认的第一块网卡作为openstack本地服务的IP地址(访问openstack的WEB界面时的IP地址),这里看你的虚拟网络编辑器里网络的信息(自行修改)
我这里的NET模式的子网地址给的是100段(cidr)WEB访问的IP地址,仅主机模式的子网地址给的是200段的。这里可以根据自己的需要去进行配置。
二、安装系统
上面配置好了之后进入虚拟机安装centos系统,这个软件选择记得改一下,然后还有账号密码记得设置。
等他安装好了之后重启虚拟机。
三、开始配置虚拟机的网卡
- 左上角找到并进入终端。
- 先用指令ip a来查看网卡信息。
- 然后利用vi文本编辑器去配置虚拟机的虚拟网卡。
vi /etc/sysconfig/network-scripts/ifcfg-#需要配置的网卡名
如果怕出错可以用cd命令一级一级进入这个文件夹,然后查看有没有第一块网卡这个文件。
- 然后进入这个文件之后先输入i进入插入模式,按照图片编辑以下标记内容
编辑完成之后按下ESC键进入命令输入模式,然后输入wq(w=退出,q=保存)。
在执行命令之前记得先输入su指令切换为root用户,不然会一直提示已修改但未保存。(我这边就是未切换root用户,你们记得) - 完成之后可以用cat命令来进行查看是否修改正确。
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=9fac66cf-5f62-4f10-a9fb-1a406a015020 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.100.10 PREFIX=24 GATEWAY=192.168.100.2 uNS1=8.8.8.8
第二快网卡无需配置,当后面跑脚本的时候会自动将它kill掉,用作创建云主机实例的IP地址
三、克隆
当第一台VM虚拟机的网卡配置好,用命令或手动点击将VM虚拟机关机后,对它进行克隆,克隆出的虚拟机作为compute节点
注意克隆类型需要用完整克隆
然后一直下一步下一步就行了,然后克隆完成之后为了区分的方便可以改一个名字。
然后克隆出来的机器新增2块20G的硬盘,分别提供给cinder和swift组件
然后接着就是老样子改网卡的信息:
删除整行可以在命令模式下按下dd进行删除,删除完成之后记得修改IP信息,修改完成之后保存,重启网卡。
重启网卡命令:service network restart
四、SSH连接
- 打开SSH连接工具进行连接。
- 连接上后修改主机名。
#永久修改主机名(两个节点都需要配置): hostnamectl set-hostname controller #第一个节点 su #使修改生效 hostnamectl set-hostname compute #第二个节点 su #使修改生效
- 配置域名解析的文件(/etc/hosts)
vi /etc/hosts
- 将controller节点上的配置文件传输到compute节点上将其替换,省的两头来回切换的敲代码了,在后面这点好处会体现的更明显
scp /etc/hosts 192.168.100.20:/etc/hosts
首先会提示你输入yes确认一下,然后再输入那个机器的root密码。
- 然后切换到compute节点上,查看是否成功。
- 移走本地网络yum源(两个节点都需要执行)
mv /etc/yum.repos.d/* /media # 将网络yum源移到media目录下 rm -rf /etc/yum.repos.d/* # 删除网络yum源,*代表当前目录下的所有文件或目录
- 配置本地yum源(只需在controller节点而配置,配置centos源和iaas源)(新建一个local.repo)
vi /etc/yum.repos.d/local.repo
也可以像我这样先cd过去在编辑也是一样的。
[centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas/iaas-repo gpgcheck=0 enabled=1
- 创建两个需要被挂载的本地路劲centos和iaas(这里创建的目录名称需要和yum配置文件里面的路劲目录名一样)
mkdir /opt/{centos,iaas}
- 然后分别到这两个路径下吧镜像文件上传到对应文件夹里面。
-
挂载是指将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件
mount 设备文件名 挂载点
文件挂载
mount CentOS-7-x86_64-DVD-1804.iso /opt/centos
如果提示是将已读的方式挂载那就说明是挂载成功了,没问题。
- 但是重启之后挂载就会失效,可以改配置文件达到效果,也可以通过复制达到效果,这里我演示改配置文件,然后第12步用的是复制。
先vi /etc/fstab,然后再最后一行加上挂载的信息就行。
- 接下来在挂载iaas镜像,挂在到/mnt目录下面
mount chinaskills_cloud_iaas.iso /mnt/
再将/mnt下面的所有文件复制到/opt/iaas目录下(cp -R /mnt/* /opt/iaas/),这样重启虚拟机后也不需要再次挂载了。
- 清理一下yum缓存
yum clean all
- 列出能用的yum仓库中的包
yum repolist all
- 关闭防火墙,清空规则(两个节点都需要执行)
systemctl stop firewalld && systemctl disable firewalld # 关闭防火墙和移除防火墙 iptables -F iptables -X iptables -Z iptables-save # 清空规则 setenforce 0 # 临时关闭selinux模式 setenforce 0 getenforce # 查看selinux的模式 sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config # 永久关闭selinux规则
- 安装vsftpd服务,是为了能让compute节点通过ftp访问到controller节点上的镜像
yum -y install vsftpd
- 改vsftpd服务的配置文件:
vi /etc/vsftpd/vsftpd.conf
在第一行加上:anon_root=/opt
重启服务,并设置开机自启
systemctl restart vsftpd && systemctl enable vsftpd
- 配置compute节点的yum源
键切换到compute节点修改local.repo文件
vi /etc/yum.repos.d/local.repo
修改完后,保存退出
执行清理yum源和列出可用的yum源命令:
yum clean all yum repolist all
如果是下图这样那就是正常这样compute节点就不用在配置本地yum源了。
- 安装iaas-xiandian服务(在两节点都要执行)
yum -y install iaas-xiandian
- 修改xiandian服务的配置文件
vi /etc/xiandian/openrc.sh
进入修改xiandian文件(需要再命令模式下执行下面代码)
:%s/^#//g
这个命令将删除每一行开头以#字符开头的注释
:%s/PASS=/PASS=000000/g
这个命令将把文本中所有的"PASS="替换为"PASS=000000"
#The NODE IP for Swift Storage Network. example:x.x.x.x. STORAGE_LOCAL_NET_IP=127.168.100.10
然后把STORAGE_LOCAL_NET_IP=后面加上IP信息127.168.100.10
#--------------------system Config--------------------## #Controller Server Manager IP. example:x.x.x.x HOST_IP=192.168.100.10 #controller节点的IP地址 #Controller HOST Password. example:000000 HOST_PASS=000000 #Controller Server hostname. example:controller HOST_NAME=controller #controller节点的主机名 #Compute Node Manager IP. example:x.x.x.x HOST_IP_NODE=192.168.100.20 #compute节点的IP地址 #Compute HOST Password. example:000000 HOST_PASS_NODE=000000 #Compute Node hostname. example:compute HOST_NAME_NODE=compute #compute节点的主机名 #--------------------Chrony Config-------------------## #Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24) network_segment_IP=192.168.100.0/24 #控制节点的网段 #--------------------Rabbit Config ------------------## #user for rabbit. example:openstack RABBIT_USER=openstack #rabbit用户名 #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=demo #OpenStack中登录页面的认证域名 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 #Tunnel Network Interface. example:x.x.x.x INTERFACE_IP=192.168.100.10 #隧道接口的IP地址,填当前节点的IP地址 #External Network Interface. example:eth1 INTERFACE_NAME=ens34 #第二块网卡作为外网,对外提供服务(云主机实例)的网卡名 #External Network The Physical Adapter. example:provider Physical_NAME=provider #物理适配器的外网 #First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101 minvlan=5 #VLAN最小从5开始(自己根据需要来给定) #Last Vlan ID in VLAN RANGE for VLAN Network. example:200 maxvlan=201 #VLAN最大到201 #--------------------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=sdb #compute节点增加的第一快磁盘名称(lsblk查看) #--------------------Swift Config---------------------## #Password for Keystore swift user. exmaple:000000 SWIFT_PASS=000000 #The NODE Object Disk for Swift. example:md126p4. OBJECT_DISK=sdc #compute节点的增加的第二快磁盘名称 #The NODE IP for Swift Storage Network. example:x.x.x.x. STORAGE_LOCAL_NET_IP=192.168.100.20 #对象存储的IP地址 #--------------------Heat Config----------------------## #Password for Mysql heat user. exmaple:000000 HEAT_DBPASS=000000 #Password for Keystore heat user. exmaple:000000 HEAT_PASS=000000 #--------------------Zun Config-----------------------## #Password for Mysql Zun user. exmaple:000000 ZUN_DBPASS=000000 #Password for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 #Password for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_PASS=000000 #--------------------Ceilometer Config----------------## #Password for Gnocchi 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 #--------------------Barbican Config----------------## #Password for Mysql Barbican user. exmaple:000000 BARBICAN_DBPASS=000000 #Password for Keystore Barbican user. exmaple:000000 BARBICAN_PASS=000000 #--------------------system Config--------------------## #Controller Server Manager IP. example:x.x.x.x HOST_IP=192.168.100.10 #Controller HOST Password. example:000000 HOST_PASS=000000 #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 HOST Password. example:000000 HOST_PASS_NODE=000000 #Compute Node hostname. example:compute HOST_NAME_NODE=compute #--------------------Chrony Config-------------------## #Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24) network_segment_IP=192.168.100.0/24 #--------------------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=demo 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
结果
- 通过scp方法将修改过的xiandian配置文件传输到compute节点
scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh
然后在compute节点里面修改这个文件vi /etc/xiandian/openrc.sh,修改
#The NODE IP for Swift Storage Network. example:x.x.x.x. STORAGE_LOCAL_NET_IP=127.168.100.20
- 跑iaas-pre-host.sh脚本(在两节点执行)(在执行脚本之前建议保存一份快照,方便报错之后恢复跑之前的状态)
cd /usr/local/bin ./iaas-pre-host.sh
两边都提示这个时候重启服务器!
- 进入进入/usr/local/bin目录下(脚本存放的位置)
ls | tee 1.sh 把ls的输出到1.sh里面,类似于重定向,但是这个会吧输出内容显示出来
- 然后vi编辑器进入这个1.sh,将不需要跑的组件脚本删掉(yy : 复制,p : 粘贴,dd : 删除 )
controller节点执行脚本的顺序 [ mysql组件,keystone组件,glance组件,nova-controller组件,neutron-controller组件,dashboard组件,cinder-controller组件,swift-controller组件 ]
iaas-install-mysql.sh iaas-install-keystone.sh iaas-install-glance.sh iaas-install-nova-controller.sh iaas-install-neutron-controller.sh iaas-install-dashboard.sh iaas-install-cinder-controller.sh iaas-install-swift-controller.sh
(跑完controller节点,再跑compute节点)
compute节点执行脚本的顺序 [ nova-compute组件,neutron-compute组件,cinder-compute组件,swift-compute组件 ]
iaas-install-nova-compute.sh iaas-install-neutron-compute.sh iaas-install-cinder-compute.sh iaas-install-swift-compute.sh
- 然后给1.sh增加可执行权限
chmod +x 1.sh
成功之后执行ls,发现两个颜色不一样那就对了
然后执行./1.sh
- 然后访问controller节点IP地址/dashboard。
原文链接:https://blog.csdn.net/qq_56774809/article/details/121385101
没有回复内容