LoginSignup
1
0

More than 3 years have passed since last update.

AnsibleのvarsをInSpecに連携

Last updated at Posted at 2019-04-01

AnsibleのvarsをInSpecで使用する例

この例ではvarsをターゲットノードに書き出して、InSpecで利用する。
この場合、インベントリー情報やplaybook vars, set_factsなどにより設定された値も(設定後に書き出す限り)利用可能。

他に、インベントリー情報をコントローラーノード上で入手してInSpecで利用する方法が紹介されていた。
https://qiita.com/ochiba/items/5dcf93bcf423a441b1f8

Playbook

copyモジュールを使用し、varsの内容を対象ノード上のJSONファイル (/tmp/vars.json) に保存

playbook

---
- hosts: all
  vars:
    foo:
      bar: baz
  tasks:

  - name: Dump vars for InSpec
    copy:
      content: "{{ vars | to_nice_json }}"
      dest: /tmp/vars.json

... # 処理本体

ユーザーが設定する特定の範囲のみの連携で良いならば必要に応じて絞り込み。

      content: "{{ foo | to_nice_json }}"

InSpecテスト

InSpecテストの先頭において、InSpec jsonリソースの機能を使用して、リモートノード上のJSONファイルを読み込む

test/integration/default/default_test.rb

vars = json('/tmp/vars.json').params

... # テスト本体

読み込み後、例えば vars['foo'] として {"bar"=>"baz"} を参照できる。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0