1.准备工作

        (1) 镜像准备 CentOS-7-x86_64-DVD-2009.iso、chinaskills_cloud_iaas_v2.0.3.iso

                切记不要使用这种带Minimal的系统镜像 要不然后面会报错 哪个版本都不行      例如      

        (2) 两台虚拟机,配置两张网卡,第一张仅主机模式,第二张NAT模式,配置根据自身电脑来,不低于2G运行内存,虚拟机镜像使用 CentOS-7-x86_64-DVD-2009.iso,版本太低会出问题,

        (3) MobaXterm远程连接工具

        (4) 每台虚拟机装备三块硬盘,后面会用到

        (5)  因为比赛是一个无网环境,所以我们自己电脑上第二张网卡可以不用管

主机名 ens33 ens34 root密码
controller 192.168.100.10 000000
compute 192.168.100.20 000000

 

           如图

        


2.配置两台主机的ens33(仅主机模式)网络

        (1) 配置前检查网卡的配置  确保后面的ip是在这个网段下

 

        (2) controller主机      如果虚拟机是克隆过来的 可以把UUID那一行删掉

                vi /etc/sysconfig/network-scripts/ifcfg-ens33

        重启网络

                systemctl restart network    

        (3) compute主机   这里把UUID删除了

                vi /etc/sysconfig/network-scripts/ifcfg-ens33

      

        重启网络

                systemctl restart network    

        (4) 最后使用远程工具连接(MobaXterm)

      

3.修改主机名和添加域名解析

controller 和compute 主机

        (1) 修改主机名

# controller 主机
    hostnamectl set-hostname controller
    bash

# compute 主机
    hostnamectl set-hostname compute
    bash

        (2) 添加本地域名解析

                vi /etc/hosts   打开这个文件并添加内容

        

            写完后把文件复制一份给compute

                scp /etc/hosts compute:/etc/hosts

4.配置本地yum源

        controller 主机

        (1)  将两个镜像上传到 /opt/ 目录下

                

        (2) 在/opt/ 目录下创建两个文件夹  centos和iaas

                mkdir /opt/centos

                mkdir /opt/iaas

         (3) 把自带的yum源文件删掉

                 rm /etc/yum.repos.d/* -f

         (4) 挂载镜像

# 挂载centos2009镜像到/mnt/目录
    mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /mnt/

# 将文件复制到/opt/centos
    cp -rvf /mnt/* /opt/centos/

# 结束挂载
     umount /mnt/




# 挂载iaas镜像到/mnt/目录
   mount -o loop /opt/chinaskills_cloud_iaas_v2.0.3.iso /mnt/

# 将文件复制到/opt/iaas
   cp -rvf /mnt/* /opt/iaas/

# 结束挂载
   umount /mnt/

        (5) 编写yum源文件

                vi /etc/yum.repos.d/local.repo

                写入以下内容



[centos]
name=centos
gpgcheck=0
enabled=1
baseurl=file:///opt/centos

[iaas]
name=iaas
gpgcheck=0
enabled=1
baseurl=file:///opt/iaas/iaas-repo

               

                清除yum源缓存

                        yum clean all


                 重新加载yum源        

                         yum repolist

成功展示 

 

vsftpd安装和配置( compute通过vsftpd来配置域名本地源 )

        controller主机

        (1) 安装vsftpd

                 yum install -y vsftpd

        (2) 配置vsftpd并重启服务

                打开该文件

                vi /etc/vsftpd/vsftpd.conf


                添加一行配置,可以写在最上方

                anon_root=/opt/

                重启服务,并设置成开机自启

                systemctl start vsftpd

                systemctl enable vsftpd

        (3)关闭防火墙

                systemctl stop firewalld

                systemctl disable firewalld

                 vi /etc/selinux/config 

                

 

 cmpute 主机

  (1) 删除本地自带yum源文件

          rm /etc/yum.repos.d/* -f

  (2) 编写yum源文件 

        vi /etc/yum.repos.d/ftp.repo

        添加以下内容

[centos]
name=centos
gpgcheck=0
enabled=1
baesurl=ftp://controller/centos

[iaas]
name=iaas
gpgcheck=0
enabled=1
baseurl=ftp://controller/iaas/iaas-repo

        

           清除yum源缓存

                    yum clean all


          重新加载yum源        

                     yum repolist

        成功后会显示软件包数量和controller一样

 

 5.安装openstack,并写入配置文件

       

        (1) 安装openstack  (controller和compute 都要安装)

                       yum install -y openstack-iaas

        (2) 配置文件(controller)完成后复制一份到compute

                         vi /etc/openstack/openrc.sh
                   进入后在底下命令行模式执行两个命令

                         :%s/#/     # 清除每一行第一个#

                         :%s/PASS=/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

#--------------------Placement Config----------------------##
#Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=000000

#Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neutron 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

#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=101

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200

#--------------------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

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdc

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=102.168.100.20

#--------------------Trove Config----------------------##
#Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=000000

#Password for Keystore trove user. exmaple:000000
TROVE_PASS=000000

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_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

#--------------------ZUN Config----------------##
#Password for Mysql ZUN user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=000000

#Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=000000

#--------------------OCTAVIA Config----------------##
#Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=000000

#Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=000000

#--------------------Manila Config----------------##
#Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=000000

#Password for Keystore Manila user. exmaple:000000
MANILA_PASS=000000

#The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=sdd

#--------------------Cloudkitty Config----------------##
#Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=000000

#Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000

(3) 复制一份给compute

         scp /etc/openstack/openrc.sh compute:/etc/openstack/openrc.sh

6.配置无密钥节点

        controller主机

                ssh-keygen   执行后一直回车就行

                ssh-copy-id compute   执行后输入compute节点密码000000

        compute主机

                ssh-keygen   执行后一直回车就行

                ssh-copy-id controller   执行后输入controller节点密码000000

7.执行脚本

        (1) 先执行初始化脚本
               1. 两台主机都要执行 先执行完controller在执行compute

                        iaas-pre-host.sh

                2.两台都执行完后重启主机

                        init 6

                3.重启后会出现这个标识

                

        (2) 按顺序执行其他脚本,还是先执行完controller在执行compute
                1.controller 主机    前七个最好安装一下  后面的看需求可以不安装
iaas-install-mysql.sh
iaas-install-keystone.sh
iaas-install-glance.sh
iaas-install-placement.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 
iaas-install-heat.sh 
iaas-install-manila-controller.sh 
iaas-install-cloudkitty.sh 
iaas-install-barbican.sh
           2.compute 主机  确保compute安装的组件 controller必须是已安装的状态
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh 
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
iaas-install-manila-compute.sh 

8.最后基础搭建已经完成 可以登录网站查看效果

        http://192.168.100.10/dashboard/ 

        用户名  admin

        密码  000000

        

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