Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/titom73/ansible-junos-ztp

Sample project that use Ansible to automate setup and management of a ZTP server to provision Junos devices with software and startup configuration.
https://github.com/titom73/ansible-junos-ztp

ansible ansible-roles playbook-ztp ztp ztp-servers

Last synced: 3 months ago
JSON representation

Sample project that use Ansible to automate setup and management of a ZTP server to provision Junos devices with software and startup configuration.

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/titom73/ansible-junos-ztp.svg?branch=master)](https://travis-ci.org/titom73/ansible-junos-ztp)

# Ansible to configure and update ZTP server

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](roles) to configure DHCP server and to deploy configuration files on all remote ZTP servers (FTP).
- (3) **[Examples of ZTP configurations](conf/ztp)** files.
- (4) **Playbook to play with ZTP roles** and update ZTP in a more complex project.

## Info on ZTP server

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

# 1. Ansible project to manage ZTP server

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](hosts.ini).

# 2. Playbooks

Available playbooks are listed below:
- [`playbook-ztp-setup`](playbook-ztp-setup.yml): Setup all softwares on ZTP servers
- [`playbook-ztp-init`](playbook-ztp-init.yml): Init local repository
- [`playbook-junos-conf-generate.yml`](playbook-junos-conf-generate.yml): Playbook to generate default configuration for network devices
- [`playbook-ztp-conf-generate`](playbook-ztp-conf-generate.yml): Create configuration for ZTP and store files on a local basis
- [`playbook-ztp-push-data`](playbook-ztp-push-data.yml): Push configuration generated by `playbook-ztp-conf-generate` to remote ztp servers
- [`playbook-ztp-complete`](`playbook-ztp-complete.yml`): Execute all actions in one playbook

# 3. Variables

All variables are stored in the [vars.yaml and ztp-variables.yaml](group_vars/all/). Description is available in this directory.

# 4. Additional information

More detailled information are available in the [wiki section](https://github.com/titom73/ansible-junos-ztp/wiki) of this repository

# 5. Contributing

Please refer to the file [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.