设为首页 收藏本站
查看: 1149|回复: 0

[经验分享] openstack grizzly版network网络节点安装

[复制链接]

尚未签到

发表于 2015-4-12 14:24:56 | 显示全部楼层 |阅读模式
  版本以及源的配置和控制节点一致
  1.安装完操作系统已经apt源配置完成之后,一定要执行 apt-get update



root@cloud:~# mv /etc/apt/sources.list /etc/apt/sources.list.bak   #备份一下原来的源
root@cloud:~# vi /etc/apt/sources.list  
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse

#加入163源,163源每6个小时与官方源站同步一次。
root@cloud:~# apt-get update
root@cloud:~# apt-get install ubuntu-cloud-keyring   #安装cloud版本密钥(我这么理解)
root@cloud:~# vi /etc/apt/sources.list.d/cloud-archive.list #加入版本库地址
deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
  2.加入版本库地址.



root@cloud:~# vi /etc/apt/sources.list.d/cloud-archive.list
deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
root@cloud:~# apt-get update && apt-get upgrade
  3.配置grizzly源



root@cloud:~# vi /etc/apt/sources.list.d/grizzly.list 加入grizzly源
deb http://archive.gplhost.com/debian grizzly main
deb http://archive.gplhost.com/debian grizzly-backports main
root@cloud:~# apt-get update  #执行的时候会出错,记录NO_PUBKEY后面的密钥。
W: GPG error: http://archive.gplhost.com grizzly Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 64AA94D00B849883
W: GPG error: http://archive.gplhost.com grizzly-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 64AA94D00B849883
上面错误解决办法:(注意--recy-key 后面的内容,是你出错时记录的,不要原本照着复制 )
root@cloud:~# gpg --keyserver pgpkeys.mit.edu --recv-key 64AA94D00B849883
root@cloud:~# gpg -a --export 64AA94D00B849883 | sudo apt-key add -
root@cloud:~# apt-get update
root@cloud:~# apt-get install gplhost-archive-keyring
root@cloud:~# apt-get upgrade
  4.网卡配置:/etc/network/interface



root@network:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The eth0 network interface
auto eth0
iface eth0 inet static
address 10.10.10.9
netmask    255.255.255.0
# The eth1 network interface
auto eth1
iface eth1 inet dhcp
root@network:~#
  5.开启包转发以及包反向过滤技术。



root@network:~# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
root@network:~# /etc/init.d/networking restart  重启网卡
* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
* Reconfiguring network interfaces...                                                                                                                                             ssh stop/waiting
ssh start/running, process 28618
ssh stop/waiting
ssh start/running, process 28693
                                                                                                                                                                            [ OK ]
root@network:~#
root@network:~# sysctl -e -p /etc/sysctl.conf  应用修改
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
检查是否成功。查看/proc/sys/net/ipv4/ip_forward 配置文件中的数字是否是1
root@network:~# cat /proc/sys/net/ipv4/ip_forward
1
root@network:~#

  6.安装ntp服务:



root@network:~# apt-get install -y ntp
  7.安装quantum软件包:



root@network:~# apt-get install quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent
并确认
root@network:~# vi /etc/quantum/quantum.conf 目录下有以下一行内容。
root_helper = sudo quantum-rootwrap /etc/quantum/rootwrap.conf
启动:虚拟交换服务openvswitch

root@network:~# service openvswitch-switch restart
* ovs-brcompatd is not running
* Killing ovs-vswitchd (2845)
* Killing ovsdb-server (2836)
* Starting ovsdb-server
* Configuring Open vSwitch system IDs
* Starting ovs-vswitchd
root@network:~#
  8.建立内网和外网的桥接:



root@network:~# ovs-vsctl add-br br-ex
root@network:~# ovs-vsctl add-port br-ex eth1
root@network:~# ovs-vsctl add-br br-int
  9.编辑网卡:



