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}
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
-
lintのルールは以下を参考にする
まとめ
- Ansibleにlintを導入した
- 実際にplaybookを指定して、lintを実行した
- 必要に応じて、除外するlintを指定する