My Note

自己理解のためのブログ

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を指定する