Awesome
FortiManager Ansible
Ansible Modules to manage Fortinet FortiManager
Introduction
This repository includes a number of Ansible modules to automate Fortinet FortiManager devices using the JSON-RPC API.
Modules
Here is a brief overview of all modules included in this repository.
- fortimgr_address
- Used to create, update, and delete address objects.
- Returns the existing configuration for the address object and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_address_group
- Used to create, update, and delete address group objects.
- Returns the existing configuration for the address group and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_address_map
- Used to create, update, and delete an address object's device mapping configuration.
- Returns the existing configuration for the address object and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_ip_pool
- Used to create, update, and delete ip pools.
- Returns the existing configuration for the ip pool and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_ip_pool_map
- Used to create, update, and delete an ip pool's device mapping configuration.
- Returns the existing configuration for the ip pool and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_policy
- Used to create, update, and delete policy entries.
- Returns the existing configuration for the policy entry and the configuration sent to the FortiManager API.
- The API call sent to move the policy entry is returned when the policy is not in the location specefied by the optional policy placement params.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_route
- Used to create, update, and delete routes on devices managed by FortiManager.
- Returns the existing configuration for the route and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_service
- Used to create, update, and delete service objects.
- Returns the existing configuration for the service object and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_service_group
- Used to create, update, and delete service group objects.
- Returns the existing configuration for the service group and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_vip
- Used to create, update, and delete VIPs.
- Returns the existing configuration for the VIP and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_vip_group
- Used to create, update, and delete VIP group objects.
- Returns the existing configuration for the VIP group and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_vip_map
- Used to create, update, and delete a VIP's device mapping configuration.
- Returns the existing configuration for the VIP and the configuration sent to the FortiManager API.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_facts
- Used to gather facts about the FortiManager system and managed devices.
- Returns FortiManger system information, a list of managed devices with some basic information about them, and configurations for devices managed by the FortiManager.
- fortimgr_install
- Used to install policy packages on the FortiManager to the managed devices.
- Returns the results from the install request.
- fortimgr_lock
- Used to lock, save, and unlock the FortiManager. This provides an alternative method for handle workspace session locking instead of using each module's lock parameter.
- Returns the session ID when the module is set to lock the configuration.
- Returns the lock, save, and unlock request status.
- fortimgr_revision
- Used to create, delete, or restore ADOM revisions.
- Returns the results from the revision request.
- Lock, Save, and Unlock status are returned when locking the ADOM is set.
- fortimgr_jsonrpc_request
- Used to send generic FortiManager json-rpc API requests
- Returns the json-rpc response
- Returns the request status
Installation
You need to perform two steps to start using these modules.
- Ensure this repository is in your Ansible module search path.
- Install Dependencies.
Locate your search path
Here is how you can locate your search path:
$ ansible --version
ansible 2.1.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = ???
If you already have a search path configured, clone the repo (see options below) while you are in your search path.
If you have a "default" or No search path shown, open the config file that is shown in the output above, here that is /etc/ansible/ansible.cfg
. In that file, you'll see these first few lines:
[defaults]
# some basic default values...
inventory = /etc/ansible/hosts
library = /home/ntc/projects/
Add a path for library
that exists in this repository - this will become your search path. Validate it with ansible --version
after you make the change.
Clone the repo in your search path
$ git clone https://github.com/networktocode/fortimanager-ansible
As a quick test and sanity use ansible-doc
on one of the modules before trying to use them in a playbook. For example, try this:
$ ansible-doc fortimgr_facts
If that works, Ansible can find the modules and you can proceed to installing the dependencies below.
Install Dependencies
$ cd fortimgr-ansible
$ pip install -r requirements.txt
Full Module Documentation
The following docs are the same type of docs you'd find on docs.ansible.com for modules that are found in Ansible core:
Examples
See Examples