summaryrefslogtreecommitdiff
path: root/test/integration/targets/cnos_showrun
diff options
context:
space:
mode:
authorAnil Kumar Muraleedharan <amuraleedhar@lenovo.com>2018-08-30 01:32:06 +0530
committerNathaniel Case <this.is@nathanielca.se>2018-08-29 16:02:06 -0400
commit4b2495a54ce699e17b6d5b5f4495c818247bc770 (patch)
tree42d6b1c5e8f5126a72741e2b287e5500b670ee74 /test/integration/targets/cnos_showrun
parent305ae5442a44dc0bebcfacfcb20d1ca1e40c74d2 (diff)
downloadansible-4b2495a54ce699e17b6d5b5f4495c818247bc770.tar.gz
Lenovo integration test roles 1 (#44559)
* Integration test suit for cnos_facts, cnos_config, cnos_command, enos_facts, enos_config and enos_command. * Update all_facts.yaml * Update invalid_subset.yaml * Update not_hardware.yaml * Adding cnos_backup, cnos_bgp, cnos_conditional_command, cnos_condtional_template, cnos_ethernet, cnos_portchannel, cnos_rollback. * Update README.md * Adding the sample roles for cnos_save, cnos_show_run, cnos_template, cnos_vlag and cnos_vlan
Diffstat (limited to 'test/integration/targets/cnos_showrun')
-rw-r--r--test/integration/targets/cnos_showrun/README.md96
-rw-r--r--test/integration/targets/cnos_showrun/aliases2
-rw-r--r--test/integration/targets/cnos_showrun/cnos_showrun_sample_hosts14
-rw-r--r--test/integration/targets/cnos_showrun/tasks/main.yml6
-rw-r--r--test/integration/targets/cnos_showrun/vars/main.yml3
5 files changed, 121 insertions, 0 deletions
diff --git a/test/integration/targets/cnos_showrun/README.md b/test/integration/targets/cnos_showrun/README.md
new file mode 100644
index 0000000000..c035161e26
--- /dev/null
+++ b/test/integration/targets/cnos_showrun/README.md
@@ -0,0 +1,96 @@
+# Ansible Role: cnos_showrun_sample - Displays Running Configuration inforamtion
+---
+<add role description below>
+
+This role is an example of using the *cnos_showrun.py* Lenovo module in the context of CNOS switch configuration. This module allows you to view the switch information. It executes the **display running-config** CLI command on a switch and returns a file containing all the system information of the target network device.
+
+The results of the operation can be viewed in results directory.
+
+For more details, see [Lenovo modules for Ansible: cnos_showrun](http://systemx.lenovofiles.com/help/index.jsp?topic=%2Fcom.lenovo.switchmgt.ansible.doc%2Fcnos_showrun.html&cp=0_3_1_0_4_0).
+
+
+## Requirements
+---
+<add role requirements information below>
+
+- Ansible version 2.2 or later ([Ansible installation documentation](http://docs.ansible.com/ansible/intro_installation.html))
+- Lenovo switches running CNOS version 10.2.1.0 or later
+- an SSH connection to the Lenovo switch (SSH must be enabled on the network device)
+
+
+## Role Variables
+---
+<add role variables information below>
+
+Available variables are listed below, along with description.
+
+The following are mandatory inventory variables:
+
+Variable | Description
+--- | ---
+`ansible_connection` | Has to be `network_cli`
+`ansible_network_os` | Has to be `cnos`
+`ansible_ssh_user` | Specifies the username used to log into the switch
+`ansible_ssh_pass` | Specifies the password used to log into the switch
+`enablePassword` | Configures the password used to enter Global Configuration command mode on the switch (this is an optional parameter)
+`hostname` | Searches the hosts file at */etc/ansible/hosts* and identifies the IP address of the switch on which the role is going to be applied
+`deviceType` | Specifies the type of device from where the configuration will be backed up (**g8272_cnos** - G8272, **g8296_cnos** - G8296, **g8332_cnos** - G8332, **NE10032** - NE10032, **NE1072T** - NE1072T, **NE1032** - NE1032, **NE1032T** - NE1032T, **NE2572** - NE2572)
+
+
+## Dependencies
+---
+<add dependencies information below>
+
+- username.iptables - Configures the firewall and blocks all ports except those needed for web server and SSH access.
+- username.common - Performs common server configuration.
+- cnos_showrun.py - This modules needs to be present in the *library* directory of the role.
+- cnos.py - This module needs to be present in the PYTHONPATH environment variable set in the Ansible system.
+- /etc/ansible/hosts - You must edit the */etc/ansible/hosts* file with the device information of the switches designated as leaf switches. You may refer to *cnos_showrun_sample_hosts* for a sample configuration.
+
+Ansible keeps track of all network elements that it manages through a hosts file. Before the execution of a playbook, the hosts file must be set up.
+
+Open the */etc/ansible/hosts* file with root privileges. Most of the file is commented out by using **#**. You can also comment out the entries you will be adding by using **#**. You need to copy the content of the hosts file for the role into the */etc/ansible/hosts* file. The hosts file for the role is located in the main directory of the role.
+
+```
+[cnos_showrun_sample]
+10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos
+10.241.107.40 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos
+```
+
+**Note:** You need to change the IP addresses to fit your specific topology. You also need to change the `<username>` and `<password>` to the appropriate values used to log into the specific Lenovo network devices.
+
+
+## Example Playbook
+---
+<add playbook samples below>
+
+To execute an Ansible playbook, use the following command:
+
+```
+ansible-playbook cnos_showrun_sample.yml -vvv
+```
+
+`-vvv` is an optional verbos command that helps identify what is happening during playbook execution. The playbook for each role is located in the main directory of the solution.
+
+```
+ - name: Module to do Show Sys Info
+ hosts: cnos_showrun_sample
+ gather_facts: no
+ connection: local
+ roles:
+ - cnos_showrun_sample
+```
+
+
+## License
+---
+<add license information below>
+Copyright (C) 2017 Lenovo, Inc.
+
+This file is part of Ansible
+
+Ansible is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+Ansible is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with Ansible. If not, see <http://www.gnu.org/licenses/>. \ No newline at end of file
diff --git a/test/integration/targets/cnos_showrun/aliases b/test/integration/targets/cnos_showrun/aliases
new file mode 100644
index 0000000000..be010d923f
--- /dev/null
+++ b/test/integration/targets/cnos_showrun/aliases
@@ -0,0 +1,2 @@
+# No Lenovo Switch simulator yet, so not enabled
+unsupported
diff --git a/test/integration/targets/cnos_showrun/cnos_showrun_sample_hosts b/test/integration/targets/cnos_showrun/cnos_showrun_sample_hosts
new file mode 100644
index 0000000000..b06c4c9567
--- /dev/null
+++ b/test/integration/targets/cnos_showrun/cnos_showrun_sample_hosts
@@ -0,0 +1,14 @@
+# You have to paste this dummy information in /etc/ansible/hosts
+# Notes:
+# - Comments begin with the '#' character
+# - Blank lines are ignored
+# - Groups of hosts are delimited by [header] elements
+# - You can enter hostnames or ip addresses
+# - A hostname/ip can be a member of multiple groups
+#
+# In the /etc/ansible/hosts file u have to enter [cnos_facts_sample] tag
+# Following you should specify IP Adresses details
+# Please change <username> and <password> with appropriate value for your switch.
+
+[cnos_showrun_sample]
+10.241.107.39 ansible_network_os=cnos ansible_ssh_user=<username> ansible_ssh_pass=<password> deviceType=g8272_cnos
diff --git a/test/integration/targets/cnos_showrun/tasks/main.yml b/test/integration/targets/cnos_showrun/tasks/main.yml
new file mode 100644
index 0000000000..b4d94d9ee6
--- /dev/null
+++ b/test/integration/targets/cnos_showrun/tasks/main.yml
@@ -0,0 +1,6 @@
+# This contain sample show rnunning config tasks
+---
+- name: Test Running Configurations
+ cnos_showrun: host={{ inventory_hostname }} username={{ hostvars[inventory_hostname]['ansible_ssh_user']}} password={{ hostvars[inventory_hostname]['ansible_ssh_pass']}} enablePassword='{{item.enablePassword}}' outputfile=./results/cnos_showrun_{{ inventory_hostname }}_output.txt
+ with_items: "{{test_showrun_data}}"
+# Completed file
diff --git a/test/integration/targets/cnos_showrun/vars/main.yml b/test/integration/targets/cnos_showrun/vars/main.yml
new file mode 100644
index 0000000000..892e75c5fb
--- /dev/null
+++ b/test/integration/targets/cnos_showrun/vars/main.yml
@@ -0,0 +1,3 @@
+---
+test_showrun_data:
+ - {enablePassword: "anil"}