Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装
1.需求
| 節點角色 | NICs |
| 控制節點 | eth0(10.10.10.51)eth1(192.168.100.51) |
| 網絡節點 | eth0(10.10.10.52)eth1(10.20.20.52)eth2(192.168.100.52) |
| 計算結點 | eth0(10.10.10.53)eth1(10.20.20.53) |
?
?
?
?
注意1:你總是可以使用dpkg -s <packagename>確認你是用的是Havana版本
注意2:這個是當前網絡架構
2.控制節點
2.1.準備Ubuntu-
安裝好Ubuntu12.04 server 64bits后,進入root模式進行安裝。
- 添加Havana倉庫:
- 升級系統:
-
配置網卡編輯/etc/network/interfaces:
- 重啟網絡服務
-
開啟路由轉發:
- 安裝MySQL并為root用戶設置密碼:
- 配置mysql監聽所有網絡請求
2.4安裝RabbitMQ和NTP
- 安裝RabbitMQ:
- 安裝NTP服務
- ?創建數據庫
2.6.配置Keystone
-
安裝keystone軟件包:
-
在/etc/keystone/keystone.conf中設置連接到新創建的數據庫:
-
重啟身份認證服務并同步數據庫:
?
#!/bin/sh # # Keystone Datas # # Description: Fill Keystone with datas. ## Please set 13, 30 lines of variables ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin_pass} SERVICE_PASSWORD=${SERVICE_PASSWORD:-service_pass} export SERVICE_TOKEN="ADMIN" export SERVICE_ENDPOINT="http://10.10.10.51:35357/v2.0" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} KEYSTONE_REGION=RegionOne # If you need to provide the service, please to open keystone_wlan_ip and swift_wlan_ip # of course you are a multi-node architecture, and swift service # corresponding ip address set the following variables KEYSTONE_IP="10.10.10.51" EXT_HOST_IP="192.168.100.51" SWIFT_IP="10.10.10.51" COMPUTE_IP=$KEYSTONE_IP EC2_IP=$KEYSTONE_IP GLANCE_IP=$KEYSTONE_IP VOLUME_IP=$KEYSTONE_IP NEUTRON_IP=$KEYSTONE_IP CEILOMETER=$KEYSTONE_IPget_id () {echo `$@ | awk '/ id / { print $4 }'` }# Create Tenants ADMIN_TENANT=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT tenant-create --name=admin) SERVICE_TENANT=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT tenant-create --name=$SERVICE_TENANT_NAME) DEMO_TENANT=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT tenant-create --name=demo) INVIS_TENANT=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT tenant-create --name=invisible_to_admin)# Create Users ADMIN_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=admin --pass="$ADMIN_PASSWORD" --email=admin@domain.com) DEMO_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=demo --pass="$ADMIN_PASSWORD" --email=demo@domain.com)# Create Roles ADMIN_ROLE=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT role-create --name=admin) KEYSTONEADMIN_ROLE=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT role-create --name=KeystoneAdmin) KEYSTONESERVICE_ROLE=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT role-create --name=KeystoneServiceAdmin)# Add Roles to Users in Tenants keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenant-id $ADMIN_TENANT keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenant-id $DEMO_TENANT keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $ADMIN_USER --role-id $KEYSTONEADMIN_ROLE --tenant-id $ADMIN_TENANT keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $ADMIN_USER --role-id $KEYSTONESERVICE_ROLE --tenant-id $ADMIN_TENANT# The Member role is used by Horizon and Swift MEMBER_ROLE=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT role-create --name=Member) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $DEMO_USER --role-id $MEMBER_ROLE --tenant-id $DEMO_TENANT keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --user-id $DEMO_USER --role-id $MEMBER_ROLE --tenant-id $INVIS_TENANT# Configure service users/roles NOVA_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=nova --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=nova@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $NOVA_USER --role-id $ADMIN_ROLEGLANCE_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=glance --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=glance@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $GLANCE_USER --role-id $ADMIN_ROLESWIFT_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=swift --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=swift@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $SWIFT_USER --role-id $ADMIN_ROLERESELLER_ROLE=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT role-create --name=ResellerAdmin) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $NOVA_USER --role-id $RESELLER_ROLENEUTRON_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=neutron --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=neutron@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $NEUTRON_USER --role-id $ADMIN_ROLECINDER_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=cinder --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=cinder@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $CINDER_USER --role-id $ADMIN_ROLECEILOMETER_USER=$(get_id keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-create --name=ceilometer --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=ceilometer@domain.com) keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT user-role-add --tenant-id $SERVICE_TENANT --user-id $CEILOMETER_USER --role-id $ADMIN_ROLE## Create Service KEYSTONE_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name keystone --type identity --description 'OpenStack Identity'| awk '/ id / { print $4 }' ) COMPUTE_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=nova --type=compute --description='OpenStack Compute Service'| awk '/ id / { print $4 }' ) CINDER_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=cinder --type=volume --description='OpenStack Volume Service'| awk '/ id / { print $4 }' ) GLANCE_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=glance --type=image --description='OpenStack Image Service'| awk '/ id / { print $4 }' ) SWIFT_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=swift --type=object-store --description='OpenStack Storage Service' | awk '/ id / { print $4 }' ) EC2_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=ec2 --type=ec2 --description='OpenStack EC2 service'| awk '/ id / { print $4 }' ) NEUTRON_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=neutron --type=network --description='OpenStack Networking service'| awk '/ id / { print $4 }' ) CEILOMETER_ID=$(keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT service-create --name=ceilometer --type=metering --description='Ceilometer Metering Service'| awk '/ id / { print $4 }' )## Create Endpoint #identity if [ "$KEYSTONE_WLAN_IP" != '' ];thenkeystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$KEYSTONE_ID --publicurl http://"$EXT_HOST_IP":5000/v2.0 --adminurl http://"$KEYSTONE_WLAN_IP":35357/v2.0 --internalurl http://"$KEYSTONE_WLAN_IP":5000/v2.0 fi keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$KEYSTONE_ID --publicurl http://"$EXT_HOST_IP":5000/v2.0 --adminurl http://"$KEYSTONE_IP":35357/v2.0 --internalurl http://"$KEYSTONE_IP":5000/v2.0#compute keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$COMPUTE_ID --publicurl http://"$EXT_HOST_IP":8774/v2/\$\(tenant_id\)s --adminurl http://"$COMPUTE_IP":8774/v2/\$\(tenant_id\)s --internalurl http://"$COMPUTE_IP":8774/v2/\$\(tenant_id\)s#volume keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$CINDER_ID --publicurl http://"$EXT_HOST_IP":8776/v1/\$\(tenant_id\)s --adminurl http://"$VOLUME_IP":8776/v1/\$\(tenant_id\)s --internalurl http://"$VOLUME_IP":8776/v1/\$\(tenant_id\)s#image keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$GLANCE_ID --publicurl http://"$EXT_HOST_IP":9292/v2 --adminurl http://"$GLANCE_IP":9292/v2 --internalurl http://"$GLANCE_IP":9292/v2#object-store if [ "$SWIFT_WLAN_IP" != '' ];thenkeystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$SWIFT_ID --publicurl http://"$EXT_HOST_IP":8080/v1/AUTH_\$\(tenant_id\)s --adminurl http://"$SWIFT_WLAN_IP":8080/v1 --internalurl http://"$SWIFT_WLAN_IP":8080/v1/AUTH_\$\(tenant_id\)s fi keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$SWIFT_ID --publicurl http://"$EXT_HOST_IP":8080/v1/AUTH_\$\(tenant_id\)s --adminurl http://"$SWIFT_IP":8080/v1 --internalurl http://"$SWIFT_IP":8080/v1/AUTH_\$\(tenant_id\)s#ec2 keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$EC2_ID --publicurl http://"$EXT_HOST_IP":8773/services/Cloud --adminurl http://"$EC2_IP":8773/services/Admin --internalurl http://"$EC2_IP":8773/services/Cloud#network keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$NEUTRON_ID --publicurl http://"$EXT_HOST_IP":9696/ --adminurl http://"$NUETRON_IP":9696/ --internalurl http://"$NEUTRON_IP":9696/#ceilometer keystone --token $SERVICE_TOKEN --endpoint $SERVICE_ENDPOINT endpoint-create --region $KEYSTONE_REGION --service-id=$CEILOMETER_ID --publicurl http://"$EXT_HOST_IP":8777/ --adminurl http://"$CEILOMETER_IP":8777/ --internalurl http://"$CEILOMETER_IP":8777/?
-
?上述腳本文件為了填充keystone數據庫,其中還有些內容根據自身情況修改。
-
?創建一個簡單的憑據文件,這樣稍后不會因為輸入過多的環境變量而感到厭煩。
?
vi creds-adminexport OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=admin_pass export OS_AUTH_URL="http://192.168.100.51:5000/v2.0/"source creds-admin?
-
通過命令列出keystone中添加的用戶以及得到token:
?
2.7.設置Glance
-
安裝Glance
- 更新/etc/glance/glance-api-paste.ini
- 更新/etc/glance/glance-registry-paste.ini
- 更新/etc/glance/glance-api.conf
- 更新/etc/glance/glance-registry.conf
- 重新啟動glance服務:
- 同步glance數據庫
- 測試Glance
- 列出鏡像檢查是否上傳成功:
-
安裝Neutron組件:
-
編輯/etc/neutron/api-paste.ini
-
編輯OVS配置文件/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:
-
編輯/etc/neutron/neutron.conf
- 重啟Neutron所有服務:
- 安裝nova組件:
- 編輯/etc/nova/api-paste.ini修改認證信息:
- 編輯修改/etc/nova/nova.conf
- 同步數據庫:
- 重啟Nova所有服務:
- 檢查所有nova服務是否啟動正常:
- 安裝Cinder軟件包
- 配置iscsi服務:
- 重啟服務:
- 配置/etc/cinder/api-paste.ini
- 編輯/etc/cinder/cinder.conf
- 接下來同步數據庫:
- 最后別忘記創建一個卷組命名為cinder-volumes:
- 創建物理卷和卷組:
- 注意:重啟后卷組不會自動掛載,如下進行設置:
- 重啟cinder服務:
- 確認Cinder服務在運行:
- 安裝horizon:
- 如果你不喜歡OpenStack ubuntu主題,你可以停用它:
- 重啟Apache和memcached服務:
注意:重啟apache2,出現could not reliably determine the server's fully domain name,using 127.0.0.1 for ServerName.這是由于沒有解析出域名導致的。解決方法如下:編輯/etc/apache2/apache2.conf,添加如下操作即可。
ServerName localhost2.12.設置Ceilometer
- 安裝Metering服務
- 安裝MongoDB數據庫
- 配置mongodb監聽所有網絡接口請求:
- 創建ceilometer數據庫用戶:
- 配置Metering服務使用數據庫
- 配置RabbitMQ訪問,編輯/etc/ceilometer/ceilometer.conf
- 編輯/etc/ceilometer/ceilometer.conf使認證信息生效
- 簡單獲取鏡像,你必須配置鏡像服務以發送通知給總線,編輯/etc/glance/glance-api.conf修改[DEFAULT]部分
- 重啟鏡像服務
- 重啟服務,使配置信息生效
- 編輯/etc/cinder/cinder.conf,獲取volume。
- 重啟Cinder服務
3.網絡結點
-
安裝好ubuntu 12.04 Server 64bits后,進入root模式下完成配置:
- 添加Havana源:
-
升級系統:
- apt-get update apt-get upgrade apt-get dist-upgrade
- 安裝ntp服務:
- 配置ntp服務從控制節點上同步時間:
- 配置網絡:
- 編輯/etc/sysctl.conf,開啟路由轉發和關閉包目的過濾,這樣網絡節點能協作VMs的traffic。
#運行下面命令,使生效
sysctl -p
3.3.安裝OpenVSwitch
- 安裝OpenVSwitch軟件包:
- 創建網橋
- 把網卡eth2加入br-ex:
- 重新修改網卡配置/etc/network/interfaces:
- 重啟網絡服務:
- 查看網橋配置:
3.4.Neutron-*
- 安裝Neutron組件:
- 編輯/etc/neutron/api-paste.ini
- 編輯OVS配置文件:/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
- 更新/etc/neutron/metadata_agent.ini:
- 編輯/etc/neutron/neutron.conf
- 編輯/etc/neutron/l3_agent.ini:
- 編輯/etc/neutron/dhcp_agent.ini:
- 重啟服務:
?
4.計算結點
4.1.準備結點
- 安裝好ubuntu 12.04 Server 64bits后,進入root模式進行安裝:
- 添加Havana源:
- 升級系統:
- 安裝ntp服務:
- 配置ntp服務從控制節點同步時間:
service ntp restart
4.2.配置網絡
- 如下配置網絡/etc/network/interfaces:
- 開啟路由轉發:
4.3.KVM
- 確保你的硬件啟動virtualization:
- 安裝kvm并配置它:
- 在/etc/libvirt/qemu.conf配置文件中啟用cgroup_device_aci數組:
- 刪除默認的虛擬網橋:
- 更新/etc/libvirt/libvirtd.conf配置文件:
- 編輯libvirtd_opts變量在/etc/init/libvirt-bin.conf配置文件中:
- 編輯/etc/default/libvirt-bin文件:
- 重啟libvirt服務使配置生效:
4.4.OpenVSwitch
- 安裝OpenVSwitch軟件包:
- 創建網橋:
4.5.Neutron
- 安裝Neutron OpenVSwitch代理:
- 編輯OVS配置文件/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:
- 編輯/etc/neutron/neutron.conf
- 重啟服務:
4.6.Nova
- 安裝nova組件:
- 注意:如果你的宿主機不支持kvm虛擬化,可把nova-compute-kvm換成nova-compute-qemu
- 同時/etc/nova/nova-compute.conf配置文件中的libvirt_type=qemu
- 在/etc/nova/api-paste.ini配置文件中修改認證信息:
- 編輯修改/etc/nova/nova.conf
- 重啟nova-*服務:
- 檢查所有nova服務是否正常啟動:
4.7. 為監控服務安裝計算代理
- 安裝監控服務:
- 配置修改/etc/nova/nova.conf:
- 重啟服務:
?
5.創建第一VM
5.1.為admin租戶創建內網、外網、路由器和虛擬機
- 設置環境變量:
- 列出已創建的用戶和租戶:
# keystone tenant-list
+----------------------------------+--------------------+---------+
| id | name | enabled |
+----------------------------------+--------------------+---------+
| 4cb714b719204285acc7ecea40c33ca8 | admin | True |
| eb8c703bee4549feb2c9c551013296d5 | demo | True |
| 1e78ea73b9d741a7bcde1eaf6a6b5555 | invisible_to_admin | True |
| 16542d36818f480d94554438c1fc0761 | service | True |
+----------------------------------+--------------------+---------+
- 為admin租戶創建網絡:
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 04d2e397-ceae-43df-b4e9-63e8ea12ddfa |
| name | net_admin |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+---------------------------+--------------------------------------+
- 為admin租戶創建子網:
# neutron subnet-create --tenant-id 4cb714b719204285acc7ecea40c33ca8 net_admin 50.50.1.0/24
Created a new subnet:
+------------------+----------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------+
| allocation_pools | {"start": "50.50.1.2", "end": "50.50.1.254"} |
| cidr | 50.50.1.0/24 |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 50.50.1.1 |
| host_routes | |
| id | 13be7adc-5837-4462-8887-d20548f6283f |
| ip_version | 4 |
| name | |
| network_id | 04d2e397-ceae-43df-b4e9-63e8ea12ddfa |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+------------------+----------------------------------------------+
- 為admin租戶創建路由器:
# neutron router-create --tenant-id 4cb714b719204285acc7ecea40c33ca8 router_admin
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 04f207ec-6d4b-49e7-8614-b69eee12feb8 |
| name | router_admin |
| status | ACTIVE |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+-----------------------+--------------------------------------+
- 列出路由代理類型:
# neutron agent-list
+--------------------------------------+--------------------+---------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+---------+-------+----------------+
| 18c4a977-f9b3-4a36-bcb5-a7d92346522c | DHCP agent | network | :-) | True |
| 70e2b440-49d2-4860-9888-401dd7f6102b | Open vSwitch agent | network | :-) | True |
| b4b9781d-de82-476f-97f6-560914210f0a | L3 agent | network | :-) | True |
| d1a3c1cb-9383-410d-b84b-a9574ad328ec | Open vSwitch agent | compute | :-) | True |
+--------------------------------------+--------------------+---------+-------+----------------+
- 將router_admin設置為L3代理類型:
- 將net_admin子網與router_admin路由關聯:
# neutron router-interface-add 1568ec23-0c79-43d0-8b83-52b0a63cf1df c5ac3b09-829c-48d4-8ac7-f07619479a66
Added interface 6e2533c9-f6a0-4e40-a05c-074b62164995 to router 1568ec23-0c79-43d0-8b83-52b0a63cf1df.
- 創建外網net_external,注意設置--router:external=True:
# neutron net-create net_external --router:external=True --shared
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | bcf6e1cb-dd57-40a8-9b61-a6bc6d0a6696 |
| name | net_external |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 2 |
| router:external | True |
| shared | True |
| status | ACTIVE |
| subnets | |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+---------------------------+--------------------------------------+
- 為net_admin創建子網,注意設置的gateway必須在給到的網段內:
neutron subnet-create --tenant-id 4cb714b719204285acc7ecea40c33ca8 --allocation-pool start=192.168.100.110,end=192.168.100.130 --gateway=192.168.100.1 net_external 192.168.100.0/24 --enable_dhcp=False
Created a new subnet:
+------------------+----------------------------------------------------+
| Field | Value |
+------------------+----------------------------------------------------+
| allocation_pools | {"start": "192.168.100.110", "end": "192.168.100.130"} |
| cidr | 192.168.100.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 192.168.100.1 |
| host_routes | |
| id | d8461e75-e259-43c5-9bdc-68221a6cf111 |
| ip_version | 4 |
| name | |
| network_id | bcf6e1cb-dd57-40a8-9b61-a6bc6d0a6696 |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+------------------+----------------------------------------------------+
- 將net_external與router_admin路由器關聯:
- 創建floating ip:
neutron floatingip-create net_external
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | |
| floating_ip_address | 192.168.100.111 |
| floating_network_id | bcf6e1cb-dd57-40a8-9b61-a6bc6d0a6696 |
| id | 942b66e7-d4a5-4136-8be0-3bf00688a56d |
| port_id | |
| router_id | |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+---------------------+--------------------------------------+
# neutron floatingip-create net_external
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | |
| floating_ip_address | 192.168.100.112 |
| floating_network_id | bcf6e1cb-dd57-40a8-9b61-a6bc6d0a6696 |
| id | e46c9811-59f2-4a0f-a7b0-3c93185dde58 |
| port_id | |
| router_id | |
| tenant_id | 4cb714b719204285acc7ecea40c33ca8 |
+---------------------+--------------------------------------+
?
6.參考文檔:
1.openstack官方文檔:http://docs.openstack.org/havana/install-guide/install/apt/openstack-install-guide-apt-havana.pdf? 目前openstack官方文檔已經做的很好了,如何安裝,配置,寫的都挺不錯的,還有neutron那一節對各種情況的網絡結構列出的很詳細。
2.感謝Bilel Msekni做出的貢獻,https://github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/blob/OVS_MultiNode/OpenStack_Grizzly_Install_Guide.rst
?
原文請參照:http://www.cnblogs.com/awy-blog/p/3447176.html
轉載于:https://www.cnblogs.com/awy-blog/p/3447176.html
總結
以上是生活随笔為你收集整理的Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java排序之直接选择排序
- 下一篇: 成本管理