19
20

More than 5 years have passed since last update.

TravisCIでAnsibleのPlaybookを自動チェックする。

Last updated at Posted at 2014-10-14

概要

ansible-lintとGithub、TravisCIを使って、Githubへのpush毎にPlaybookのチェックを行います。

ansible-lintを使うことでplaybook中の改善ポイントや不適切なモジュールの使い方などをチェックすることが出来ます。
TravisCIは継続インテグレーションを行うことができるサービスで、Githubと連携して、リポジトリへのpush毎にビルドやテストなど処理を実行する事ができます。
今回はansible-lintを実行させてみました。

事前準備

Githubへの保存

  • AnsibleのplaybookをGithubにpushします。

TravisCIの設定

  • TravisCIのアカウントを作成します(Githubアカウントでログインできます。)
  • TravisCIにログインすると自分のリポジトリを確認できるので、lintしたいリポジトリでスライダーをOFF→ONに移動します。

TravisCI設定ファイル(.travis.yml)の書き方。

リポジトリのルートディレクトリに以下のような.travis.ymlを作成してpushします。
この例ではsite.ymlをチェック対象にしています。

travis.yml
language: python
python:
  - "2.7"
install:
  - pip install ansible
before_script:
  - pushd ../
  - git clone https://github.com/willthames/ansible-lint.git
  - export PYTHONPATH=$PYTHONPATH:`pwd`/ansible-lint/lib
  - export PATH=$PATH:`pwd`/ansible-lint/bin
script:
  - popd
  - ansible-lint site.yml # change your playbook name

実行結果の確認

Push後にTravisCIでは.travis.ymlを自動的に読み込んでlintが実行されます。
結果が表示されることを確認します。

例えばunarchiveモジュールを使わずにshellモジュールでtarを実行していると以下の警告が表示されます。

[ANSIBLE0006] tar used in place of unarchive module
/home/travis/build/volanja/ansible-Redmine/roles/redmine/tasks/main.yml:0
Task/Handler: Extract tar.gz

バッジ

playbookのREADME.mdにTravisCIのバッジを貼っておけば、すぐに結果を確認することもできます。
volanja_ansible-Redmine.png

lintで警告が出たところを優先的に修正しておきましょう。

19
20
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
19
20