Installation Guide

This document outlines the steps required to build the Aeon-ZTPS from the files located in the github repository. The total time required to build the Aeon-ZTPS could take some time (20m -> 1hr), depending on your existing installed tools, and your connection speed to the Internet. You can easily install Aeon-ZTPS into VirtualBox using the provided Vagrant file in the install directory. If you are not using VirtualBox, you can use the Ansible playbook file to perform the installation process on any other Ubuntu 16.04 LTS system.

Install Setup Checklist

☐     Configure IP-addresses for the interfaces
Edit the file install/vars/interfaces.yml and assign values specific to your environment. The default install is eth0 is the Vagrant/NAT interface, and eth1 is connected to the network infrastructure.
../_images/install-interfaces.png

optional
☐     Enable DHCP Service

Edit the file install/vars/dhcp-server.yml and change the DHCPS_enable variable to yes
../_images/install-dhcp-yes.png

Edit the file install/vars/dhcp-server.yml and set the values specific to your operational needs. The DHCP server only supports one NIC interface. By default eth0 is the VirtualBox/NAT interface, and eth1 is the interface intended to be connected to your network equipment.

../_images/install-dhcpd.png

If you want to make any changes to the DHCP server configuration file (template), edit the file install/roles/dhcp-server/templates/dhcpd.conf

Install via Vagrant

The current installation process is designed to install the Aeon-ZTPS into a Vagrant environment using Vagrant and an Ansible playbook.

The process uses a combination of the following tools, and associated versions. This process has been verified using a MacOS running Yosemite and ElCaptain. If you are using a different set of versions, you may run into issues. Note that many of these versions are not the “latest”, even at the time of this writing.

Vagrant
1.8.4 or later — use “vagrant –version” to check You will need the Vagrant “vbguest” pluging installed. To install, use: “vagrant plugin install vagrant-vbguest”
VirtualBox
5.0.24, or later 5.0.x — use “VBoxManage –version” to check. Note: For those running Mac OSX El Capital and needing a VirtualBox update, you may need to disable Apple’s System Integrity Protection, as described here
Ansible
version 2.0 or later — use “ansible –version” to check. Installation instructions are located here.
Edit the install/Vagrantfile file to also assign the eth1 value as part of the Vagrant provision process.
../_images/install-vagrantfile.png

To perform the build and installation into Vagrant, do the following on your host machine:

cd install
vagrant up

Once the VM build is complete, and the VM has been automatically rebooted, you can login to the VM by typing:

vagrant ssh

Login Info

An account with username “admin” and password “admin” is created by default.

Install via Ansible Playbook

If you are not using VirtualBox, you can still use the same Ansible playbook to perform the installation process. You will need to create an Ansible hosts file that contains the IP-address of your target system, or the hostname if the IP-address is a known host via DNS.

For example, if your target host has the IP-address 192.168.59.254, then your host file would look simply like the following:

hosts
 192.168.59.254

Let’s assume that the target host has an account call admin, and this user has sudo rights. You would then do the following to install Aeon-ZTPS on that server:

cd install
echo "192.168.59.265" > hosts
ansible-playbook via-ansible.yml -i hosts -u admin -kK

Configure DHCP Service

AEON-ZTPS includes isc-dhcp-server, and also supports external DHCP servers. An example DHCP configuration is shown below.

/etc/dhcp/dhcpd.conf
 # This is an example DHCP file. Please note that all "192.168.59.XXX" networks
 # must be configured to match your environment.
 # If using an exter

 ddns-update-style none;
 option domain-name-servers {{ DNS server }}, {{ DNS Server }};
 default-lease-time 7200;
 max-lease-time 7200;
 authoritative;

 log-facility local7;

 # The specific settings for Cumulus ONIE process
 option cumulus-provision-url code 239 = text;

 # this default-url *MUST* be in the global area for ONIE to
 # work properly.  Not sure why this is, but it is.

 option default-url = "http://{{ AEON-ZTPS IP }}/images/cumulus/onie-installer";
 option cumulus-provision-url "http://{{ AEON-ZTPS IP }}/downloads/ztp-cumulus.sh";

 class "eos-switch" {
    match if (substring(option vendor-class-identifier, 0, 6) = "Arista");
    option bootfile-name "ztp-eos.sh";
 }

 class "nxos-switch" {
    match if (substring(option vendor-class-identifier, 0, 5) = "Cisco");
    option bootfile-name "ztp-nxos.py";
 }

 # Add subnet scopes here
 subnet 192.168.59.0 netmask 255.255.255.0 {
    range 192.168.59.20 192.168.59.100;
    option tftp-server-name "{{ AEON-ZTPS IP }}";
    option routers 192.168.59.1;
 }

Enable DHCP Service

If you installed Aeon-ZTPS with the DHCP server disabled you can later enable the service. From the Aeon-ZTPS bash prompt you can run the following commands:

sudo systemctl enable isc-dhcp-server
sudo service isc-dhcp-server start