root@network:~# vi /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The eth0 network interface
auto eth0
iface eth0 inet static
address 10.10.10.9
netmask 255.255.255.0
# The eth1 network interface
auto eth1
iface eth1 inet manual      #这里说明一下,eth1必须设置为手动(manual),因为它是根据br-ex变化的,当你的br-ex为dhcp,那么eth1也就被当作dhcp
up ip address add 0/0 dev $IFACE
up ip link set $IFACE up
down ip link set $IFACE down
# The br-ex network interface
auto br-ex
iface br-ex inet dhcp   #由于我的网卡是自动获取,所以我这里设置为自动获取
重启网卡:
root@network:~# /etc/init.d/networking restart
* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
* Reconfiguring network interfaces...                                                                                                                       ssh stop/waiting
ssh start/running, process 6152
ssh stop/waiting
ssh start/running, process 6243
ssh stop/waiting
ssh start/running, process 6317
                                                                                                                                                      [ OK ]
root@network:~#
查看你的网卡桥接是否生效,这里br-ex会自动获取ip
root@network:~# ifconfig
br-ex     Link encap:Ethernet  HWaddr 00:0c:29:61:1d:84  
          inet addr:172.16.56.100  Bcast:172.16.56.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe61:1d84/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:162839 (162.8 KB)  TX bytes:1152 (1.1 KB)
eth0      Link encap:Ethernet  HWaddr 00:0c:29:61:1d:7a  
          inet addr:10.10.10.9  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe61:1d7a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3573 errors:0 dropped:63 overruns:0 frame:0
          TX packets:709 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:929951 (929.9 KB)  TX bytes:109655 (109.6 KB)
eth1      Link encap:Ethernet  HWaddr 00:0c:29:61:1d:84  
          inet6 addr: fe80::20c:29ff:fe61:1d84/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:204083 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30603 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:196967753 (196.9 MB)  TX bytes:2920747 (2.9 MB)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:578 errors:0 dropped:0 overruns:0 frame:0
          TX packets:578 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:36048 (36.0 KB)  TX bytes:36048 (36.0 KB)
root@network:~# ping www.baidu.com
PING www.a.shifen.com (220.181.111.148) 56(84) bytes of data.
64 bytes from 220.181.111.148: icmp_req=1 ttl=49 time=14.7 ms
64 bytes from 220.181.111.148: icmp_req=2 ttl=49 time=14.2 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 14.271/14.497/14.723/0.226 ms
root@network:~#
删除设备中eth1的地址
添加br-ex的地址
root@network:~# ip addr del 172.16.56.100/24 dev eth1                             
RTNETLINK answers: Cannot assign requested address         #添加和删除时出错,说明这两个网卡已经自动添加或者删除这两步可以不用执行
root@network:~# ip addr add 172.16.56.100/24 dev br-ex
RTNETLINK answers: File exists


  9.使用iptables实现nat地址转换,与控制节点建立关联。



root@network:~# iptables -A FORWARD -i eth1 -o br-ex -s 10.10.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
root@network:~# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
root@network:~# iptables -A POSTROUTING -s 10.10.10.0/24 -t nat -j MASQUERADE
  10.编辑配置quantum.conf配置文件:



root@network:~# vi /etc/quantum/quantum.conf
[DEFAULT]
verbose = True
rabbit_password = openstack
rabbit_host = 10.10.10.10
[keystone_authtoken]
auth_host = 10.10.10.10
admin_tenant_name = service
admin_user = quantum
admin_password = openstack
root@network:~# vi /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
[DATABASE]
sql_connection = mysql://quantum:password@10.10.10.10/quantum
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
local_ip = 10.10.10.9
[securitygroup]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
root@network:~# vi /etc/quantum/dhcp_agent.ini
[DEFAULT]
enable_isolated_metadata = True
enable_metadata_network = True
root@network:~# vi /etc/quantum/metadata_agent.ini
[DEFAULT]
auth_url = http://10.10.10.10:35357/v2.0
auth_region = RegionOne
admin_tenant_name = service
admin_user = quantum
admin_password = password
nova_metadata_ip = 10.10.10.10
metadata_proxy_shared_secret = password
重启服务:
root@network:~# /etc/init.d/quantum-plugin-openvswitch-agent restart      
root@network:~# /etc/init.d/quantum-dhcp-agent restart               
root@network:~# /etc/init.d/quantum-metadata-agent restart               
root@network:~# /etc/init.d/quantum-l3-agent restart^      
root@network:~#
查看看日志:
root@network:/var/log/quantum# tail -n 3 dhcp-agent.log
2013-10-27 06:12:50    DEBUG [quantum.openstack.common.rpc.amqp] UNIQUE_ID is dbe93d3d17894b80bcf9fa81785cb7cc.
2013-10-27 06:12:54    DEBUG [quantum.openstack.common.rpc.amqp] Making asynchronous cast on q-plugin...
2013-10-27 06:12:54    DEBUG [quantum.openstack.common.rpc.amqp] UNIQUE_ID is c06ebff5c4e14f95954bce7a6b15406e.
root@network:/var/log/quantum#
----------------------------------------
root@network:/var/log/quantum# tail -n 3 l3-agent.log
2013-10-27 06:14:23    DEBUG [quantum.openstack.common.periodic_task] Running periodic task L3NATAgentWithStateReport._sync_routers_task
2013-10-27 06:14:25    DEBUG [quantum.openstack.common.rpc.amqp] Making asynchronous cast on q-plugin...
2013-10-27 06:14:25    DEBUG [quantum.openstack.common.rpc.amqp] UNIQUE_ID is cfd4a18138764474ac212f76550b719d.
root@network:/var/log/quantum#

