ルートでプレイブックを正常に実行できますが、プレイブックを所有しているユーザーでは実行できないのはなぜですか?

ルートでプレイブックを正常に実行できますが、プレイブックを所有しているユーザーでは実行できないのはなぜですか?

プレイブックを実行しようとしていますが、プレイブックの操作の一部はファイアウォールポートを追加することです。これを行う最良の方法は何ですか?私のモジュールで次のエラーが発生しますlineinfile

- name: Ensure specific port configuration in firewalld`
  ansible.builtin.lineinfile:`
    path: /etc/firewalld/zones/drop.xml
    insertbefore: '^<accept/>'
    line: '<port port= "6556" protocol="tcp"/>'
    backrefs: yes
    state: present
    become: yes`

試したこと:ansible.posix.firewalldを試してみましたが、Pythonのバージョンのために動作しませんでした。

答え1

努力する: sudo -u [user] ansible-playbook [playbook name] --ask-become-pass

sudo権限を使用して[user]でansible Playbookを実行し、そのユーザーのパスを要求します。

--askフラグは、_password_file = / path / to / fileになるなど、いくつかの追加オプションを使用してansible.cfgに永続的に追加できます。

Gracefulが述べたように、Playbookの所有者にファイアウォール設定を変更するための正しい権限がない可能性があります。ベストプラクティスは、特定のユーザーにアクセス権を付与するのではなく、sudoを使用してファイアウォールコマンドを実行することです。

関連情報