1. 首页 > 软件下载 > 正文

OpenStack下载-OpenStack云平台下载地址-OpenStack云平台下载方法

文章目录索引

1. OpenStack云平台简介

1.1 最新版本信息

2. OpenStack下载方式

3. OpenStack安装实战

4. OpenStack配置实战

5. 虚拟机管理实战

6. 生产环境最佳实践

1. OpenStack云平台简介

OpenStack是一个开源的云计算管理平台项目,由OpenStack基金会管理。OpenStack提供基础设施即服务(IaaS)解决方案,支持公有云、私有云、混合云等多种部署场景,是全球最流行的开源云平台之一,学习交流加群风哥微信:
itpux-com。

OpenStack具有以下特点:

开源免费:完全开源,无厂商锁定

模块化:组件解耦,灵活组合

可扩展:支持大规模横向扩展

生态丰富:庞大的社区和生态系统

1.1 最新版本信息

OpenStack每半年发布一个版本,当前主要版本如下:

OpenStack 2024.1 (Caracal):2024年3月发布,最新版本

OpenStack 2023.2 (Bobcat):2023年10月发布

OpenStack 2023.1 (Antelope):2023年3月发布,长期支持版

OpenStack Zed:2022年10月发布

风哥提示:生产环境建议使用OpenStack 2023.1 (Antelope)或2024.1 (Caracal)版本,这些版本包含最新的功能特性和安全补丁。

2. OpenStack下载方式

OpenStack提供多种安装部署方式。更多学习教程www.fgedu.net.cn

方式一:DevStack快速安装(测试环境)

# DevStack是OpenStack的快速开发环境安装工具
# 适合测试和学习环境

# 创建stack用户
# useradd -s /bin/bash -d /opt/stack -m stack
# echo “stack ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers

# 切换到stack用户
# su – stack

# 下载DevStack
# git clone https://opendev.org/openstack/devstack
# cd devstack

# 创建本地配置文件
# cat > local.conf << 'EOF' [[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD HOST_IP=192.168.1.50 EOF # 执行安装 # ./stack.sh # 安装输出案例如下: DevStack Install Summary========================OS: Linux 5.14.0-362.8.1.el9_3.x86_64 Distro: CentOS Stream 9 OpenStack: 2024.1 Installing dependencies... Configuring database... Configuring message queue... Installing Keystone... Installing Glance... Installing Nova... Installing Neutron... Installing Cinder... Installing Horizon...========================Installation completed! Horizon is now available at http://192.168.1.50/dashboard Keystone is serving at http://192.168.1.50/identity Default credentials: admin:secret

方式二:PackStack安装(CentOS/RHEL)

# PackStack是RDO项目的安装工具
# 适合CentOS/RHEL/AlmaLinux系统

# 安装RDO仓库
# yum install -y https://rdoproject.org/repos/rdo-release.el9.rpm

# 安装输出案例如下:
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
rdo-release noarch 2024.1-1 rdo-release 5.6 k

Transaction Summary
================================================================================
Install 1 Package

Total download size: 5.6 k
Installed size: 1.2 k
Downloading Packages:
rdo-release-2024.1-1.noarch.rpm 5.6 kB/s | 5.6 kB 00:01
——————————————————————————–
Complete!

# 安装PackStack
# yum install -y openstack-packstack

# 安装输出案例如下:
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
openstack-packstack noarch 2024.1-1.el9 rdo-release 256 k

Transaction Summary
================================================================================
Install 1 Package

Total download size: 256 k
Installed size: 1.2 M
Downloading Packages:
openstack-packstack-2024.1-1.el9.noarch.rpm 256 kB/s | 256 kB 00:01
——————————————————————————–
Complete!

# 生成应答文件
# packstack –gen-answer-file=answer.txt

# 编辑应答文件
# vi answer.txt

# 主要配置项:
CONFIG_CONTROLLER_HOST=192.168.1.50
CONFIG_COMPUTE_HOSTS=192.168.1.51,192.168.1.52
CONFIG_NETWORK_HOSTS=192.168.1.50
CONFIG_STORAGE_HOSTS=192.168.1.53
CONFIG_KEYSTONE_ADMIN_PW=secret
CONFIG_NOVA_COMPUTE_PRIVIF=eth1
CONFIG_NOVA_NETWORK_PRIVIF=eth1
CONFIG_NOVA_NETWORK_PUBIF=eth0
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0

