No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
alpha
debian
extra
lib
spec
.dockerignore
.gitignore
.hound.yml
.jshintrc
.travis.yml
Dockerfile
HWIMO-BUILD
HWIMO-TEST
LICENSE
README.md
dhcpd.conf
gruntfile.js
index.js
npm-shrinkwrap.json
package.json
version

README.md

on-dhcp-proxy Build Status Code Climate Coverage Status

on-dhcp-proxy provides a DHCP proxy service for enabling the RackHD PXE workflow engine to operate with an existing DHCP server.

Copyright 2015, EMC, Inc.

Setup

To run on-dhcp-proxy as a standalone service, it requires isc-dhcp-server to be running in the background.

To install isc, run sudo apt-get install isc-dhcp-server, or on OSX, brew install isc-dhcp

NOTE: You must be running version isc-dhcpd-4.3.1 or greater. You can check with:

sudo dhcpd --version

To configure isc-dhcp-server on linux, add this line to /etc/default/isc-dhcp-server (not necessary on OSX):

INTERFACES=<interface/s you want to serve DHCP on>

Now add these options to dhcpd.conf for our code to work properly with isc-dhcp (NOTE: this must be above your subnet declaration):

ignore-client-uids true;
deny duplicates;

Then add your subnet configurations to /etc/dhcp/dhcpd.conf on linux, or /etc/dhcpd.conf on OSX.

subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.2 10.1.1.254;
  # Use this option to signal to the PXE client that we are doing proxy DHCP
  option vendor-class-identifier "PXEClient";
}

For an example configuration file, see dhcpd.conf in this directory.

To run isc-dhcp-server:

$ sudo dhcpd

To stop isc-dhcp-server:

$ sudo killall dhcpd

Lease information is stored in /var/lib/dhcp/dhcpd.leases on linux, and /var/db/dhcpd.leases on OSX.

CI/testing

The unit tests can be run with standard node tools:

npm test

./HWIMO-TEST will run local tests, and was built for running on a jenkins build slave, and will run the tests, jshint, and code coverage all together.

Building

Unversioned packages are built automatically from travis-ci and uploaded to bintray.com. Using this repository is detailed in the docs.

Build scripts are placed in the extra/ directory.

  • .travis.yml will call the appropriate scripts in extra/ to build an unversioned package.
  • extra/make-sysdeps.sh can be used to install system level packages in a Ubuntu system.
  • extra/make-cicd.sh will perform all the necessary build steps to generate a version package.

If you want to build your own versioned packages, you can use the Vagrantfile provided in extra/. Simply perform vagrant up and it will run all the necessary steps.

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

RackHD is a Trademark of Dell EMC