----------------------------------------
root@network:/var/log/quantum# tail -n 3 metadata-agent.log
2013-10-27 06:10:53    DEBUG [quantum.agent.metadata.agent] DATABASE.sqlalchemy_pool_size  = None
2013-10-27 06:10:53    DEBUG [quantum.agent.metadata.agent] DATABASE.sqlalchemy_pool_timeout = None
2013-10-27 06:10:53    DEBUG [quantum.agent.metadata.agent] ********************************************************************************
root@network:/var/log/quantum#
----------------------------------------
root@network:/var/log/quantum# tail -n 10 openvswitch-agent.log
Command: ['sudo', 'quantum-rootwrap', '/etc/quantum/rootwrap.conf', 'ovs-vsctl', '--timeout=2', 'list-ports', 'br-int']
Exit code: 0
Stdout: 'patch-tun\n'
Stderr: ''
2013-10-27 06:15:26    DEBUG [quantum.agent.linux.utils] Running command: ['sudo', 'quantum-rootwrap', '/etc/quantum/rootwrap.conf', 'ovs-vsctl', '--timeout=2', '--format=json', '--', '--columns=name,external_ids', 'list', 'Interface']
2013-10-27 06:15:26    DEBUG [quantum.agent.linux.utils]
Command: ['sudo', 'quantum-rootwrap', '/etc/quantum/rootwrap.conf', 'ovs-vsctl', '--timeout=2', '--format=json', '--', '--columns=name,external_ids', 'list', 'Interface']
Exit code: 0
Stdout: '{"data":[["patch-tun",["map",[]]],["br-tun",["map",[]]],["eth1",["map",[]]],["patch-int",["map",[]]],["br-int",["map",[]]],["br-ex",["map",[]]]],"headings":["name","external_ids"]}\n'
Stderr: ''
root@network:/var/log/quantum#

----------------------------------------

openvswitch-agent.log 日志中出现
ERROR [quantum.plugins.openvswitch.agent.ovs_quantum_agent] Failed to create OVS patch port. ....

或者启动openvswitch-switch时出现
ovs-vswitchd is not running  #这里提示没有运行,可以通过命令查看是运行的,这里只是缺少相应的依赖包
root@network:/var/log/quantum# /usr/share/openvswitch/scripts/ovs-ctl status
ovsdb-server is running with pid 20343
ovs-vswitchd is running with pid 20352

ovs-brcompatd is not running
首先查看brcompatd模块是否加载:
root@network:/var/log/quantum# lsmod | grep brco
brcompat               13513  0
openvswitch            84161  4 brcompat          #说明模块是加载的,可是怎么都起不来,因为没有安装openstack-common

解决以上错误的办法:
root@network~# apt-get install openvswitch-common openvswitch-datapath-dkms   openvswitch-datapath-source   openvswitch-switch quantum-plugin-openvswitch   quantum-plugin-openvswitch-agentn-openvswitch-agent
  11.创建一个虚拟网络:



