开发者快速入门¶
这是一个快速入门指南,帮助你开始为 Networking-generic-switch 开发代码。这假定你已经熟悉向 OpenStack 项目提交代码审查。
使用 DevStack 部署 Networking-generic-switch¶
DevStack 可以配置为部署 Networking-generic-switch,并设置 Neutron 使用 Networking-generic-switch ML2 驱动程序。强烈建议在可丢弃的虚拟机上部署,而不是在你的个人工作站上。使用 DevStack 部署 Networking-generic-switch 需要一台运行 Ubuntu 14.04(或更高版本)或 Fedora 20(或更高版本)的机器。
DevStack 将不再创建具有所需权限的 ‘stack’ 用户,但提供了一个执行此任务的脚本
git clone https://github.com/openstack-dev/devstack.git devstack
sudo ./devstack/tools/create-stack-user.sh
切换到 stack 用户并克隆 DevStack
sudo su - stack
git clone https://github.com/openstack-dev/devstack.git devstack
创建 devstack/local.conf,其中包含启用 Networking-generic-switch 所需的最小设置。以下是 local.conf 的一个示例
[[local|localrc]] # Set credentials ADMIN_PASSWORD=secrete DATABASE_PASSWORD=secrete RABBIT_PASSWORD=secrete SERVICE_PASSWORD=secrete SERVICE_TOKEN=secrete # Enable minimal required services ENABLED_SERVICES="dstat,mysql,rabbit,key,q-svc,q-agt,q-dhcp" # Enable networking-generic-switch plugin enable_plugin networking-generic-switch https://review.openstack.org/openstack/networking-generic-switch # Configure Neutron OVS_PHYSICAL_BRIDGE=brbm PHYSICAL_NETWORK=mynetwork Q_PLUGIN=ml2 ENABLE_TENANT_VLANS=True Q_ML2_TENANT_NETWORK_TYPE=vlan TENANT_VLAN_RANGE=100:150 # Configure logging LOGFILE=$HOME/devstack.log LOGDIR=$HOME/logs
运行 stack.sh
./stack.sh
获取凭据
source ~/devstack/openrc admin admin
使用 OVS 测试¶
从 networking-generic-switch 启动 exercise.sh。此脚本在 Neutron 中创建端口/使用 local_link_information 更新它,并验证 ovs 端口是否已分配给正确的 VLAN
bash ~/networking-generic-switch/devstack/exercise.sh
使用真实硬件测试¶
将硬件交换机信息添加到 Networking-generic-switch 配置文件 /etc/neutron/plugins/ml2/ml2_conf_genericswitch.ini 并重启 Neutron 服务器
[genericswitch:cisco_switch_1] device_type = netmiko_cisco_ios ip = 1.2.3.4 username = cisco password = cisco secret = enable_password
获取交换机端口的当前配置,例如对于 Cisco IOS 设备
sh running-config int gig 0/12 Building configuration... Current configuration : 283 bytes ! interface GigabitEthernet0/12 switchport mode access end
运行 exercise.py 以创建/更新 Neutron 端口。它将打印要分配的 VLAN ID
$ neutron net-create test $ python ~/networking-generic-switch/devstack/exercise.py --switch_name cisco_switch_1 --port Gig0/12 --switch_id=06:58:1f:e7:b4:44 --network test 126
验证交换机端口上的 VLAN 是否已更改,例如对于 Cisco IOS 设备
sh running-config int gig 0/12 Building configuration... Current configuration : 311 bytes ! interface GigabitEthernet0/12 switchport access vlan 126 switchport mode access end