This repository is deprecated.
For all Aruba created Ansible content visit ArubaNetworks on Galaxy.
For official AOS-Switch Ansible Collection.
For official Central Ansible Role.
For official WLAN Ansible Role.
For official AOS-CX automation with Ansible guides and workflows visit Aruba's Developer Hub.
All Ansible modules, module installer, and example playbooks for AOS-Switch and WLAN products. For AOS-CX modules please see our AOS-CX Ansible Role in Ansible's Galaxy.
- AOS-Switch and WLAN Ansible modules and files are stored in aruba_module_installer/library.
- Documentation of Switching and WLAN Ansible modules are located in module_documentation/
- Frequently Asked Questions are located in FAQ.md
- AOS-Switch and WLAN Ansible playbook examples are stored in example_playbooks/
The aruba_module_installer.py tool installs all files/directories required by Ansible for AOS-Switch and WLAN integration.
- Linux operating system
- Python 2.7 or 3.5+
- Ansible version 2.5 or later
- For AOS-Switch firmware version 16.08 and above is supported, for AOS-Switch setup instructions see below
Clone this repository onto your Linux machine:
$ git clone https://github.com/aruba/aruba-ansible-modules.git
Enter the cloned directory and execute the python installer:
$ cd aruba-ansible-modules
$ python aruba_module_installer/aruba_module_installer.py
If you receive a permission error, use 'sudo':
$ sudo python aruba_module_installer/aruba_module_installer.py
In order to run these scripts, please complete the steps below:
-
Install Python version 2.7 or 3.5+ on the system.
-
Install Ansible 2.5 or later (refer https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
Enter the cloned directory and pull any updates from the repository:
$ cd aruba-ansible-modules
$ git pull
Run the python installer with the --reinstall
option, remember to use sudo
if you receive a permission error:
$ sudo python aruba_module_installer/aruba_module_installer.py --reinstall
optional arguments:
-h, --help show this help message and exit
-r, --remove remove all files & directories installed by this script.
--reinstall remove all files & directories installed by this script. Then
re-install.
--switch only install files/directories required for AOS-Switch.
Follow the above steps to install the AOS-Switch Ansible modules.
- Assign an IP address to the management interface of your Switch device. Ensure that the IP address is reachable from your Ansible control machine.
- Enable REST on your Switch device with the following commands:
switch(config)# web-management ssl switch(config)# rest-interface
- Modify the IP address in the hosts file example_playbooks/arubaoss/switch_hosts.yml to match the IP of your Switch device.
- Modify the ansible_user and ansible_password in the hosts file example_playbooks/arubaoss/switch_hosts.yml to match the login information of your Switch device.
- To use the SSH/CLI modules
arubaoss_config
andarubaoss_command
, SSH access must be enabled on your AOS-Switch device. It is enabled by default.- If necessary, re-enable SSH access on the device with the following command:
switch(config)# ip ssh
- The control machine's
known_hosts
file must contain the target device's public key.- Alternatively, host key checking by the control machine may be disabled, although this is not recommended.
- To disable host key checking modify the ansible.cfg file (default /etc/ansible/ansible.cfg) to include:
host_key_checking = false
The variables that should be defined in your inventory for your AOS-Switch host are:
ansible_host
: IP address of switch inA.B.C.D
format. For IPv6 hosts use a string and enclose in square brackets E.G.'[2001::1]'
.ansible_user
: Username for switch inplaintext
formatansible_password
: Password for switch inplaintext
formatansible_network_os
: Must always be set toarubaoss
ansible_connection
: Set tolocal
to use REST API modules, and tonetwork_cli
to use SSH/CLI modules- See below for info on using both REST API modules and SSH/CLI modules on a host
To use both REST API and SSH/CLI modules on the same host,
you must create separate plays such
that each play uses either only REST API modules or only SSH/CLI modules.
A play cannot mix and match REST API and SSH/CLI module calls.
In each play, ansible_connection
must possess the appropriate value
according to the modules used.
If the play uses REST API modules, the value should be local
.
If the play uses SSH/CLI modules, the value should be network_cli
.
A recommended approach to successfully using both types of modules for a host is as follows:
- Set the host variables such that Ansible will connect to the host using REST API.
- In the playbook, in each play wherein the SSH/CLI
modules are used, set the
ansible_connection
tonetwork_cli
.
The inventory should look something like this:
all:
hosts:
switch1:
ansible_host: 10.0.0.1
ansible_user: admin
ansible_password: password
ansible_network_os: arubaoss
ansible_connection: local # REST API connection method
and the playbook like this (note how the second play, which uses the SSH/CLI module arubaoss_command
,
sets the ansible_connection
value accordingly):
- hosts: all
tasks:
- name: Create VLAN 200
arubaoss_vlan:
vlan_id: 300
name: "vlan300"
config: "create"
command: config_vlan
- hosts: all
vars:
ansible_connection: network_cli
tasks:
- name: Execute show run on the switch
arubaoss_command:
commands: ['show run']
all:
hosts:
switch1:
ansible_host: 10.0.0.1
ansible_user: admin
ansible_password: password
ansible_network_os: arubaoss
ansible_connection: local # REST API connection method
Follow the above steps to install the Aruba's Ansible modules.
- Install python request module "pip install requests".
- Ensure that the IP address of the Aruba controllers are reachable from your Ansible machine.
- Update variables.yml file with required variables like username, IP address and password.
- Refer to the module_documentation folder for description of module arguments and example playbooks.
If you're interested in contributing please read and follow our contribution documentation.
Apache 2.0