返回介绍

puppet-tempest

发布于 2025-02-18 00:20:47 字数 2579 浏览 0 评论 0 收藏 0

本节作者:余兴超
阅读级别:必读
阅读时间: 40 分钟

Tempest 是 Openstack 的集成测试框架,它的实现基于 python 的 unittest2 测试框架和 nose 测试框架。Tempest 通过 Openstack client 发起 API 请求,并且对 API 响应结果进行验证。

先睹为快

我们借助 puppet-openstack_integration 模块的 tempest.pp 来完成 tempest 的部署:

puppet apply -e 'include openstack_integration::tempest'

很快我们就能完成对 tempest 的部署工作。

核心代码讲解

class tempest

在 tempest 类中,和其他 module 不同的一点是关于如何使用源码来安装软件包的技巧。

先说说 ensure_packages ,接受列表或哈希类型的 package 变量并进行安装。以下为使用示例:

  • Array 类型:
    ensure_packages(['ksh','openssl'], {'ensure' => 'present'})
  • Hash 类型:
    ensure_packages({'ksh' => { enure => '20120801-1' } ,  'mypackage' => { source => '/tmp/myrpm-1.0.0.x86_64.rpm', provider => "rpm" }}, {'ensure' => 'present'})

ensure_packages 和 package 的区别

作用都是一样的,只是在遇到有多个软件包需安装的场景时,ensure_packages 使用起来代码更加简洁。

再来看 puppet 如何下载 tempest 源码仓库,这里用到了我们在基础模块章节讲到的 vcsrepo type:

    if $git_clone {
      vcsrepo { $tempest_clone_path:
        ensure   => 'present',
        source   => $tempest_repo_uri,
        revision => $tempest_repo_revision,
        provider => 'git',
        require  => Package['git'],
        user     => $tempest_clone_owner,
      }
      Vcsrepo<||> -> Tempest_config<||>
    }

class tempest 同时支持使用 venv 的方式安装 tempest:

    if $setup_venv {
      # virtualenv will be installed along with tox
      exec { 'setup-venv':
        command => "/usr/bin/virtualenv ${tempest_clone_path}/.venv && ${tempest_clone_path}/.venv/bin/pip install -U -r requirements.txt",
        cwd     => $tempest_clone_path,
        unless  => "/usr/bin/test -d ${tempest_clone_path}/.venv",
        require => [
          Exec['install-tox'],
          Package[$tempest::params::dev_packages],
        ],
      }
      if $git_clone {
        Vcsrepo<||> -> Exec['setup-venv']
      }
    }

下述的代码基本上只是使用 tempest_config 在完成相应服务的配置,就不再展开解释。

小结

在这一节中,我们了解了 ensure_packages 函数的使用,也见到 vcsrepo 是如何实现下载源码仓库的,也看到如何用 Puppet 实现 python 程序的 venv 安装方式。

#

1.部署 tempest 服务,并开启对 sahara,swift 的支持 2.对于当前的 puppet-tempest,你觉得有什么值得改进的地方?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文