首页 > 代码库 > cloudstack给已有zone添加物理网络

cloudstack给已有zone添加物理网络

默认情况下,如果zone建立完后,cloudstack是不提供添加物理网络接口的。
基础架构- 域 - 物理网络 下面只有我们创建zone的时候添加的物理网络
如果想在这个基础上添加一个物理网络是没有提供UI接口的。

如果想在已经建立好的物理网络基础上添加一个物理网络,那么可以通过系统提供的api添加。
1. 将zone 禁用

在基础架构 域里面选中 我们要操作的zone 点击禁用

2. 到全局设置 将api端口打开 

在全局设置搜索api ,找到 
integration.api.port
将默认端口修改为8096 (可自定义)

然后重启cloud-mangment 

重启完后 可以使用 listZones测试一下能否正常使用api 
listZones 可以列出当前所有的zone信息
如: http://172.16.16.131:8096/?command=listZones&response=xml (测试环境)

3. 创建一个物理网络

创建物理网络需要使用zone的id ,使用listZones  命令,获取到要操作zone的id
43c962a1-9521-447f-a1f1-af2eeec8f165

然后在浏览器输入 http://172.16.16.131:8096/?command=createPhysicalNetwork&name=PhysicalNetwork%202&zoneid=43c962a1-9521-447f-a1f1-af2eeec8f165&response=xml
执行完得到如下返回值
4. 添加来宾流量标签 

创建完物理网络后需要在该服务上添加流量标签,用于服务
添加标签前需要获取物理网络id
可以使用刚才添加完后返回的物理网络id,也可使用listPhysicalNetworks 命令获取

刚才返回的物理网络id  a68ce786-a727-4082-960e-03529aab6320
在浏览器执行如下命令  
http://172.16.16.131:8096/?command=addTrafficType&physicalnetworkid=a68ce786-a727-4082-960e-03529aab6320&traffictype=Guest&kvmnetworklabel=cloudbr1&response=xml

注意:命令中 traffictype 写的是guest 即添加一个来宾网络标签,如果需要添加其他的标签,则需要指定对应的标签
kvmnetworklabel,我使用的是kvm hyperviser 所以这里填写的是kvm的标签,并填写上要使用的网桥名称。

执行完得到如下结果

5. 启用物理网络
    新添加的物理网络状态为Disabled,我们需要将其enabled 才能够使用
先获取 物理网络id
http://172.16.16.131:8096/?command=listPhysicalNetworks&response=xml

可以看到当前添加的物理网络2 仍为Disabled 
我们需要将其enabled 
拿到物理网络的id 
执行updatePhysicalNetwork
命令 :
http://172.16.16.131:8096/?command=updatePhysicalNetwork&id=a68ce786-a727-4082-960e-03529aab6320&state=Enabled&response=xml

结果:

这个时候即添加了一个物理网络,并添加了一个来宾网络 。


http://172.16.16.131:8096/?command=listNetworkServiceProviders&response=xml


http://172.16.16.131:8096/?command=listVirtualRouterElements&response=xml

http://172.16.16.131:8096/?command=configureVirtualRouterElement&id=b983fc1a-bf94-4635-b19a-faf2d85bbc2c&enabled=true&response=xml

http://172.16.16.131:8096/?command=configureVirtualRouterElement&id=bdfcbbe9-30fa-467a-874a-5e7b5d7f4969&enabled=true&response=xml


http://172.16.16.131:8096/?command=listVirtualRouterElements&response=xml