2

私はキッチンを使用しており、サーバー構成をテストするために ansible を使用しています。私が見つけることができるすべての例では.kitchen.yml、ansible ロールと同じフォルダーにファイルがあります。複数のテストを実行したいのですが、これを行うための組み込みの方法はないようです-それが実行されるフォルダーに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

これにより、複数の役割のテストを 1 回で実行することもできますkitchen testが、これが正しい方法かどうかはわかりません。複数のロールを持つ Playbook がある場合、 *_spec.rb ファイルを再利用する方法がわかりません。

これはどのように行われるのですか?

4

2 に答える 2

2

これは、最新の busser-ansiblespec で利用できるようになりました。以下を参照してください。

https://github.com/neillturner/busser-ansiblespec

https://github.com/neillturner/ansible_repo

https://github.com/neillturner/kitchen-ansible

于 2015-12-18T17:27:28.160 に答える
1

私が 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

「test/integration」ディレクトリには、次のセットアップがあります。

./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 ファイルは、次のようにロール自体を呼び出す Playbook です。


- 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 ファイルを再利用する方法がわからないので、答えられません。(答えが知りたいので、このページをブックマークします;-))

敬具、

ヴェルナー

于 2015-11-14T12:48:28.403 に答える