GithubHelp home page GithubHelp logo

klowner / fuse_pxebootfs Goto Github PK

View Code? Open in Web Editor NEW
20.0 3.0 1.0 76 KB

A FUSE filesystem which serves up dynamically generated pxelinux config files and triggers auto-creation of new AUFS/UnionFS mounts, then shares them via NFS

Python 100.00%

fuse_pxebootfs's Introduction

----------------
.fuse_pxebootfs.
----------------

EXAMPLE USAGE:

The easiest way to explain how this thing works is probably to present
an example setup which you can modify to suit your needs.

See the pxebootfs.cfg and pxelinux.cfg.template files for examples. They are
currently set up to be fully operational with the following assumptions.

 - Your PXE nfsroot is located at /netboot/root
 - Your NFS server will be serving each PXE client from /netboot/node/<NODE>
 - The server will store all client file modifications in /netboot/overlay/<NODE>
 - pxelinux.cfg.template specifies nfsroot=/netboot/node/<NODE>
    note: "<NODE>" is replaced by the hexadecimal representation of the
          PXE client's IP address. eg. 'C0A80102' = '192.168.1.2' when
          tftpd reads the config data from pxebootfs.

          To clarify: *ACTUALLY* put '<NODE>' in the PXE config.
 
 - fuse_pxebootfs probably needs to be run as root, since it needs to
   mount new AUFS filesystems and export them through NFS via exportfs.

 - Mount pxebootfs onto the pxelinux.cfg directory in your tftpd's root. In
   the example configuration file, we use /var/lib/tftpd/pxelinux.cfg

pxebootfs.cfg example
  [PXEBOOTFS]
  pxe_template: /var/lib/tftpd/pxelinux.cfg.template
  node_dir: /netboot/node
  root_dir: /netboot/root
  overlay_dir: /netboot/overlay
  start_fsid: 10000

CONFIGURATION:

 - pxe_template
 example: pxe_template: /var/lib/tftpd/pxelinux.cfg.template
   The filepath to your pxelinux.cfg file. The nfsroot= entry should be
   something like: 
        
        nfsroot=SERVERIP:/netboot/node/<NODE>

   Where /netboot/node is also pointed to by the node_dir config option.

 - node_dir
 example: node_dir: /netboot/node
   This is the directory where new pxe client nodes will be built and
   shared via NFS. This directly needs to be writable by the FUSE filesystem.

 - root_dir
 example: root_dir: /netboot/root
   Path to the root filesystem which will be used as the read-only portion of
   the client's new nfsroot construction. This can be read-only, because client
   writes will be directed to the overlay_dir aufs branch (explained next).

 - overlay_dir
 example: overlay_dir: /netboot/overlay
   New a directory is created in the overlay_dir for each PXE client. All PXE
   client filesystem modifications will be stored in their respesctive overlay
   directories.

 - start_fsid
 example: start_fsid: 10000
   Any big integer, exportfs uses this for the fsid option. The value is
   incremented with each export. 

fuse_pxebootfs's People

Contributors

klowner avatar

Stargazers

椎 avatar Michael Calkins avatar Mr.2donya avatar  avatar  avatar  avatar Nagma Sidrah Khanam avatar micezhao avatar  avatar ThreePrinciple avatar kangyu avatar aihao avatar  avatar Wang Yu avatar  avatar Alek Paunov avatar Kevin Hatfield avatar Jason Brown avatar  avatar Michael Fairchild avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

cloudxtreme

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.