# 执行安装
# packstack –answer-file=answer.txt

# 安装输出案例如下:
Welcome to the OpenStack installation!

Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
Setting up ssh keys [ DONE ]
Preparing servers [ DONE ]
Pre installing Puppet and discovering hosts’ details [ DONE ]
Installing time synchronization and NTP [ DONE ]

**** Installation completed successfully ******

Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server
instances might be a problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.50. To use the command
line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.1.50/dashboard .
* The default user is ‘admin’. The password you specified in the answer file.

方式三:Kolla-Ansible容器化部署(推荐生产环境)

# Kolla-Ansible使用容器部署OpenStack
# 适合生产环境

# 安装依赖
# yum install -y python3-virtualenv git

# 创建虚拟环境
# virtualenv /opt/kolla-venv
# source /opt/kolla-venv/bin/activate

# 安装Kolla-Ansible
# pip install git+https://opendev.org/openstack/kolla-ansible@stable/2024.1

# 安装输出案例如下:
Collecting git+https://opendev.org/openstack/kolla-ansible@stable/2024.1
Cloning https://opendev.org/openstack/kolla-ansible (to revision stable/2024.1) to
/tmp/pip-req-build-abc123
Running command git clone -q https://opendev.org/openstack/kolla-ansible /tmp/pip-req-build-abc123
Collecting ansible-core>=2.15
Downloading ansible-core-2.15.5.tar.gz (12.5 MB)

Successfully installed ansible-core-2.15.5 kolla-ansible-17.0.0

# 创建配置目录
# mkdir -p /etc/kolla
# cp -r /opt/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/

# 生成密码文件
# kolla-genpwd

# 编辑配置文件
# vi /etc/kolla/globals.yml

# 主要配置项:
kolla_base_distro: “rocky”
kolla_install_type: “source”
openstack_release: “2024.1”
kolla_internal_vip_address: “192.168.1.100”
network_interface: “eth0”
neutron_external_interface: “eth1”
enable_haproxy: “yes”
enable_keystone: “yes”
enable_glance: “yes”
enable_nova: “yes”
enable_neutron: “yes”
enable_cinder: “yes”
enable_horizon: “yes”

# 配置多节点清单
# vi /etc/kolla/multinode

# 清单内容:
[control]
192.168.1.50
192.168.1.51
192.168.1.52

[network]
192.168.1.50
192.168.1.51

[compute]
192.168.1.53
192.168.1.54
192.168.1.55

[storage]
192.168.1.56
192.168.1.57

[monitoring]
192.168.1.50

# 部署OpenStack
# kolla-ansible -i /etc/kolla/multinode deploy

# 部署输出案例如下:
PLAY [Gather facts for all hosts] *********************************************
TASK [Gathering Facts] ********************************************************
ok: [192.168.1.50]
ok: [192.168.1.51]
ok: [192.168.1.52]

PLAY RECAP ********************************************************************
192.168.1.50 : ok=256 changed=128 unreachable=0 failed=0 skipped=45 rescued=0 ignored=0
192.168.1.51 : ok=198 changed=98 unreachable=0 failed=0 skipped=35 rescued=0 ignored=0
192.168.1.52 : ok=198 changed=98 unreachable=0 failed=0 skipped=35 rescued=0 ignored=0

Deploying OpenStack with Kolla-Ansible completed successfully!

3. OpenStack安装实战

完成下载后,进行OpenStack环境安装。更多学习教程公众号风哥教程itpux_com

步骤1:硬件要求检查

# OpenStack最低硬件要求
# 控制节点: CPU 8核以上,内存32GB以上
# 计算节点: CPU 16核以上,内存64GB以上
# 存储节点: 根据存储需求配置
# 网络: 万兆网络,管理网络、业务网络、存储网络分离

# 检查CPU架构
# uname -m

# 输出案例如下:
x86_64

# 检查CPU虚拟化支持
# cat /proc/cpuinfo | grep -E “vmx|svm”

# 输出案例如下(Intel CPU):
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx
fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl
xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg
fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c
rdrand lahf_lm

# 检查内存大小
# free -h