加载环境变量:
root@network:~# vi .openrc
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL="http://10.10.10.10:5000/v2.0/"
export SERVICE_ENDPOINT="http://10.10.10.10:35357/v2.0"
export SERVICE_TOKEN=openstack
root@network:~# source /root/.openrc
root@network:~# echo "source /root/.openrc" >> /root/.bashrc
root@network:~#
  11.1创建网卡脚本(根据个人喜好更改其中对应的ip即可):



#!/bin/bash
TENANT_NAME="demo"
TENANT_NETWORK_NAME="demo-net"
TENANT_SUBNET_NAME="${TENANT_NETWORK_NAME}-subnet"
TENANT_ROUTER_NAME="demo-router"
FIXED_RANGE="10.5.5.0/24"
NETWORK_GATEWAY="10.5.5.1"
TENANT_ID=$(keystone tenant-list | grep " $TENANT_NAME " | awk '{print $2}')
TENANT_NET_ID=$(quantum net-create --tenant_id $TENANT_ID
$TENANT_NETWORK_NAME --provider:network_type gre --
provider:segmentation_id 1 | grep " id " | awk '{print $4}')
TENANT_SUBNET_ID=$(quantum subnet-create --tenant_id $TENANT_ID --ip_version
4 --name $TENANT_SUBNET_NAME $TENANT_NET_ID $FIXED_RANGE --gateway
$NETWORK_GATEWAY --dns_nameservers list=true 8.8.8.8 | grep " id " | awk
'{print $4}')
ROUTER_ID=$(quantum router-create --tenant_id $TENANT_ID $TENANT_ROUTER_NAME
| grep " id " | awk '{print $4}')
quantum router-interface-add $ROUTER_ID $TENANT_SUBNET_ID
  #人品不好总是执失败,所以一般都是自己手动写

  
11.2建立虚拟网卡之前:

  11.3.1手动建立虚拟网卡:



root@network:~# quantum net-create --tenant_id 8d428dd34477470d95ad6ad4df0d2dd4 demo-net --provider:network_type gre --provider:segmentation_id 1
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | 46db2c2f-66c4-41ef-a497-07f6142a3326 |
| name                      | demo-net                             |
| provider:network_type     | gre                                  |
| provider:physical_network |                                      |
| provider:segmentation_id  | 1                                    |
| router:external           | False                                |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | 8d428dd34477470d95ad6ad4df0d2dd4     |
+---------------------------+--------------------------------------+
root@network:~#
  11.3.2执行以上命令之后(不要照搬,上面的tenantID是demo用户的tenantID):

  11.4执行以下命令其中:
  demo-tenant-id 8d428dd34477470d95ad6ad4df0d2dd4
  所前面所创建网络类型的ID:46db2c2f-66c4-41ef-a497-07f6142a3326
  虚拟网络名称:subnet
  



root@network:~# quantum subnet-create --tenant_id 8d428dd34477470d95ad6ad4df0d2dd4 --ip_version 4 --name subnet 46db2c2f-66c4-41ef-a497-07f6142a3326 192.168.1.0/24  --gateway 192.168.1.1 --dns_nameservers list=true 8.8.8.8
Created a new subnet:
+------------------+--------------------------------------------------+
| Field            | Value                                            |
+------------------+--------------------------------------------------+
| allocation_pools | {"start": "192.168.1.2", "end": "192.168.1.254"} |
| cidr             | 192.168.1.0/24                                   |
| dns_nameservers  | 8.8.8.8                                          |
| enable_dhcp      | True                                             |
| gateway_ip       | 192.168.1.1                                      |
| host_routes      |                                                  |
| id               | 04d73c47-82f1-41b3-840a-d05dd3ab9079             |
| ip_version       | 4                                                |
| name             | subnet                                           |
| network_id       | 46db2c2f-66c4-41ef-a497-07f6142a3326             |
| tenant_id        | 8d428dd34477470d95ad6ad4df0d2dd4                 |
+------------------+--------------------------------------------------+
root@network:~#
  11.4.1查看控制台的效果:

  15建立一个虚拟路由:



