Sample project using Ansible to setup and manage ZTP server.
In this project you'll find:
- (1) A role to install all software on the remote server with Playbooks and variables based on Ubuntu/Debian system.
- (2) Severals ansible roles packaged and documented into Ansible roles to configure DHCP server and to deploy configuration files on all remote ZTP servers (FTP).
- (3) Examples of ZTP configurations files.
- (4) Playbook to play with ZTP roles and update ZTP in a more complex project.
A Complete description of Zero Touch Provisionning (ZTP) is available on Juniper.net http://www.juniper.net/techpubs/en_US/junos15.1/topics/concept/software-image-and-configuration-automatic-provisioning-understanding.html
This project is managing the creation of a ZTP server running on a Debian like OS
ISC-DHCP-Server
is used as part of the DHCP server to provide IP address on the management network.VSFTPd
is used to publish device's configuration and software packages.
All devices names, Ip addresses loopback addresses etc .. are defined in the inventory file named hosts.ini.
Available playbooks are listed below:
playbook-ztp-setup
: Setup all softwares on ZTP serversplaybook-ztp-init
: Init local repositoryplaybook-junos-conf-generate.yml
: Playbook to generate default configuration for network devicesplaybook-ztp-conf-generate
: Create configuration for ZTP and store files on a local basisplaybook-ztp-push-data
: Push configuration generated byplaybook-ztp-conf-generate
to remote ztp serversplaybook-ztp-complete
: Execute all actions in one playbook
All variables are stored in the vars.yaml and ztp-variables.yaml. Description is available in this directory.
More detailled information are available in the wiki section of this repository
Please refer to the file CONTRIBUTING.md for contribution guidelines.