CSCF Automated Deployment

An overview of the various technologies at work providing automated deployment of workstations/servers in CSCF.

Basic Architecture

We use PXE boot to serve installation images to our servers and workstations. These installation images used Debian preseed files (preseed.cfg) to automate the Debian installer to various degrees. Finally, we use Salt on our running hosts to manage their configuration after initial Operating System installation.

Services and Hardware

There are currently a three linux container in use providing DHCP and TFTP services to enable PXE boot and installation. They should all be configured identically.

  • bs202.cscf.uwaterloo.ca
  • bs204.cscf.uwaterloo.ca
  • bs206.cscf.uwaterloo.ca

There is currently a single linux container in use providing simple static HTTP service to provide the preseed.cfg files to the running installers.

  • bs202.cscf.uwaterloo.ca

There is currently a single salt instance that manages post installation configuration.

  • salt.cscf.uwaterloo.ca

Adding a new host

The first step to adding a new host to be automatically deployed is creating a correct entry in Inventory. It must have a hostname, domain, mac address and ip address. The scripts that generate the configuration files for the DHCP server will need that information to generate complete entries.

The second step is to create a correct entry in host -> boot_image mapping file in linux.cscf.uwaterloo.ca:/root/pxectl/hosts.py. This file contains a single python dictionary that maps fully qualified domain names to boot images on the TFTP server. At present the valid images are

  • deployment/xenial/pxelinux.0
  • deployment/xenial-sdf/pxelinux.0
  • deployment/manual_partition_xenial/pxelinux.0
  • deployment/xenial-sdc/pxelinux.0

The third step is to run the script linux.cscf.uwaterloo.ca:/root/pxectl/push.sh. This queries inventory and uses the hosts.py file to generate new dhcpd.conf files and deploy them to the three DHCP servers.

The fourth step is to PXE boost the host in question, while ensuring it is plugged into a properly configured network port and is on a network configured to allow/forward DHCP/TFTP traffic to our servers. At present the set of subnets configured thusly includes but is not limited to the following:

  • 172.19.50.192/26
  • 129.97.34.0/26
  • 10.15.152.0/22
  • 129.97.167.0/26
  • 129.97.173.64/26
  • 129.97.173.128/26
  • 172.19.50.64/26

-- AnthonyBrennan - 2016-11-21

Topic revision: r1 - 2016-11-21 - AnthonyBrennan
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback