AnsibleにLintを導入する
インストール
$ sudo pip install ansible-lint
./ansible ディレクトリに lintのファイルを作成する
- /home/ubuntu/yhidetoshi-infra/ansible
cat .ansible-lint
parseable: true quiet: false use_default_rules: true skip_list: - ANSIBLE0010 - ANSIBLE0012 - ANSIBLE0016 verbosity: 1
→ skip_list
に 対象外にするLintを定義する
playbookを指定してlintチェックする
$ ansible-lint {something-playbook.yml}
$ cat bastion.yml
- hosts: role_bastion user: ubuntu become_method: sudo gather_facts: yes roles: - ruby - bastion - ssm - nginx - codedeploy # - verifi
# lintを実行してみる
$ ansible-lint bastion.yml
- playbookで指定しているロールのtasksの記述が チェックされる
Examining bastion.yml of type playbook Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/ruby/tasks/main.yml of type tasks Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/bastion/tasks/main.yml of type tasks Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/ssm/tasks/main.yml of type tasks Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/nginx/tasks/main.yml of type tasks Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/nginx/handlers/main.yml of type handlers Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/codedeploy/tasks/main.yml of type tasks Examining /home/ubuntu/yhidetoshi-infra/ansible/roles/codedeploy/handlers/main.yml of type handlers /home/ubuntu/yhidetoshi-infra/ansible/roles/bastion/tasks/main.yml:21: [E201] Trailing whitespace
- lintのルールに違反しているものを修正する
tasks/main.yml:21: [E201] Trailing whitespace
まとめ
- Ansibleにlintを導入した
- 実際にplaybookを指定して、lintを実行した
- 必要に応じて、除外するlintを指定する