OpenStack介绍

openstack详细介绍及常用命令请查看此文

通过Packstack(RDO)部署OpenStack,官方文档点击此处查看

安装环境
  • 工具:VMware Workstation 16 Pro

  • 操作系统:CentOS 8.3

  • 虚拟机配置:内存 8G、处理器 6C、磁盘 60G、开启虚拟化

    请添加图片描述

基础配置
  1. 配置环境

    编辑vim /etc/environment文件,添加以下内容

    LANG=en_US.utf-8
    LC_ALL=en_US.utf-8
    

    请添加图片描述

    安装en_US.utf-8语言包

    dnf install glibc-langpack-en -y
    
  2. 设置主机名并配置/etc/hosts文件

    修改主机名

    hostnamectl set-hostname duanyd
    exec bash
    

    使用echo命令,在/etc/hosts文件中添加本地解析,或者通过vim命令添加

    echo -e "192.166.66.16\tduanyd" >> /etc/hosts
    

    请添加图片描述

  3. 关闭防火墙并禁止开机自启

    systemctl disable firewalld && systemctl stop firewalld
    
  4. 更换网络服务

    在安装部署OpenStack时,OpenStack的网络服务会与NetworkManager服务产生冲突,二者无法一起正常工作,需要使用Network

    # 安装Network服务
    dnf install network-scripts -y
    # 停用NetworkManager并禁止开机自启
    systemctl stop NetworkManager && systemctl disable NetworkManager
    # 启用 Network并设置开机自启
    systemctl start network && systemctl enable network
    
  5. 设置静态IP(可选)

    编辑网络配置文件

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

    修改修改并添加以下内容

    # 设为静态
    BOOTPROTO=static
    # 设为开机自动连接
    ONBOOT=yes
    # 添加IP、子网掩码及网关
    IPADDR=192.166.66.16
    NETMASK=255.255.255.0
    GATEWAY=192.166.66.2
    

    重启Network网络服务

    # 重启网络服务
    systemctl restart network
    # 测试是否可访问外网
    ping -c 5 www.baidu.com
    

    若更换静态IP与原IP不一致,或者禁用NetworkManager并启用Network后,直接重启网卡,IP会变化,远程连接工具会断开,需要查看IP后重新连接,IP变更也要同步修改本地解析中的IP地址

系统配置
  1. 将yum源换成华为源

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
    dnf clean all && dnf makecache
    

    请添加图片描述

  2. 将PyPI源换成华为源

    # 新建.pip目录
    mkdir .pip
    # 在.pip目录下创建pip.conf文件
    vim .pip/pip.conf
    # 将以下内容填入pip.conf文件中
    [global]
    index-url = https://repo.huaweicloud.com/repository/pypi/simple
    trusted-host = repo.huaweicloud.com
    

    请添加图片描述

开始安装
  1. 安装前后可以先查看一下有木有安装pip和git

    dnf install epel-release -y
    dnf install python3-pip git -y
    /usr/bin/python3.6 -m pip install --upgrade pip # 升级pip
    # 查看pip(V是大写)
    pip -V或pip3 -V
    # 查看git
    git --version
    
  2. 添加stack用户

    # 新增stack用户
    sudo useradd -s /bin/bash -d /opt/stack -m stack
    # 授予stack用户root权限
    echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
    chmod -R 777 /opt/
    # 切换到stack用户
    sudo su - stack
    

    请添加图片描述

  3. 下载devstack

    # 使用git下载devstack
    git clone https://opendev.org/openstack/devstack
    # 下载完成后切换到devstack目录下
    cd devstack
    

    请添加图片描述

  4. 添加local.conf文件

    # 在devstack根目录下添加local.conf文件
    vim local.conf
    # 将以下内容添加到local.conf文件中
    [[local|localrc]]
    ADMIN_PASSWORD=duanyd
    DATABASE_PASSWORD=$ADMIN_PASSWORD
    RABBIT_PASSWORD=$ADMIN_PASSWORD
    SERVICE_PASSWORD=$ADMIN_PASSWORD
    
  5. 开始安装

    # 在devstack目录下执行stack.sh脚本
    ./stack.sh
    

    安装时间较长,请耐心等待,下图是安装完成页面,相应信息已给出

    请添加图片描述

  6. 配置环境变量脚本

    # 创建admin-openrc.sh文件
    vim admin-openrc.sh
    # 添加以下信息,请根据实际情况修改密码及IP
    export OS_USERNAME=admin
    export OS_PASSWORD=duanyd
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_AUTH_URL=http://192.166.66.16/identity
    export OS_IDENTITY_API_VERSION=3
    

    请添加图片描述

    或者直接使用devstack目录下的openrc文件,source openrc. openrc

验证
  1. 查看各服务状态

    sudo systemctl status "devstack@*"
    

    请添加图片描述

  2. 加载环境变量后,随便输入一些openstack命令

    # 加载环境变量脚本
    source admin-openrc.sh
    # 查看服务列表
    nova service-list
    ……
    

    请添加图片描述

  3. 创建实例

    # 查看可用的网络
    openstack network list
    # 查看可用安全组
    openstack security group list
    # 创建实例
    openstack server create --flavor m1.nano --image cirros-0.5.1-x86_64-disk --nic net-id=网络名称或ID --security-group 安全组名称或ID 实例名称
    

    请添加图片描述

    通过验证可以看到实例成功运行,各服务状态正常

    请添加图片描述

  4. 通过浏览器访问IP地址查看是否能访问并登录成功

    http://192.166.66.16/dashboard
    http://192.166.66.16 #或者直接输入IP
    

请添加图片描述
请添加图片描述
请添加图片描述

  1. 最后将httpd设为开机自启,否则重启服务器后openstack各服务会出现报错情况
systemctl restart httpd && systemctl ebable httpd

安装方式随简单,但是在祖国的庇护下,即使更换安装源很大概率也会失败,有VPN的可以自行尝试一下,也可以用公司的网络试试

踩坑记录

浏览器访问验证时,是无法访问的,原因是防火墙问题
请添加图片描述

当遇到如上图这种情况时,只有两种情况

  1. 服务未启动,导致无法访问
  2. 防火墙问题,未开放端口,或安全组未配置
    这次遇到的情况是,Python路径问题导致防火墙出现异常
    请添加图片描述

如上图
查看防火墙是关闭状态,但是启动时报错 Failed to start firewalld - dynamic firewall daemon.,无法启动防火墙守护进程
解决办法:

# 找到防火墙
which firewalld
# 编辑防火墙配置
vim /usr/sbin/firewalld
#将第一行路径根据当前python版本进行修改,可以直接修改为硬链接
#!/usr/libexec/platform-python3.6  #前面的#和!要保留

之后重启防火墙,状态正常后关闭防火墙并禁止开机自启,然后就可以远程访问啦!

其它方式安装可以参考这三篇文章
Centos 8安装部署openstack Victoria版
Centos 8中使用Packstack(RDO)快速安装openstack Victoria版
Ubuntu 20使用devstack快速安装openstack最新版

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