community.general.run0 become – Systemd’s run0

Note

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

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.