Skip to content

Ansible role to configure DHCP server

License

MIT, BSD-4-Clause licenses found

Licenses found

MIT
LICENSE
BSD-4-Clause
LICENSE.md
Notifications You must be signed in to change notification settings

CSCfi/ansible-role-dhcp_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dhcp_server

This role installs and configures a DHCP server.

Requirements

This role requires Ansible 1.4 or higher and platform requirements are listed in the metadata file.

Role Variables

The variables that can be passed to this role and a brief description about them are as follows. These are all based on the configuration variables of the DHCP server configuration.

# Basic configuration information
dhcp_interfaces: eth0
dhcp_common_domain: example.org
dhcp_common_nameservers: ns1.example.org, ns2.example.org
dhcp_common_default_lease_time: 600
dhcp_common_max_lease_time: 7200
dhcp_common_ddns_update_style: none
dhcp_common_authoritative: true
dhcp_common_log_facility: local7
dhcp_common_options:
- opt66 code 66 = string
dhcp_common_parameters:
- filename "pxelinux.0"

# Subnet configuration
dhcp_subnets:
# Required variables example
- base: 192.168.1.0
  netmask: 255.255.255.0
# Full list of possibilities
- base: 192.168.10.0
  netmask: 255.255.255.0
  range_start: 192.168.10.150
  range_end: 192.168.10.200
  routers: 192.168.10.1
  broadcast_address: 192.168.10.255
  domain_nameservers: 192.168.10.1, 192.168.10.2
  domain_name: example.org
  ntp_servers: pool.ntp.org
  default_lease_time: 3600
  max_lease_time: 7200
  pools:
  - range_start: 192.168.100.10
    range_end: 192.168.100.20
    rule: 'allow members of "foo"'
    parameters:
    - filename "pxelinux.0"
  - range_start: 192.168.110.10
    range_end: 192.168.110.20
    rule: 'deny members of "foo"'
  parameters:
  - filename "pxelinux.0"

# Fixed lease configuration
dhcp_hosts:
- name: local-server
  mac_address: "00:11:22:33:44:55"
  fixed_address: 192.168.10.10
  default_lease_time: 43200
  max_lease_time: 86400
  parameters:
  - filename "pxelinux.0"

# Class configuration
dhcp_classes:
- name: foo
  rule: 'match if substring (option vendor-class-identifier, 0, 4) = "SUNW"'
- name: CiscoSPA
  rule: 'match if (( substring (option vendor-class-identifier,0,13) = "Cisco SPA504G" ) or
         ( substring (option vendor-class-identifier,0,13) = "Cisco SPA303G" ))'
  options:
  - opt: 'opt66 "http://utils.opentech.local/cisco/cisco.php?mac=$MAU"'
  - opt: 'time-offset 21600'

# Shared network configurations
dhcp_shared_networks:
- name: shared-net
  subnets:
  - base: 192.168.100.0
    netmask: 255.255.255.0
    routers: 192.168.10.1
  parameters:
  - filename "pxelinux.0"
  pools:
  - range_start: 192.168.100.10
    range_end: 192.168.100.20
    rule: 'allow members of "foo"'
    parameters:
    - filename "pxelinux.0"
  - range_start: 192.168.110.10
    range_end: 192.168.110.20
    rule: 'deny members of "foo"'

# Custom if else clause
  dhcp_ifelse:
  - condition: 'exists user-class and option user-class = "iPXE"'
    val: 'filename "http://my.web.server/real_boot_script.php";'
    else:
      - val: 'filename "pxeboot.0";'
      - val: 'filename "pxeboot.1";'

Examples

  1. Install DHCP server on interface eth0 with one simple subnet:

    • hosts: all roles:
      • role: dhcp_server dhcp_interfaces: eth0 dhcp_common_domain: example.org dhcp_common_nameservers: ns1.example.org, ns2.example.org dhcp_common_default_lease_time: 600 dhcp_common_max_lease_time: 7200 dhcp_common_ddns_update_style: none dhcp_common_authoritative: true dhcp_common_log_facility: local7 dhcp_subnets:
        • base: 192.168.10.0 netmask: 255.255.255.0 range_start: 192.168.10.150 range_end: 192.168.10.200 routers: 192.168.10.1

Dependencies

None

License

BSD

Author Information

Philippe Dellaert

About

Ansible role to configure DHCP server

Resources

License

MIT, BSD-4-Clause licenses found

Licenses found

MIT
LICENSE
BSD-4-Clause
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published