使用TravisCI自动检查Ansible的Playbook

简述

使用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に移動します。

如何编写Travis CI配置文件(.travis.yml)。

在存储库的根目录下创建并推送以下类似的.travis.yml文件。在此示例中,我们将site.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操作。确认结果是否显示。例如,如果使用shell模块而不是unarchive模块执行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

徽章

volanja_ansible-Redmine.png

让我们优先修复Lint警告所指出的部分。

广告
将在 10 秒后关闭
bannerAds