Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何部署OpenStack #17

Open
tzing0013 opened this issue Nov 1, 2023 · 0 comments
Open

如何部署OpenStack #17

tzing0013 opened this issue Nov 1, 2023 · 0 comments
Labels
openEuler Improvements or additions to documentation OpenStack publish New feature or request

Comments

@tzing0013
Copy link

tzing0013 commented Nov 1, 2023

安装OpenStack

1. 使用oos工具安装

oos(openEuler OpenStack SIG)是OpenStack SIG提供的命令行工具。
安装oos工具,使用纳管的方式部署OpenStack环境,版本22.03-lts-sp2。

若提示无该版本,可在oos工具安装路径(oos/commands/environment/constants.py:OE_OS_RELEASE)添加该版本。该问题已修复,发布版本暂未更新。

  1. 安装oos工具

    pip install openstack-sig-tool

  2. 创建oos环境

    # sshpass在`oos env create`过程中被使用,用于配置对目标主机的免密访问
    dnf install sshpass
    oos env manage -r 22.03-lts-sp2 -i TARGET_MACHINE_IP -p TARGET_MACHINE_PASSWD -n test-oos

    替换TARGET_MACHINE_IP为目标机ip (使用ifconfig查看,如eth0的ip)、TARGET_MACHINE_PASSWD为目标机密码,即登陆当前环境的密码。

  3. 部署OpenStack

    1> 对于禁止密码登陆的机器,需要手动注入公匙
    (oos/etc/key_pair/id_rsa.pub)
    到~/.ssh/authorized_keys中,否则下面的命令会报错

    2> 安装cinder时需要有对应的磁盘/dev/vdb

    3> 其他安装可参考流程/usr/local/etc/oos/playbooks/entry.yaml

    oos env setup test-oos -r wallaby

    安装完毕后可使用如下命令创建虚拟机

    openstack flavor create --disk 1 --vcpus 2 --ram 1024 --id 1 --public my-flavor
    wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-aarch64-disk.img -O cirros-0.5.2.img
    openstack image create --disk-format qcow2 --container-format bare --file ./cirros-0.5.2.img --public my-image -c id -f value
    openstack network create --external --share public-network --provider-network-type flat --provider-physical-network provider --default -c id -f value
    openstack subnet create --network public-network --allocation-pool start=10.100.100.189,end=10.100.100.239 --dns-nameserver 100.125.128.250 --gateway 10.100.100.1 --subnet-range 10.100.100.0/24 public-subnet
    openstack server create --flavor my-flavor --image my-image --network public-network --password root my-server
    openstack server list

    创建虚拟机后通过openstack server list命令查询虚拟机信息,回显会打印虚拟机id和ip
    可使用virsh console 或ssh 命令连接虚拟机

2. 使用devstack安装

使用devstack部署OpenStack,干净的环境大概率不会报错

安装步骤如下(master分支)

  1. 安装前准备

    cd /opt/
    git clone https://opendev.org/openstack/devstack.git
    
    /opt/devstack/tools/create-stack-user.sh
    chown -R stack:stack /opt/devstack
    chmod -R 755 /opt/devstack
    chmod -R 755 /opt/stack
    
    切换stack用户
    su stack
    
    确保stack用户的PATH环境变量包含了`/usr/sbin`
    PATH=$PATH:/usr/sbin
    
    新增配置文件
    vi /opt/devstack/local.conf
    [[local|localrc]]
    DATABASE_PASSWORD=root
    RABBIT_PASSWORD=root
    SERVICE_PASSWORD=root
    ADMIN_PASSWORD=root
    OVN_BUILD_FROM_SOURCE=True
    
    # arm环境增加如下配置
    [[post-config|$NOVA_CONF]]
    [libvirt]
    cpu_mode=custom
    cpu_model=cortex-a72

    devstack的master分支要求libvirt版本大于7.0
    arm环境安装软件包edk2时缺少arm配置,建议使用下面的yum源安装libvirt和edk2相关软件包
    https://eur.openeuler.openatom.cn/coprs/g/sig-openstack/Libvirt-7.X/repo/openeuler-22.03_LTS/group_sig-openstack-Libvirt-7.X-openeuler-22.03_LTS.repo

  2. 部署OpenStack

    进入/opt/devstack目录,执行./stack.sh,等待部署完成

  3. 日志

    devstack将日志生成到文件需要在部署前在local.conf中添加配置

    未配置日志内容可使用systemd的方法查看日志,如查看nova-compute
    服务的日志,服务名称可在/etc/systemd/system目录下查看,
    其名称携带devstack@前缀,如下图所示

6eb07801786627e341494b0fa34132d

systemd日志查看命令举例如下:
```shell
journalctl --unit [email protected]
```
  1. systemd调试方法

    注:退出调试重启systemd服务时,一定要删除断点
    nova-compute调试举例如下:

    1> 在对应的安装目录文件设置断点
    import pdb;pdb.set_trace()

    2> 停止systemd服务
    systemctl stop [email protected]

    3> 执行启动服务
    查看对应服务,在终端1执行该命令

systemd_cmd

4> 调试  
在终端2执行OpenStack创建服务命令,代码会停止在断点处

另外,对于uwsgi这种服务,可能需要加上--honour-stdin才能调试,
可使用uwsgi --help查看参数含义
@Yikun Yikun added openEuler Improvements or additions to documentation publish New feature or request labels Jan 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
openEuler Improvements or additions to documentation OpenStack publish New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants