こちらの記事は Ansible lint Advent Calendar 2022 カレンダー2 12日目の記事になります。
今回はルール partial-become について説明します。
partial-become
partial-become はユーザーを変更して権限を昇格させる時にbecome: true
ディレクティブが記述されているか検証し違反している場合は警告を出力します。
例えば処理を実行するユーザーが変更先のユーザーより強い権限を与えられていればbecome: true
ディレクティブの付与は必要ないように見えます。(例: Ansible を root で実行、処理の途中でapache
にユーザー変更し httpd をリロードする)しかし不必要な混乱を避けるためにbecome
とbecome_user
は同時に利用します。
問題のあるコード
---
- name: Example playbook
hosts: localhost
tasks:
- name: Start the httpd service as the apache user
ansible.builtin.service:
name: httpd
state: started
become_user: apache # <- become:true が記述されていない
修正されたコード
- name: Example playbook
hosts: localhost
tasks:
- name: Start the httpd service as the apache user
ansible.builtin.service:
name: httpd
state: started
become: true # <- become: true を記述する
become_user: apache