使用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
徽章
让我们优先修复Lint警告所指出的部分。