Lenovo doc update (#45483)
* Merge issue * Update cnos_rollback.py * Updating license for the refactored method * Update cnos_rollback.py * Removing the BSD License as suggested by Legal * To add Documentation for ENOS as well as CNOS * Merge issue * Revert "To add Documentation for ENOS as well as CNOS" This reverts commit 80e6e39054be0c3a8f95d16dc39ca9d93baf8c4b. * Adding Docs for ENOS and CNOS * Update cnos.py * Update cnos_rollback.py * Update cnos.py * Update platform_cnos.rst * Update platform_enos.rst * Removed version 2.7 * Removing 2.7
This commit is contained in:
parent
7aaa5da41d
commit
4ec317ceca
4 changed files with 144 additions and 7 deletions
69
docs/docsite/rst/network/user_guide/platform_cnos.rst
Normal file
69
docs/docsite/rst/network/user_guide/platform_cnos.rst
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
.. _cnos_platform_options:
|
||||||
|
|
||||||
|
***************************************
|
||||||
|
CNOS Platform Options
|
||||||
|
***************************************
|
||||||
|
|
||||||
|
CNOS supports Enable Mode (Privilege Escalation). This page offers details on how to use Enable Mode on CNOS in Ansible.
|
||||||
|
|
||||||
|
.. contents:: Topics
|
||||||
|
|
||||||
|
Connections Available
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
|.. | CLI |
|
||||||
|
+===========================+===============================================+
|
||||||
|
| **Protocol** | SSH |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Credentials** | | uses SSH keys / SSH-agent if present |
|
||||||
|
| | | | accepts ``-u myuser -k`` if using password |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| **Indirect Access** | via a bastion (jump host) |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Connection Settings** | | ``ansible_connection: network_cli`` |
|
||||||
|
| | | | |
|
||||||
|
| | | | |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Enable Mode** | | supported - use ``ansible_become: yes`` |
|
||||||
|
| | (Privilege Escalation) | | with ``ansible_become_method: enable`` |
|
||||||
|
| | | | and ``ansible_become_pass:`` |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| **Returned Data Format** | ``stdout[0].`` |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
|
||||||
|
For legacy playbooks, CNOS still supports ``ansible_connection: local``. We recommend modernizing to use ``ansible_connection: network_cli`` as soon as possible.
|
||||||
|
|
||||||
|
Using CLI in Ansible
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Example CLI ``group_vars/cnos.yml``
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
ansible_connection: network_cli
|
||||||
|
ansible_network_os: cnos
|
||||||
|
ansible_user: myuser
|
||||||
|
ansible_ssh_pass: !vault...
|
||||||
|
ansible_become: yes
|
||||||
|
ansible_become_method: enable
|
||||||
|
ansible_become_pass: !vault...
|
||||||
|
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"'
|
||||||
|
|
||||||
|
|
||||||
|
- If you are using SSH keys (including an ssh-agent) you can remove the ``ansible_ssh_pass`` configuration.
|
||||||
|
- If you are accessing your host directly (not through a bastion/jump host) you can remove the ``ansible_ssh_common_args`` configuration.
|
||||||
|
- If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords via environment variables.
|
||||||
|
|
||||||
|
Example CLI Task
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
- name: Retreive CNOS OS version
|
||||||
|
cnos_command:
|
||||||
|
commands: show version
|
||||||
|
when: ansible_network_os == 'cnos'
|
||||||
|
|
||||||
|
.. include:: shared_snippets/SSH_warning.txt
|
69
docs/docsite/rst/network/user_guide/platform_enos.rst
Normal file
69
docs/docsite/rst/network/user_guide/platform_enos.rst
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
.. _enos_platform_options:
|
||||||
|
|
||||||
|
***************************************
|
||||||
|
ENOS Platform Options
|
||||||
|
***************************************
|
||||||
|
|
||||||
|
ENOS supports Enable Mode (Privilege Escalation). This page offers details on how to use Enable Mode on ENOS in Ansible.
|
||||||
|
|
||||||
|
.. contents:: Topics
|
||||||
|
|
||||||
|
Connections Available
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
|.. | CLI |
|
||||||
|
+===========================+===============================================+
|
||||||
|
| **Protocol** | SSH |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Credentials** | | uses SSH keys / SSH-agent if present |
|
||||||
|
| | | | accepts ``-u myuser -k`` if using password |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| **Indirect Access** | via a bastion (jump host) |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Connection Settings** | | ``ansible_connection: network_cli`` |
|
||||||
|
| | | | |
|
||||||
|
| | | | |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| | **Enable Mode** | | supported - use ``ansible_become: yes`` |
|
||||||
|
| | (Privilege Escalation) | | with ``ansible_become_method: enable`` |
|
||||||
|
| | | | and ``ansible_become_pass:`` |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
| **Returned Data Format** | ``stdout[0].`` |
|
||||||
|
+---------------------------+-----------------------------------------------+
|
||||||
|
|
||||||
|
For legacy playbooks, ENOS still supports ``ansible_connection: local``. We recommend modernizing to use ``ansible_connection: network_cli`` as soon as possible.
|
||||||
|
|
||||||
|
Using CLI in Ansible
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Example CLI ``group_vars/enos.yml``
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
ansible_connection: network_cli
|
||||||
|
ansible_network_os: enos
|
||||||
|
ansible_user: myuser
|
||||||
|
ansible_ssh_pass: !vault...
|
||||||
|
ansible_become: yes
|
||||||
|
ansible_become_method: enable
|
||||||
|
ansible_become_pass: !vault...
|
||||||
|
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"'
|
||||||
|
|
||||||
|
|
||||||
|
- If you are using SSH keys (including an ssh-agent) you can remove the ``ansible_ssh_pass`` configuration.
|
||||||
|
- If you are accessing your host directly (not through a bastion/jump host) you can remove the ``ansible_ssh_common_args`` configuration.
|
||||||
|
- If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords via environment variables.
|
||||||
|
|
||||||
|
Example CLI Task
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
- name: Retreive ENOS OS version
|
||||||
|
enos_command:
|
||||||
|
commands: show version
|
||||||
|
when: ansible_network_os == 'enos'
|
||||||
|
|
||||||
|
.. include:: shared_snippets/SSH_warning.txt
|
|
@ -10,6 +10,8 @@ Some Ansible Network platforms support multiple connection types, privilege esca
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:caption: Platform Options
|
:caption: Platform Options
|
||||||
|
|
||||||
|
platform_cnos
|
||||||
|
platform_enos
|
||||||
platform_eos
|
platform_eos
|
||||||
platform_exos
|
platform_exos
|
||||||
platform_ios
|
platform_ios
|
||||||
|
@ -58,6 +60,10 @@ Settings by Platform
|
||||||
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
||||||
| Junos OS* | ``junos`` | in v. >=2.5 | in v. >=2.5 | N/A | in v. >=2.4 |
|
| Junos OS* | ``junos`` | in v. >=2.5 | in v. >=2.5 | N/A | in v. >=2.4 |
|
||||||
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
||||||
|
| Lenovo CNOS | ``cnos`` | in v. >=2.5 | N/A | N/A | in v. >=2.3 |
|
||||||
|
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
||||||
|
| Lenovo ENOS | ``enos`` | in v. >=2.5 | N/A | N/A | in v. >=2.5 |
|
||||||
|
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
||||||
| MikroTik RouterOS | ``routeros`` | in v. >=2.7 | N/A | N/A | N/A |
|
| MikroTik RouterOS | ``routeros`` | in v. >=2.7 | N/A | N/A | N/A |
|
||||||
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
+-------------------+-------------------------+----------------------+----------------------+------------------+------------------+
|
||||||
| Nokia SR OS | ``sros`` | in v. >=2.5 | N/A | N/A | in v. >=2.4 |
|
| Nokia SR OS | ``sros`` | in v. >=2.5 | N/A | N/A | in v. >=2.4 |
|
||||||
|
|
|
@ -1328,10 +1328,6 @@ def interfaceLevel2Config(module, cmd, prompt, answer):
|
||||||
# EOM
|
# EOM
|
||||||
|
|
||||||
|
|
||||||
# Method Method for enter enable mode
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
def enterEnableModeForDevice(enablePassword, timeout, obj):
|
def enterEnableModeForDevice(enablePassword, timeout, obj):
|
||||||
command = "enable\n"
|
command = "enable\n"
|
||||||
pwdPrompt = "password:"
|
pwdPrompt = "password:"
|
||||||
|
@ -1384,9 +1380,6 @@ def enterEnableModeForDevice(enablePassword, timeout, obj):
|
||||||
return retVal
|
return retVal
|
||||||
# EOM
|
# EOM
|
||||||
|
|
||||||
# Method for device response than time delay
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
def waitForDeviceResponse(command, prompt, timeout, obj):
|
def waitForDeviceResponse(command, prompt, timeout, obj):
|
||||||
obj.settimeout(int(timeout))
|
obj.settimeout(int(timeout))
|
||||||
|
|
Loading…
Reference in a new issue