1
1
mirror of https://github.com/eblot/pybootd.git synced 2024-09-11 14:06:57 +03:00
pybootd/README.rst

111 lines
2.9 KiB
ReStructuredText
Raw Normal View History

+++++++
PyBootd
+++++++
2011-05-21 02:21:53 +04:00
Overview
~~~~~~~~
2011-05-21 02:21:53 +04:00
PyBootd is a daemon that supports a subset of the BOOTP, DHCP, PXE and TFTP
protocols, with some handy extensions.
2011-05-21 02:22:58 +04:00
One of its main goals is to provide a simple solution to boot up any
2011-05-21 02:21:53 +04:00
PXE-enabled personal computer, without requiring any other tools but a standard
Python installation.
Pybootd can be used for any network boot up, or to install an OS without any
physical support such as a USB key or CD/DVD.
Requirements
~~~~~~~~~~~~
Python
------
2011-05-21 02:21:53 +04:00
- Python_ 2.6 or above is required. Python_ 3.x is not yet supported.
- Netifaces_ Python module
.. _Python: http://python.org/
.. _Netifaces: http://alastairs-place.net/netifaces/
Permissions
-----------
2011-05-21 02:21:53 +04:00
- DHCP protocol requires the daemon to listen on port 67.
- TFTP protocol requires the daemon to listen on port 69.
2011-05-21 02:22:58 +04:00
As these ports are within the server range (<1024), the superuser privileges
2011-05-21 02:21:53 +04:00
are required on Unix hosts (Linux, Mac OS X, ...) to start up these daemons.
Status
~~~~~~
2011-05-21 02:21:53 +04:00
This project is in beta development stage.
Supported features
~~~~~~~~~~~~~~~~~~
2011-05-21 02:21:53 +04:00
- Access control:
1. None (any remote host can be served)
2. MAC address ACL
3. UUID based ACL - requires PXE protocol
2011-05-21 02:22:58 +04:00
4. HTTP forwarding - authorization is delegated to a remote server using
2011-05-21 02:21:53 +04:00
simple HTTP GET requests
- Local or remote file serving:
- For example, it is possible to boot up a full Debian system directly from
the Internet, without storing any file on the pybootd host machine
- Network notification of client requests through UDP messages
- File name translation
2011-05-21 02:22:58 +04:00
- Files requested from TFTP clients can be filtered and transformed into
2011-05-21 02:21:53 +04:00
local filenames using filters
- It is possible to use pybootd with only one of the offered services, either
TFTP or DHCP
FAQ
~~~
Common errors
-------------
``pybootd.pxed.BootpError: Unable to detect network configuration``
This error is often triggered when the ``pool_start`` address is not part of
a valid network. Double check the network configuration and fix up the
``[bootp]`` section so that it match the actual network.
Sample configurations
~~~~~~~~~~~~~~~~~~~~~
Installing a Debian 6.0 machine from the official archive
---------------------------------------------------------
As the TFTP daemon is able to retrieve remote file, using the HTTP protol,
there is no need to manually download any file from a Debian mirror. The TFTP
daemon will forward the file requests to the mirror on behalf of the host being
installed.
The ``pybootd.ini`` would contain
::
[logger]
type = stderr
level = info
[bootp]
allow_simple_dhcp = enable
pool_start = 192.168.10.100
dns = 8.8.8.8
boot_file = pxelinux.0
lease_time = 86400
boot_file = pxelinux.0
[tftp]
root = http://http.us.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot
The ``pool_start`` parameter should be a valid IP address on the machine, and
the ``root`` URL may be changed to use an alternative mirror and path.