深入理解OpenStack自动化部署
  • 前言
  • 初识PuppetOpenstack
    • 相关约定
    • 术语表
    • PuppetOpenstack项目简介
  • Puppet开发基础
    • 关于Puppet
    • Puppet核心概念
    • 理解Hiera
    • 准备开发测试环境
  • OpenStack基础服务模块
    • puppet-apache模块
    • puppet-memcached模块
    • puppet-sysctl模块
    • puppet-rsync模块
    • puppet-xinetd模块
    • puppet-rabbitmq模块
    • puppet-firewall模块
    • puppet-mysql模块
    • puppet-vcsrepo模块
    • puppet-mongodb模块
    • puppet-ceph
  • Openstack服务模块
    • OpenStack模块代码结构
    • puppet-keystone模块
    • puppet-nova
    • puppet-neutron
    • puppet-glance
    • puppet-horizon
    • puppet-ceilometer
    • puppet-cinder
    • puppet-tempest
    • puppet-heat
    • puppet-swift
    • puppet-trove
    • puppet-sahara
    • puppet-manila
    • puppet-rally
    • puppet-designate
    • puppet-aodh模块
  • PuppetOpenstack公共库和工具类模块
    • puppet-oslo
    • puppet-vswitch模块
    • puppet-openstacklib
    • puppet-openstack-integration
    • puppet-openstack-specs
    • puppet-openstack-cookiebutter
    • puppet-modulesync-configs
    • puppet-openstack_spec_helper
    • puppet-stdlib
    • puppet-openstack_extras
  • 最佳实践
    • 模块管理
    • Hiera
    • 提交规范
    • 正确使用环境
    • 转发层规范
    • 代码风格
    • Standalone vs C\/S 模式
    • Puppet版本的选择
    • Puppet4的新特性和变化
    • Puppet的能与不能
  • 其他部署工具
    • Fuel
    • Kolla
    • TripleO
    • Packstack
    • OSA
    • DevStack
    • 编写一个定制化部署工具
  • 结语
Powered by GitBook
On this page
  • 1.先睹为快
  • 2.代码讲解
  • 2.1 class vswitch
  • 2.2 class vswitch::ovs
  • 自定义资源类型vs_port/vs_bridge/vs_config
  • 3.动手练习

Was this helpful?

  1. PuppetOpenstack公共库和工具类模块

puppet-vswitch模块

Previouspuppet-osloNextpuppet-openstacklib

Last updated 6 years ago

Was this helpful?

Open vSwitch(OVS)是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议。它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议,Open vSwitch支持多种linux 虚拟化技术,包括Xen/XenServer, KVM和irtualBox。

puppet-vswitch项目是由OpenStack社区维护的模块,用于配置和管理Openvswitch。

puppet-vswitch项目地址:

在OVS中,有三个非常重要的基本概念:

  • Bridge: 表示一个以太网交换机,其功能是根据流规则,把从端口收到的数据包转发到一个或多个端口

  • Port: 收发数据包的单元,每个Port都属于一个特定的bridge

  • Interface: 连接到Port的网络接口设备,可以是物理网卡,也可以是虚拟网卡

1.先睹为快

不想看下面大段的代码说明,已经跃跃欲试了?

OK,我们开始吧!

打开虚拟机终端并输入以下命令:

$ puppet apply -e 'class {'vswitch': provider => 'ovs'}'

等待命令执行完成,Puppet完成了Openvswitch安装并启动了ovs服务。

2.代码讲解

2.1 class vswitch

class vswitch的逻辑比较简单,使用include函数声明了"::vswitch::${provider}"。

class vswitch (
  $provider = $vswitch::params::provider
) {
  $cls = "::vswitch::${provider}"
  include $cls
}

2.2 class vswitch::ovs

class vswitch::ovs用于管理Openvswitch的软件包和服务,管理服务的代码如下:

    'Redhat': {
      service { 'openvswitch':
        ensure => true,
        enable => true,
        name   => $::vswitch::params::ovs_service_name,
      }
    }

管理openvswitch软件包的代码如下,指定安装软件的顺序在启动服务之前:

  package { $::vswitch::params::ovs_package_name:
    ensure => $package_ensure,
    before => Service['openvswitch'],
  }

自定义资源类型vs_port/vs_bridge/vs_config

puppet-vswitch模块提供了vs_port和vs_bridge两个自定义资源类型,分别用于管理port和bridge。

例1, 使用vs_bridge创建一个名为br-ex的ovs bridge:

vs_bridge { 'br-ex':
  ensure => present,
}

例2,使用vs_port将端口eth1绑定到br-ex上:

vs_port { 'eth1':
  ensure => present,
  bridge => 'br-ex',
}

例3,使用vs_config添加新配置项到Openvswitch配置文件中:

vs_config { 'parameter_name':
  ensure => present,
  value => "some_value"
}

在vswitch::ovs指定了资源的执行顺序,vs_bridge和vs_port在openvswitch服务之后。

  Service['openvswitch'] -> Vs_port<||>
  Service['openvswitch'] -> Vs_bridge<||>

3.动手练习

  1. 创建一个vs bridge br-tun, 并且把eth1加入到br-tun

https://github.com/openstack/puppet-vswitch
先睹为快
代码讲解
动手练习