root@network:~# quantum router-create --tenant_id 8d428dd34477470d95ad6ad4df0d2dd4 demo-router
Created a new router:
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | True                                 |
| external_gateway_info |                                      |
| id                    | c246274d-9950-4369-b54c-dd6f53aa1bd6 |
| name                  | demo-router                          |
| status                | ACTIVE                               |
| tenant_id             | 8d428dd34477470d95ad6ad4df0d2dd4     |
+-----------------------+--------------------------------------+
root@network:~#
  15.1在控制台查看:

  16.将路由添加到192.168.1.0 网段:
  路由ID: c246274d-9950-4369-b54c-dd6f53aa1bd6
  subnetID : 04d73c47-82f1-41b3-840a-d05dd3ab9079



root@network:~# quantum router-interface-add c246274d-9950-4369-b54c-dd6f53aa1bd6 04d73c47-82f1-41b3-840a-d05dd3ab9079
Added interface to router c246274d-9950-4369-b54c-dd6f53aa1bd6
root@network:~#
  16.1在控制台查看结果:

  17.也可以通过命令行查看:



root@network:~# quantum  net-list
+--------------------------------------+----------+-----------------------------------------------------+
| id                                   | name     | subnets                                             |
+--------------------------------------+----------+-----------------------------------------------------+
| 46db2c2f-66c4-41ef-a497-07f6142a3326 | demo-net | 04d73c47-82f1-41b3-840a-d05dd3ab9079 192.168.1.0/24 |
+--------------------------------------+----------+-----------------------------------------------------+
root@network:~# quantum  router-list
+--------------------------------------+-------------+-----------------------+
| id                                   | name        | external_gateway_info |
+--------------------------------------+-------------+-----------------------+
| c246274d-9950-4369-b54c-dd6f53aa1bd6 | demo-router | null                  |
+--------------------------------------+-------------+-----------------------+
root@network:~# quantum  quota-list
root@network:~# quantum  subnet-list
+--------------------------------------+--------+----------------+--------------------------------------------------+
| id                                   | name   | cidr           | allocation_pools                                 |
+--------------------------------------+--------+----------------+--------------------------------------------------+
| 04d73c47-82f1-41b3-840a-d05dd3ab9079 | subnet | 192.168.1.0/24 | {"start": "192.168.1.2", "end": "192.168.1.254"} |
+--------------------------------------+--------+----------------+--------------------------------------------------+
root@network:~#
  
  18.建立公共网络:



root@network:~# quantum net-create public --router:external=True
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| id                        | f27bd344-b096-4ce3-8a41-5002e7ed39ab |
| name                      | public                               |
| provider:network_type     | gre                                  |
| provider:physical_network |                                      |
| provider:segmentation_id  | 2                                    |
| router:external           | True                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tenant_id                 | 139ea7b2f2444bcd85c327c1671708e1     |
+---------------------------+--------------------------------------+
划分一下公用网络的子网:
root@network:~# quantum subnet-create --ip_version 4 --gateway 172.16.56.1 public 172.16.56.0/24 --allocation-pool start=172.16.56.100,end=172.16.56.250 --disable-dhcp --name public-subnet
Created a new subnet:
+------------------+----------------------------------------------------+
| Field            | Value                                              |
+------------------+----------------------------------------------------+
| allocation_pools | {"start": "172.16.56.100", "end": "172.16.56.250"} |
| cidr             | 172.16.56.0/24                                     |
| dns_nameservers  |                                                    |
| enable_dhcp      | False                                              |
| gateway_ip       | 172.16.56.1                                        |
| host_routes      |                                                    |
| id               | 835f2e4c-e155-4679-a642-cb70bed04a7b               |
| ip_version       | 4                                                  |
| name             | public-subnet                                      |
| network_id       | f27bd344-b096-4ce3-8a41-5002e7ed39ab               |
| tenant_id        | 139ea7b2f2444bcd85c327c1671708e1                   |
+------------------+----------------------------------------------------+
允许demo路由通过公共路由上公用网络:
root@network:~# quantum router-gateway-set demo-router public
Set gateway for router demo-router
root@network:~#
  19.查看控制台效果:

  
  
  网络节点至此完成~~~
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56333-1-1.html 上篇帖子: openstack单元測试用组件一览 下篇帖子: OpenStack架构简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表