OpenStack搭建史上最详细步骤 (快速入手)

家电修理 2023-07-16 19:17www.caominkang.com电器维修

前提环境

搭建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 
    

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

进入/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版搭建       非常详细

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

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by