OpenStack-国基北盛搭建-云计算造梦空间论坛-技术交流-造梦空间论坛

OpenStack-国基北盛搭建

搭建openstack平台,需在VMware上准备两台虚拟机,分别作为controller节点和compute节点。下面是VMware上虚拟机的基础配置。

一、创建虚拟机

内存给了4G处理器给了两个硬盘给了50G,这个根据个人电脑的配置来设置,不用设置太大,将虚拟机放置的位置一定不要放在C盘多添的一块网卡作为openstack对外提供服务的网络(创建云主机实例时使用的IP地址),默认的第一块网卡作为openstack本地服务的IP地址(访问openstack的WEB界面时的IP地址),这里看你的虚拟网络编辑器里网络的信息(自行修改)

42f83c201e195543

3290d11acd195835

2c34f0e52a195852

1326e4af25195902

d055d9fe87195912

04416864b1195920

afcb9f692f195929

2160a4a976200441

4c086ebfd1200609

bda6c69c84200636

e711d0ceef200928

fec7322ba9200950

我这里的NET模式的子网地址给的是100段(cidr)WEB访问的IP地址,仅主机模式的子网地址给的是200段的。这里可以根据自己的需要去进行配置。

二、安装系统

上面配置好了之后进入虚拟机安装centos系统,这个软件选择记得改一下,然后还有账号密码记得设置。

9dccf21226201701

e6366f0fe9201615

628b234ec7201742等他安装好了之后重启虚拟机。

三、开始配置虚拟机的网卡

  1. 左上角找到并进入终端。

    e9d0835d3a203014

  2. 先用指令ip a来查看网卡信息。

    ce2f3a58c0203150

  3. 然后利用vi文本编辑器去配置虚拟机的虚拟网卡。
    vi /etc/sysconfig/network-scripts/ifcfg-#需要配置的网卡名

    如果怕出错可以用cd命令一级一级进入这个文件夹,然后查看有没有第一块网卡这个文件。

    040fea69e6203525

  4. 然后进入这个文件之后先输入i进入插入模式,按照图片编辑以下标记内容

    482379777d204457

    编辑完成之后按下ESC键进入命令输入模式,然后输入wq(w=退出,q=保存)。

    在执行命令之前记得先输入su指令切换为root用户,不然会一直提示已修改但未保存。(我这边就是未切换root用户,你们记得)
  5. 完成之后可以用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节点

4c85a46b9a210343

注意克隆类型需要用完整克隆

41382a2250210406

然后一直下一步下一步就行了,然后克隆完成之后为了区分的方便可以改一个名字。

然后克隆出来的机器新增2块20G的硬盘,分别提供给cinder和swift组件

bd62411952210709

然后接着就是老样子改网卡的信息:

a4d7784369212304

删除整行可以在命令模式下按下dd进行删除,删除完成之后记得修改IP信息,修改完成之后保存,重启网卡。

重启网卡命令:service network restart

