【问题标题】:How to run multiple kitchen-ansible role tests如何运行多个厨房角色测试
【发布时间】:2015-12-19 01:27:28
【问题描述】:

我正在使用 kitchen 和 ansible 来测试服务器配置。我能找到的每个示例在与 ansible 角色相同的文件夹中都有一个 .kitchen.yml 文件。我想执行多个测试,但似乎没有内置的方法来执行此操作 - kitchen test 期望在它运行的文件夹中有一个 .kitchen.yml 文件(以及 serverspec ruby​​ 规范文件和包装实际角色的 default.yml 文件)例如

roles
 - role_1
    - tasks
        mail.yml
    - test/integration/default/serverspec/localhost
        role_spec.rb
    default.yml
    .kitchen.yml

我宁愿将用于测试的文件与用于配置服务器的文件分开,为此我为每个角色创建了一个套件,并在套件配置中指定了供应商剧本:

suites:
  - name: role_1
    provisioner:
      playbook: test/integration/role_1/default.yml
  - name: role_2
    provisioner:
      playbook: test/integration/role_2/default.yml

我的 *_spec.rb 文件必须位于名为 test/integration/role_1/serverspec 的文件夹中

这也允许我通过单个 kitchen test 运行多个角色测试,但我不确定这是否是要走的路。如果我有一个包含多个角色的剧本,我看不到如何重用 *_spec.rb 文件。

这是怎么做的?

【问题讨论】:

    标签: ansible test-kitchen


    【解决方案1】:

    【讨论】:

    • 您应该包括链接中的关键部分,并仅将链接用作参考。
    【解决方案2】:

    我对我的 Ansible 角色所做的事情如下。 我在角色的“根”中的 .kitchen.yml 文件:

    ---
    driver:
      name: docker
      provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
    
    provisioner:
      name: ansible_playbook
      ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
      hosts: localhost
      requirements_path: requirements.yml
    
    platforms:
      - name: centos-6.6
    
    verifier:
      ruby_bindir: '/usr/bin' 
    
    suites:
      - name: zabbix-server-mysql
        playbook: zabbix-server-mysql.yml
        provisioner:
            name: ansible_playbook
            playbook: test/integration/zabbix-server-mysql.yml
      - name: zabbix-server-pgsql
        provisioner:
            name: ansible_playbook
            playbook: test/integration/zabbix-server-pgsql.yml
    

    在“测试/集成”目录中,我有以下设置:

    ./zabbix-server-mysql/serverspec/localhost/ansible-zabbix-server_spec.rb
    ./zabbix-server-mysql/serverspec/spec_helper.rb
    ./zabbix-server-mysql.yml
    ./zabbix-server-pgsql/serverspec/localhost/ansible-zabbix-server_spec.rb
    ./zabbix-server-pgsql/serverspec/spec_helper.rb
    ./zabbix-server-pgsql.yml
    

    zabbix-server-pgsql.yml 和 zabbix-server-mysql.yml 文件是调用角色本身的剧本,如下所示:


    - hosts: localhost
      roles:
        - role: geerlingguy.mysql
        - role: ansible-zabbix-server
          zabbix_url: zabbix.example.com
          zabbix_version: 2.4
          database_type: mysql
          database_type_long: mysql
    

    希望对你有所帮助。

    我不知道如何重用 _spec.rb 文件,所以我无法对此给出答案。 (确实想知道答案,所以我会将此页面添加为书签 ;-))

    亲切的问候,

    维尔纳

    【讨论】:

      猜你喜欢
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2020-05-19
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      相关资源
      最近更新 更多