OpenStack搭建史上最详细步骤 (快速入手)
前提环境
搭建openstack平台所需要的两个镜像包CentOS-7-X86_64-DVD-1804.iso 和 chinaskill_cloud_iaas.iso镜像文件。
在VMare上准备两台虚拟机,分别作为controller(控制)节点和pute节点. 下面是VMare上虚拟机的基础配置。pute&&controller
双网卡,NAT模式和仅主机模式,配置硬盘各给50G
多添的一块网卡作为openstack对外提供服务的网络(创建云主机实例时使用的IP地址),默认的第一块网卡作为openstack本地服务的IP地址(访问openstack的WEB界面时的IP地址)
pute要加两块20G虚拟硬盘
controller内存4G以上 处理器两个以上
这里的NET模式的子网地址给的是100段(cidr)WEB访问的IP地址,仅主机模式的子网地址给的是200段的 这里controller节点给的IP是192.168.100.10 pute节点给的IP是192.168.100.20 网络配置器的网关设置的是192.168.100.02 一、基本配置 修改主机名
#controller执行 [root@controller ~]hostnamectl set-hostname controller #pute [root@pute ~]hostnamectl set-hostname pute ##修改后重新连接终端 ##MobaXterm中按ctrl+d 退出 按R重新登陆 ##SecureCRTPortable中按ctrl+d 退出 按回车重新登陆 ##直接bash执行也可,不过后面执行脚本可能报错 ##su也可以使之生效
配置网络
1.利用vi文本编辑器去配置虚拟机的虚拟网卡
#controller
[root@controller ~]vi /etc/sysconfig/ork-scripts/ifcfg-ens33 #ifcfg-需要配置的网卡名 BOOTPROTO=dhcp #修改为static静态IP ONBOOT=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域名解析 # :q (保存退出)
2.配置好后重启网络服务,使配置生效
[root@controller ~]systemctl restart ork #第一种重启网络的方法 [root@controller ~]service ork restart #第二种重启网络的方法 #可能出现的问题网络重启报错先停掉NetorkManager [root@controller ~]systemctl s NetorkManager #也可以直接将NetorkManager,disable掉
3.看是否能ping通,利用远程工具(Xshell,SecureCRT,mobaXterm等)去连接虚拟机
[root@controller ~]ifconfig #查看网卡的网络参数 [root@controller ~]ping baidu.
第二快网卡无需配置,后面跑脚本的时候会自动将它kill掉,作为创建云主机实例的IP地址
4.当第一台VM虚拟机的网卡配置好,用命令或手动点击将VM虚拟机关机后,对它进行克隆,克隆出的虚拟机作为pute节点
poeroff #第一种关机命令 shutdon -h no #第二种关机命令 init 0 #第三种关机命令
记得克隆时最好选择完全克隆,它是独立的,并不依赖controller节点,当你删掉controller节点也不会影响到pute节点。 克隆完成后重命名,修改它的配置,给pute虚拟机增加两块20G的硬盘,分别提供给cinder和sift组件 修改克隆机的IP地址IPADDR=192.168.100.20 删除/etc/sysconfig/ork-scripts/ifcfg-ens33文件中的UUID一行,UUID不能重复 在vi编辑器命令行模式下按dd删除光标所在的一行(因为克隆虚拟机的配置是controller节点的配置) 二、基本环境 1.配置域名解析文件
#contreller && pute
[root@controller ~]vim /etc/hosts #结尾添加这两行IP地址+主机名 192.168.100.10 controller 192.168.100.20 pute [root@controller ~]scp /etc/hosts 192.168.100.20:/etc/hosts #将controller节点上的配置文件传输到pute节点上将其替换 #这一步做完后,后面就可以直接使用域名(controller,pute)来代替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/centos iso9660 defaults 0 0
#接下来在挂载iaas镜像 [root@controller ~]mount chinaskills_cloud_iaas.iso /mnt/ [root@controller ~]cp -rvf /mntSELINUX=permissive/g' /etc/selinux/config [root@controller ~]getenforce #检测是否关闭selinux #可能出现问题ssh远程连接慢时执行,一般不需要 [root@controller ~]sed -i -e 's/#UseDNS yes /UseDns no/g' -e 's/GSSAPIAuthentcation yes/GSSAPIAuthenticationno/g' /etc/ssh/sshd_config 三、编辑环境变量
#contreller && pute
[root@controller ~]yum install iaas-xiandian -y #安装xiandian包分盘(根据自己的情况)
# pute 分盘
#这里可以不用分盘了,因为我们一开始就多配置了两块虚拟硬盘,使用fdisk -l查看 [root@controller ~]fdisk /dev/sdb n #两次回车 +100G n p #三次回车 lsblk #查看 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,这样省的我们自己手动敲很多代码了
还需要手动修改,需要修改的地方已在后面增加注释 有的地方还需输入六个零
--------------------system Config--------------------## Controller Server Manager IP. example:x.x.x.x HOST_IP=192.168.100.10 #controller节点的IP地址 Controller HOST Passord. 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 #pute节点的IP地址 Compute HOST Passord. example:000000 HOST_PASS_NODE=000000 Compute Node hostname. example:pute HOST_NAME_NODE=pute #pute节点的主机名 --------------------Chrony Config-------------------## Controller ork segment IP. example:x.x.0.0/16(x.x.x.0/24) ork_segment_IP=192.168.100.0/24 #控制节点的网段 --------------------Rabbit Config ------------------## user for rabbit. example:openstack RABBIT_USER=openstack #rabbit用户名 Passord for rabbit user .example:000000 RABBIT_PASS=000000 --------------------MySQL Config---------------------## Passord for MySQL root user . exmaple:000000 DB_PASS=000000 --------------------Keystone Config------------------## Passord for Keystore admin user. exmaple:000000 DOMAIN_NAME=demo #OpenStack中登录页面的认证域名 ADMIN_PASS=000000 DEMO_PASS=000000 Passord for Mysql keystore user. exmaple:000000 KEYSTONE_DBPASS=000000 --------------------Glance Config--------------------## Passord for Mysql glance user. exmaple:000000 GLANCE_DBPASS=000000 Passord for Keystore glance user. exmaple:000000 GLANCE_PASS=000000 --------------------Nova Config----------------------## Passord for Mysql nova user. exmaple:000000 NOVA_DBPASS=000000 Passord for Keystore nova user. exmaple:000000 NOVA_PASS=000000 --------------------Neturon Config-------------------## Passord for Mysql neutron user. exmaple:000000 NEUTRON_DBPASS=000000 Passord for Keystore neutron user. exmaple:000000 NEUTRON_PASS=000000 metadata secret for neutron. exmaple:000000 METADATA_SECRET=000000 Tunnel Netork Interface. example:x.x.x.x INTERFACE_IP=192.168.100.10 #隧道接口的IP地址,填当前节点的IP地址即本机IP External Netork Interface. example:eth1 INTERFACE_NAME=ens36 #第二块网卡作为外网,对外提供服务(云主机实例)的网卡名 External Netork The Physical Adapter. example:provider Physical_NAME=provider #物理适配器的外网 First Vlan ID in VLAN RANGE for VLAN Netork. exmaple:101 minvlan=5 #VLAN最小从5开始(自己根据需要来给定) Last Vlan ID in VLAN RANGE for VLAN Netork. example:200 maxvlan=201 #VLAN最大到201 --------------------Cinder Config--------------------## Passord for Mysql cinder user. exmaple:000000 CINDER_DBPASS=000000 Passord for Keystore cinder user. exmaple:000000 CINDER_PASS=000000 Cinder Block Disk. example:md126p3 BLOCK_DISK=sdb #pute节点增加的第一快磁盘名称(lsblk查看) --------------------Sift Config---------------------## Passord for Keystore sift user. exmaple:000000 SWIFT_PASS=000000 The NODE Object Disk for Sift. example:md126p4. OBJECT_DISK=sdc #pute节点的增加的第二快磁盘名称 The NODE IP for Sift Storage Netork. example:x.x.x.x. STORAGE_LOCAL_NET_IP=192.168.100.20 #对象存储的IP地址 --------------------Heat Config----------------------## Passord for Mysql heat user. exmaple:000000 HEAT_DBPASS=000000 Passord for Keystore heat user. exmaple:000000 HEAT_PASS=000000 --------------------Zun Config-----------------------## Passord for Mysql Zun user. exmaple:000000 ZUN_DBPASS=000000 Passord for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 Passord for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 Passord for Keystore Kuryr user. exmaple:000000 KURYR_PASS=000000 --------------------Ceilometer Config----------------## Passord for Gnohi ceilometer user. exmaple:000000 CEILOMETER_DBPASS=000000 Passord for Keystore ceilometer user. exmaple:000000 CEILOMETER_PASS=000000 --------------------AODH Config----------------## Passord for Mysql AODH user. exmaple:000000 AODH_DBPASS=000000 Passord for Keystore AODH user. exmaple:000000 AODH_PASS=000000 --------------------Barbican Config----------------## Passord for Mysql Barbican user. exmaple:000000 BARBICAN_DBPASS=000000 Passord for Keystore Barbican user. exmaple:000000 BARBICAN_PASS=000000
# controller
#通过scp方法将修改过的xiandian配置文件传输到pute节点 #scp发送 [root@controller ~]scp -rp openrc.sh root@192.168.100.20:/etc/xiandian/openrc.sh # 或 [root@controller ~]scp !$ pute:/etc/xiandian/openrc.sh #此时应写入host,否则用IP代替pute #等效于 [root@controller ~]scp /etc/xiandian/openrc.sh pute:/etc/xiandian/openr.sh ##将controller目录下的文件传输到puter下,即把配置好的文件发给另一个节点(并替换对应文件)
# pute
#在pute节点中配置文件/etc/xiandian/openrc.sh下修改第69行的IP地址,改成对应节点的IP地址(在pute节点只需修改这一行) [root@pute ~]INTERFACE_IP=192.168.100.20 #修改完成后保存退出四、通过脚本安装服务 1.执行脚本iaas-pre-host.sh进行安装
基础配置操作命令已经编写成shell脚本,通过脚本进行一键安装。如下
Controller&&Compute
[root@controller ~]iaas-pre-host.sh
#安装完成后两个节点都需要Ctrl+D重启一下虚拟机
#或
[root@controller ~]reboot
今天遇到一个yum安装报错如下错误软件包glibc-2.17-196.el7.i686 (centos7)
需要glibc-mon = 2.17-196.el7
已安装: glibc-mon-2.17-222.el7.x86_64 (@anaconda)
glibc-mon = 2.17-222.el7
可用: glibc-mon-2.17-196.el7.x86_64 (centos7)
原因yum源没有对应版本包匹配
解决方法
get -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun./repo/Centos-7.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum repolist
进入/usr/local/bin目录下(脚本存放的位置)
这里为了方便,我在脚本中执行了一下脚本
ls | tee 1.sh #查看当前目录下的脚本文件并将结果发送到tee命令,tee命令将输出显示到终端,将其保存在1.sh文件中 #在1.sh脚本中将几个需要跑的组件脚本排序,并将不需要跑的组件脚本删掉(在1.sh中操作,需熟练掌握vi编辑器下命令行模式(默认模式)下的快捷命令,在这里会用到 yy : 复制,p : 粘贴,dd : 删除 )
controller节点执行脚本顺序 [ mysql组件,keystone组件,glance组件,nova-controller组件,neutron-controller组件,dashboard组件,cinder-controller组件,sift-controller组件 ] (跑完controller节点,再跑pute节点)
pute节点执行脚本的顺序 [ nova-pute组件,neutron-pute组件,cinder-pute组件,sift-pute组件]
#给1.sh增加可执行权限 chmod +x 1.sh
执行
./1.sh五、搭建完成,eb访问
两边都跑完后,去浏览器输入 192.168.100.10/dashboard 访问OpenStack
恭喜完成搭建!!!(一个萌新的攻略,有不对的地方还大神指教)
完成后可以关注我~~~去看我的另一篇 T版搭建 非常详细
这是我写的第一篇所以排版不是很好,多多关照
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工