# 输出案例如下:
total used free shared buff/cache available
Mem: 64Gi 2.5Gi 58Gi 256Mi 3.5Gi 60Gi
Swap 8.0Gi 0B 8.0Gi

步骤2:验证安装

# 加载环境变量
# source /etc/kolla/admin-openrc.sh

# 查看OpenStack版本
# openstack –version

# 输出案例如下:
openstack 6.2.0

# 查看服务状态
# openstack service list

# 输出案例如下:
+———————————-+—————-+——————+
| ID | Name | Type |
+———————————-+—————-+——————+
| 0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p | keystone | identity |
| 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p | glance | image |
| 2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q | nova | compute |
| 3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r | neutron | network |
| 4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s | cinder | volumev3 |
| 5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t | placement | placement |
+———————————-+—————-+——————+

# 查看计算节点
# openstack compute service list

# 输出案例如下:
+—-+—————-+————————+———-+———+——-+—————————-+
| ID | Binary | Host | Zone | Status | State | Updated At |
+—-+—————-+————————+———-+———+——-+—————————-+
| 1 | nova-conductor | controller01 | internal | enabled | up | 2026-04-05T23:15:15.000000 |
| 2 | nova-scheduler | controller01 | internal | enabled | up | 2026-04-05T23:15:15.000000 |
| 3 | nova-compute | compute01 | nova | enabled | up | 2026-04-05T23:15:15.000000 |
| 4 | nova-compute | compute02 | nova | enabled | up | 2026-04-05T23:15:15.000000 |
+—-+—————-+————————+———-+———+——-+—————————-+

# 查看网络代理
# openstack network agent list

# 输出案例如下:
+————————————–+——————–+————————+——————-+——-+—————-+—————————+
| ID | Agent Type | Host | Availability Zone | Alive | Binary | Updated At |
+————————————–+——————–+————————+——————-+——-+—————-+—————————+
| a1b2c3d4-e5f6-7890-abcd-ef1234567890 | L3 agent | network01 | nova | 🙂 | neutron-l3 |
2026-04-05T23:15:15 |
| b2c3d4e5-f6a7-8901-bcde-f12345678901 | Metadata agent | network01 | | 🙂 | neutron-metadata|
2026-04-05T23:15:15 |
| c3d4e5f6-a7b8-9012-cdef-123456789012 | DHCP agent | network01 | nova | 🙂 | neutron-dhcp |
2026-04-05T23:15:15 |
| d4e5f6a7-b8c9-0123-def1-234567890123 | Open vSwitch agent | compute01 | | 🙂 | neutron-openvswitch|
2026-04-05T23:15:15 |
+————————————–+——————–+————————+——————-+——-+—————-+—————————+

4. OpenStack配置实战

完成安装后,进行基础配置优化。学习交流加群风哥QQ113257174

步骤1:创建项目和用户

# 创建项目
# openstack project create –domain default –description “风哥教程项目” fgedu-project

# 输出案例如下:
+————-+———————————-+
| Field | Value |
+————-+———————————-+
| description | 风哥教程项目 |
| domain_id | default |
| enabled | True |
| id | a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p |
| is_domain | False |
| name | fgedu-project |
| parent_id | default |
+————-+———————————-+

# 创建用户
# openstack user create –domain default –password-prompt fgedu-user

# 输出案例如下:
User Password:
Repeat User Password:
+———————+———————————-+
| Field | Value |
+———————+———————————-+
| domain_id | default |
| enabled | True |
| id | b2c3d4e5f6a7g8h9i0j1k2l3m4n5o6p |
| name | fgedu-user |
| password_expires_at | None |
+———————+———————————-+

# 创建角色
# openstack role create fgedu-role

# 绑定角色到项目和用户
# openstack role add –project fgedu-project –user fgedu-user fgedu-role

# 输出案例如下:
Role b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8 added to project a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p and user
b2c3d4e5f6a7g8h9i0j1k2l3m4n5o6p.

步骤2:配置网络

# 创建外部网络
# openstack network create –external –provider-physical-network physnet1 –provider-network-type flat
public

# 输出案例如下:
+—————————+————————————–+
| Field | Value |
+—————————+————————————–+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2026-04-05T23:30:15Z |
| description | |
| id | c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9 |
| is_default | False |
| name | public |
| provider:network_type | flat |
| provider:physical_network | physnet1 |
| shared | False |
| status | ACTIVE |
+—————————+————————————–+

