diff options
author | Anil Kumar Muraleedharan <amuraleedhar@lenovo.com> | 2018-08-30 01:32:06 +0530 |
---|---|---|
committer | Nathaniel Case <this.is@nathanielca.se> | 2018-08-29 16:02:06 -0400 |
commit | 4b2495a54ce699e17b6d5b5f4495c818247bc770 (patch) | |
tree | 42d6b1c5e8f5126a72741e2b287e5500b670ee74 /test/integration/targets/cnos_showrun | |
parent | 305ae5442a44dc0bebcfacfcb20d1ca1e40c74d2 (diff) | |
download | ansible-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')
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"} |