四、SSH连接

  1. 打开SSH连接工具进行连接。
  2. 连接上后修改主机名。
    #永久修改主机名(两个节点都需要配置):
    hostnamectl set-hostname controller #第一个节点
    su #使修改生效
     
    hostnamectl set-hostname compute #第二个节点
    su #使修改生效
  3. 配置域名解析的文件(/etc/hosts)
    vi /etc/hosts

    1783e002ec214031

  4. 将controller节点上的配置文件传输到compute节点上将其替换,省的两头来回切换的敲代码了,在后面这点好处会体现的更明显
    scp /etc/hosts 192.168.100.20:/etc/hosts

    3436daa72c214150

    首先会提示你输入yes确认一下,然后再输入那个机器的root密码。

  5. 然后切换到compute节点上,查看是否成功。

    236c2f6ea0214326

  6. 移走本地网络yum源(两个节点都需要执行)
    mv /etc/yum.repos.d/* /media
    # 将网络yum源移到media目录下
    rm -rf /etc/yum.repos.d/*
    # 删除网络yum源,*代表当前目录下的所有文件或目录
  7. 配置本地yum源(只需在controller节点而配置,配置centos源和iaas源)(新建一个local.repo)
    vi /etc/yum.repos.d/local.repo

    也可以像我这样先cd过去在编辑也是一样的。

    f6ddbf1d08214837

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

    5065641745215230

  8. 创建两个需要被挂载的本地路劲centos和iaas(这里创建的目录名称需要和yum配置文件里面的路劲目录名一样)
    mkdir /opt/{centos,iaas}

    20231113200123887-1699876883-image

  9. 然后分别到这两个路径下吧镜像文件上传到对应文件夹里面。

    f57ea1498d215646

  10. 挂载是指将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件

    mount 设备文件名 挂载点

    文件挂载

    mount CentOS-7-x86_64-DVD-1804.iso /opt/centos

    20231113202612465-1699878372-image

    如果提示是将已读的方式挂载那就说明是挂载成功了,没问题。

  11. 但是重启之后挂载就会失效,可以改配置文件达到效果,也可以通过复制达到效果,这里我演示改配置文件,然后第12步用的是复制。

    20231113203140342-1699878700-image

    先vi /etc/fstab,然后再最后一行加上挂载的信息就行。

  12. 接下来在挂载iaas镜像,挂在到/mnt目录下面

    20231113200447142-1699877087-image

    mount chinaskills_cloud_iaas.iso /mnt/

    再将/mnt下面的所有文件复制到/opt/iaas目录下(cp -R /mnt/* /opt/iaas/),这样重启虚拟机后也不需要再次挂载了。

    20231113201543901-1699877743-image

  13. 清理一下yum缓存
    yum clean all

    20231113201700926-1699877820-image

  14. 列出能用的yum仓库中的包
    yum repolist all

    20231113203806975-1699879086-image

  15. 关闭防火墙,清空规则(两个节点都需要执行)
    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规则
  16. 安装vsftpd服务,是为了能让compute节点通过ftp访问到controller节点上的镜像
    yum -y install vsftpd

    20231113204300846-1699879380-image

  17. 改vsftpd服务的配置文件:
    vi /etc/vsftpd/vsftpd.conf

    在第一行加上:anon_root=/opt

    20231113204500744-1699879500-image

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

    systemctl restart vsftpd && systemctl enable vsftpd

    20231113204637371-1699879597-image

  18. 配置compute节点的yum源

    20231113204853829-1699879733-image键切换到compute节点修改local.repo文件

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

    20231113205357534-1699880037-image

    修改完后,保存退出

    执行清理yum源和列出可用的yum源命令:

    yum clean all
    yum repolist all

    如果是下图这样那就是正常20231113204300846-1699879380-image这样compute节点就不用在配置本地yum源了。

  19. 安装iaas-xiandian服务(在两节点都要执行)
    yum -y install iaas-xiandian

    20231113205714947-1699880234-image

  20. 修改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

    结果

  21. 通过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
  22. 跑iaas-pre-host.sh脚本(在两节点执行)(在执行脚本之前建议保存一份快照,方便报错之后恢复跑之前的状态)
    cd /usr/local/bin
    ./iaas-pre-host.sh

    20231114201730269-1699964250-image

    两边都提示这个时候重启服务器!

    VMware如何添加快照?-造梦空间论坛
  23. 进入进入/usr/local/bin目录下(脚本存放的位置)
    ls | tee 1.sh
    把ls的输出到1.sh里面,类似于重定向,但是这个会吧输出内容显示出来

    20231113213641205-1699882601-image

  24.  然后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
  25. 然后给1.sh增加可执行权限
    chmod +x 1.sh

    成功之后执行ls,发现两个颜色不一样那就对了

    20231113214607420-1699883167-image

    然后执行./1.sh

  26. 然后访问controller节点IP地址/dashboard。

    20231115194129417-1700048489-image

     

原文链接:https://blog.csdn.net/qq_56774809/article/details/121385101

请登录后发表评论

    没有回复内容

© 造梦空间论坛