# 创建外部子网
# openstack subnet create –network public –allocation-pool start=192.168.1.100,end=192.168.1.200
–dns-nameserver 8.8.8.8 –gateway 192.168.1.1 –subnet-range 192.168.1.0/24 public-subnet

# 输出案例如下:
+——————-+————————————–+
| Field | Value |
+——————-+————————————–+
| allocation_pools | 192.168.1.100-192.168.1.200 |
| cidr | 192.168.1.0/24 |
| created_at | 2026-04-05T23:32:15Z |
| dns_nameservers | 8.8.8.8 |
| gateway_ip | 192.168.1.1 |
| id | d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0 |
| ip_version | 4 |
| name | public-subnet |
| network_id | c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9 |
| subnetpool_id | None |
+——————-+————————————–+

# 创建内部网络
# openstack network create –internal private

# 创建内部子网
# openstack subnet create –network private –dns-nameserver 8.8.8.8 –gateway 10.0.0.1 –subnet-range
10.0.0.0/24 private-subnet

# 创建路由器
# openstack router create router1

# 设置路由器外部网关
# openstack router set router1 –external-gateway public

# 连接内部子网到路由器
# openstack router add subnet router1 private-subnet

步骤3:配置规格和镜像

# 创建计算规格
# openstack flavor create –vcpus 4 –ram 8192 –disk 100 –id 1 flavor.4c8g

# 输出案例如下:
+—————————-+————————————–+
| Field | Value |
+—————————-+————————————–+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 100 |
| id | 1 |
| name | flavor.4c8g |
| os-flavor-access:is_public | True |
| ram | 8192 |
| rxtx_factor | 1.0 |
| vcpus | 4 |
+—————————-+————————————–+

# 下载镜像
# wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img

# 上传镜像
# openstack image create –disk-format qcow2 –container-format bare –public –file
jammy-server-cloudimg-amd64.img ubuntu-22.04

# 输出案例如下:
+——————+——————————————————+
| Field | Value |
+——————+——————————————————+
| checksum | a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 |
| container_format | bare |
| created_at | 2026-04-05T23:40:15Z |
| disk_format | qcow2 |
| file | /v2/images/e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1/file |
| id | e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1 |
| min_disk | 0 |
| min_ram | 0 |
| name | ubuntu-22.04 |
| owner | f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2 |
| protected | False |
| size | 1234567890 |
| status | active |
| visibility | public |
+——————+——————————————————+

# 查看镜像列表
# openstack image list

# 输出案例如下:
+————————————–+————–+——–+
| ID | Name | Status |
+————————————–+————–+——–+
| e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1 | ubuntu-22.04 | active |
+————————————–+————–+——–+

5. 虚拟机管理实战

创建和管理OpenStack云主机。from:www.itpux.com

步骤1:创建云主机

# 创建密钥对
# openstack keypair create –public-key ~/.ssh/id_rsa.pub fgedu-key

# 输出案例如下:
+————-+————————————————-+
| Field | Value |
+————-+————————————————-+
| fingerprint | a1:b2:c3:d4:e5:f6:g7:h8:i9:j0:k1:l2:m3:n4:o5:p6 |
| name | fgedu-key |
| user_id | a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3 |
+————-+————————————————-+

# 创建安全组
# openstack security group create sg-web

# 添加安全组规则
# openstack security group rule create –protocol tcp –dst-port 80:80 –ingress sg-web
# openstack security group rule create –protocol tcp –dst-port 22:22 –ingress sg-web

# 创建云主机
# openstack server create –flavor flavor.4c8g –image ubuntu-22.04 –nic net-id=private
–security-group sg-web –key-name fgedu-key fgedu-vm-01

# 输出案例如下:
+————————————-+———————————————–+
| Field | Value |
+————————————-+———————————————–+
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| flavor | flavor.4c8g (1) |
| id | f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2 |
| image | ubuntu-22.04 (e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1)|
| key_name | fgedu-key |
| name | fgedu-vm-01 |
| networks | private=10.0.0.10 |
| security_groups | name=’sg-web’ |
| status | BUILD |
+————————————-+———————————————–+

步骤2:云主机操作

# 查看云主机列表
# openstack server list

