我正在使用kitchen和ansible来测试驱动器服务器配置。我找到的每个示例都在ansible角色所在的文件夹中有一个.kitchen.yml
文件。我想执行多个测试,但似乎没有内置的方法 - kitchen test
期望在其运行的文件夹中有一个.kitchen.yml
文件(以及serverspec ruby) spec文件和包装实际角色的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文件。
这是怎么回事?
答案 0 :(得分:2)
现在可以使用最新的busser-ansiblespec查看:
https://github.com/neillturner/busser-ansiblespec
答案 1 :(得分:1)
我对Ansible角色的处理如下。 我的.kitchen.yml文件位于" root"角色:
---
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文件,因此我无法对该文件给出答案。 (我想知道答案,所以我将此页面加入书签;-))
亲切的问候,
沃纳