wiki:PxeInstallation

Version 24 (modified by martijk, 6 years ago) (diff)

--

Installation

First get the latest stable source of the package from:

Then unpack the package. There are 2 methods to build the package:

  • Debian package
  • Manual installation

Debian package

How to build a debian package:

  • debian/rules binary
  • dpkg -i <packagename>

The debian package determines if inetd or xinetd configuration must be used.

Ansible installation

The administrators of the Niflheim Linux cluster supercomputer at the Technical University of Denmark have written an Ansible role to automatically install and start the pxeconfig service on CentOS/RHEL 7:

Download the role files to your Ansible setup and use this role in your Ansible playbooks by:

- pxeconfigd

Up to date documentation is also available on their wiki.

Manual installation

How to install the package:

  • ./configure (default install directory = /usr/local)
  • make install

How to configure the daemon (pxeconfigd)

To activate the pxeconfigd daemon utility on other platforms use this procedure:

  • edit '/etc/services', eg:
          pxeconfigd      6611/tcp                       # pxe config daemon
    
  • Install the server, the server can ONLY be started from inetd or xinetd:
        a) inetd.conf
          - edit '/etc/inetd.conf', eg:
            pxeconfigd stream  tcp nowait  root.sys /usr/sbin/tcpd \
              /usr/local/sbin/pxeconfigd
    
          - /etc/init.d/inetd reload
    
        b) xinetd
          - cp examples/pxeconfigd.xinetd /etc/xinetd.d/pxeconfigd
          - /etc/init.d/xinetd reload
    

Test the setup

You can test it by:

  • telnet localhost pxeconfigd (or port number)
         output:
           Trying 127.0.0.1...
           Connected to localhost.
           Escape character is '^]'.
           ip = 127.0.0.1, hex = 7F000001
           file = /tftpboot/pxelinux.cfg/7F000001
           Connection closed by foreign host.
    

In syslog a line will be added if the removal is succesful:

      Feb 20 09:32:40 test pxeconfigd: /tftpboot/pxelinux.cfg/7F000001

Configuration

The pxeconfig and pxeconfigd utility can be configured with a configuration file:

  • pxeconfig.conf (usually located in /usr/local/etc or /etc)

The following options are supported:

pxe_config_dir::

Specify which tftpboot directory must be used, default: /tftpboot/pxelinux.cfg

client_script_hook:: ( obsolete >= 4.1.0 )

This option is used by the client program pxeconfig it executes a script before a host link is created with the host ip-address as first argument. We use this to open ports on our firewall to allow the host to use rsync or bittorrent protocol.

client_script_hook_add:: (>= 4.1.0)

This option is used by the client program pxeconfig it executes a script before a host link is created with the host ip-address as first argument. We use this to open ports on our firewall to allow the host to use rsync or bittorrent protocol.

client_script_hook_remove:: (>= 4.1.0)

This option is used by the client program pxeconfig it executes a script before a host link is removed with the host ip-address as first argument. We use this to close ports on our firewall to deny the host to use rsync or bittorrent protocol.

daemon_script_hook::

This option is used by the daemon program pxeconfigd it executes a script before a host link is removed with the host ip-address as first argument. We use this to close ports on our firewall for the specified IP-address/host.

arp_command::

This command must be set if site use the mac address for pxe booting, default: /usr/sbin/arp -n

Host labels

It is difficult to remember mac-addresses. So you can specify a host label with a mac-address in pxeconfig.conf, eg:

[bas]
mac_address: 00:19:b9:de:21:40

Now you can use use bas as name for pxeconfig instead of the mac-address