# 输出案例如下:
+————————————–+————–+——–+——————-+————–+——–+
| ID | Name | Status | Networks | Image | Flavor |
+————————————–+————–+——–+——————-+————–+——–+
| f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2 | fgedu-vm-01 | ACTIVE | private=10.0.0.10 | ubuntu-22.04 | 1 |
+————————————–+————–+——–+——————-+————–+——–+

# 创建浮动IP
# openstack floating ip create public

# 输出案例如下:
+———————+————————————–+
| Field | Value |
+———————+————————————–+
| floating_ip_address | 192.168.1.100 |
| id | a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3 |
| port_id | None |
| status | DOWN |
+———————+————————————–+

# 绑定浮动IP到云主机
# openstack server add floating ip fgedu-vm-01 192.168.1.100

# 输出案例如下:
Floating IP 192.168.1.100 added to server fgedu-vm-01

# 启动云主机
# openstack server start fgedu-vm-01

# 停止云主机
# openstack server stop fgedu-vm-01

# 重启云主机
# openstack server reboot fgedu-vm-01

步骤3:云主机快照

# 创建云主机快照
# openstack server image create –name snapshot-vm-01 fgedu-vm-01

# 输出案例如下:
+——————+———————————————–+
| Field | Value |
+——————+———————————————–+
| checksum | None |
| container_format | bare |
| created_at | 2026-04-06T00:00:15Z |
| disk_format | qcow2 |
| id | b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4 |
| name | snapshot-vm-01 |
| owner | a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3 |
| size | None |
| status | queued |
+——————+———————————————–+

# 查看快照列表
# openstack image list –name snapshot

# 输出案例如下:
+————————————–+—————-+——–+
| ID | Name | Status |
+————————————–+—————-+——–+
| b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4 | snapshot-vm-01 | active |
+————————————–+—————-+——–+

# 从快照创建云主机
# openstack server create –flavor flavor.4c8g –image snapshot-vm-01 –nic net-id=private fgedu-vm-02

6. 生产环境最佳实践

生产环境部署OpenStack的建议配置。学习交流加群风哥微信: itpux-com

步骤1:高可用配置

# 配置控制节点高可用
# 使用HAProxy + Keepalived实现VIP

# 安装HAProxy
# yum install -y haproxy

# 配置HAProxy
# cat > /etc/haproxy/haproxy.cfg << 'EOF' global log /dev/log local0 chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 frontend http_front bind *:80 stats uri /haproxy?stats frontend dashboard_front bind *:443 default_backend dashboard_back backend dashboard_back balance roundrobin option httpchk GET / server controller01 192.168.1.50:443 check ssl verify none server controller02 192.168.1.51:443 check ssl verify none server controller03 192.168.1.52:443 check ssl verify none EOF # 启动HAProxy # systemctl enable haproxy # systemctl start haproxy # 配置数据库高可用(MariaDB Galera Cluster) # 在所有控制节点上配置Galera集群

步骤2:监控配置

# 安装Ceilometer监控服务
# 编辑 /etc/kolla/globals.yml
enable_ceilometer: “yes”
enable_gnocchi: “yes”
enable_aodh: “yes”

# 重新部署
# kolla-ansible -i /etc/kolla/multinode deploy

# 查看监控数据
# openstack metric resource list

# 输出案例如下:
+————————————–+—————————-+———————————-+
| id | type | project_id |
+————————————–+—————————-+———————————-+
| a1b2c3d4-e5f6-7890-abcd-ef1234567890 | instance | a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3 |
| b2c3d4e5-f6a7-8901-bcde-f12345678901 | instance_network_interface |
a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3 |
+————————————–+—————————-+———————————-+

# 配置告警规则
# openstack alarm create –name cpu-high –type gnocchi_resources_threshold –metric cpu_util
–threshold 80 –comparison-operator gt –aggregation-method mean –granularity 60
–resource-type instance –resource-id f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2

生产环境建议:

硬件要求:控制节点内存32GB以上,计算节点内存64GB以上

网络配置:管理网络、业务网络、存储网络分离,万兆网络

存储配置:使用Ceph分布式存储,配置三副本

高可用配置:至少3个控制节点,配置HAProxy和Galera

监控配置:启用Ceilometer和Gnocchi,配置告警

备份策略:定期备份数据库和配置文件

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息