community.general.run0 become – Systemd’s run0

Note

This become plugin is part of the community.general collection (version 9.1.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.run0.

New in community.general 9.0.0

Synopsis

  • This become plugins allows your remote/login user to execute commands as another user via the run0 utility.

Parameters

Parameter

Comments

become_exe

string

The run0 executable.

Default: "run0"

Configuration:

  • INI entries:

    [privilege_escalation]
    become_exe = run0
    
    [run0_become_plugin]
    executable = run0
    
  • Environment variable: ANSIBLE_BECOME_EXE

  • Environment variable: ANSIBLE_RUN0_EXE

  • Variable: ansible_become_exe

  • Variable: ansible_run0_exe

become_flags

string

Options to pass to run0.

Default: ""

Configuration:

  • INI entries:

    [privilege_escalation]
    become_flags = ""
    
    [run0_become_plugin]
    flags = ""
    
  • Environment variable: ANSIBLE_BECOME_FLAGS

  • Environment variable: ANSIBLE_RUN0_FLAGS

  • Variable: ansible_become_flags

  • Variable: ansible_run0_flags

become_user

string

User you ‘become’ to execute the task.

Default: "root"

Configuration:

  • INI entries:

    [privilege_escalation]
    become_user = root
    
    [run0_become_plugin]
    user = root
    
  • Environment variable: ANSIBLE_BECOME_USER

  • Environment variable: ANSIBLE_RUN0_USER

  • Variable: ansible_become_user

  • Variable: ansible_run0_user

Notes

Note

  • This plugin will only work when a polkit rule is in place.

Examples

# An example polkit rule that allows the user 'ansible' in the 'wheel' group
# to execute commands using run0 without authentication.
/etc/polkit-1/rules.d/60-run0-fast-user-auth.rules: |
  polkit.addRule(function(action, subject) {
    if(action.id == "org.freedesktop.systemd1.manage-units" &&
      subject.isInGroup("wheel") &&
      subject.user == "ansible") {
        return polkit.Result.YES;
    }
  });

Authors

  • Thomas Sjögren (@konstruktoid)

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.