Templates and Hosts file
Let's take a look at the templates folder and the Ansible hosts file.
We'll cover the following
templates
The templates
folder is part of the Ansible framework and is where
Jinja2 dynamic template files are kept. Like all the other folders,
templates
should be structured to scale and organized logically.
In the example, there are three top-level folders: banner
, configurations
, and
documentation
. These folders will have subfolders by platform, such as
ios
or nxos
.
The banner
folder is a simple text file that contains the
standard banner displayed on all devices when a user logs into the CLI.
The configurations
folder contains all the dynamic templates used to
generate device configurations.
The documentation
folder contains the
templates used to generate the Markdown automated documentation. These
templates have a matching YAML file in the tasks folder that includes
the module used to compile the commands:
templates
|
---- banner
|
---- standard_banner.cfg
---- configurations
|
---- ios
|
---- 01_ios_global.j2
…
---- 35_ios_host_interfaces_Custom.j2
---- nxos
|
---- 01_nxos_global.j2
…
---- 18_nxos_host_interface.j2
---- documentation
|
---- ios
|
---- 3k_documentation.j2
---- 4k_documentation.j2
---- 6k_documentation.j2
---- nxos
The hosts
file
The Ansible hosts
file needs to be stored in the root of the repository.
A sample hosts
file can look like this:
[CAMPUS:children]
CAMPUS-CORE
CAMPUS-DIST
CAMPUS-ACCESS
[CAMPUS-CORE]
CORE
[CAMPUS-DIST:children]
CAMPUS-DIST
[CAMPUS-DIST]
DIST01
DIST02
Get hands-on with 1400+ tech skills courses.