From 686f4b35e364b9e6e69b4d70c9c46244261b9034 Mon Sep 17 00:00:00 2001 From: Nathaniel Case Date: Mon, 18 Feb 2019 12:10:54 -0500 Subject: [PATCH] Add enable become plugin patterned after runas (#52496) --- lib/ansible/plugins/become/enable.py | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lib/ansible/plugins/become/enable.py diff --git a/lib/ansible/plugins/become/enable.py b/lib/ansible/plugins/become/enable.py new file mode 100644 index 00000000000..3a2c1d5bdcb --- /dev/null +++ b/lib/ansible/plugins/become/enable.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Copyright: (c) 2018, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +DOCUMENTATION = """ + become: enable + short_description: Switch to elevated permissions on a network device + description: + - This become plugins allows elevated permissions on a remote network device. + author: ansible (@core) + version_added: "2.8" + options: + become_pass: + description: password + ini: + - section: enable_become_plugin + key: password + vars: + - name: ansible_become_password + - name: ansible_become_pass + - name: ansible_enable_pass + env: + - name: ANSIBLE_BECOME_PASS + - name: ANSIBLE_ENABLE_PASS + notes: + - enable is really implemented in the network connection handler and as such can only be used with network connections. + - This plugin ignores the 'become_exe' and 'become_user' settings as it uses an API and not an executable. +""" + +from ansible.plugins.become import BecomeBase + + +class BecomeModule(BecomeBase): + + name = 'enable' + + def build_become_command(self, cmd, shell): + # enable is implemented inside the network connection plugins + return cmd