Skip to content

Netctl superproject repository joining all netctl subprojects

License

Notifications You must be signed in to change notification settings

serhepopovych/netctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Netctl bundle package
=====================

This is an umbrella project to join together all netctl based projects
with only purpose to make deployments on target or automation test
system easy.

Current list of subprojects that are part of this superproject:
---------------------------------------------------------------

  o netctl-base - Base filesystem layout for all netctl projects and
                  install system written in POSIX-compatible shell. Used
                  by every netctl based project.
                  https://github.com/serhepopovych/netctl-base

  o libnctl     - Set of helper libraries written in bash which is used
                  accross the netctl project.
                  https://github.com/serhepopovych/libnctl

  o libreconf   - Additional library used by re* subprojects (e.g.
                  reipset, reiptables and retc). Written in bash and uses
                  libnctl helper routines.
                  https://github.com/serhepopovych/libreconf

  o libusrxml   - XML-like structured data to describe subscriber settings
                  like IPv4 and IPv6 address, network interface, traffic
                  control (tc) policies, etc.
                  https://github.com/serhepopovych/libusrxml

  o netconf     - Network management system. Basically wrapper on top of
                  iproute2 package supporting thousands network 
                  interfaces, routes, etc configurations in simple plain
                  text format that is compatible with iproute2 utilities
                  command line.
                  https://github.com/serhepopovych/netconf

  o redhcp      - Helper to prepare /etc/ethers based on information from
                  XML-like data handled by libusrxml, provide configuration
                  for dnsmasq(8) and ip-unaddr.sh helper
                  https://github.com/serhepopovych/redhcp

  o reipset     - Wrapper binary to manage IP sets used by iptables. Can
                  fetch configuration via rsync (including ssh tunneling),
                  local configuration files in ipset(8) format delta
                  updates.
                  https://github.com/serhepopovych/reipset

  o reiptables  - Wrapper binary to manage iptables/ip6tables firewall.
                  Can load iptables-restore(8) compatible configuration
                  fragments and load rules. Generic rules and conntrack
                  tuning added. Requires specific version of iptables
                  userspace and corresponding kernel space changes.
                  https://github.com/serhepopovych/reiptables

  o retc        - Wrapper binary to manage traffic control facilities (e.g.
                  apply shaper rules using tc-htb(8) and tc-pfifo(8)) based
                  on XML-like data handled by libusrxml
                  https://github.com/serhepopovych/retc

  o repipe      - Helper to communicate with configuration database via
                  HTTP API to fetch subscriber configuration (e.g. shaper)
                  in specific format and convert it to XML-like netctl.
                  https://github.com/serhepopovych/repipe

To install projects system wide you might use following command sequence:
-------------------------------------------------------------------------

  $ cd /tmp
  $ git clone --recursive https://github.com/serhepopovych/netctl
  $ cd netctl
  $ sudo ./deploy.sh -d 'opt'

If everything does fine netctl will be installed to '/opt/netctl' and
system wide configuration files to '/etc' and other locations.
Unprivileged user 'reconfigure' may also be created as part of libreconf
subproject installation process.

If you want to install netctl for further packaging you may want to skip
privileged parts like user creation and ownership changes during install
with option -o as well as specify alternative root location:

  $ ./deploy.sh -r ./packages -d 'opt' -t 'opt' -b '' -o

This will install everything to "packages" subdirectory under current path
specifying path on target system (-t option) after installed from package.

Subproject dependency schema:
-----------------------------

                                +-------------+
                                |  installsh  |
                                +------+------+
                                       |
                                +------+------+
                                | netctl-base |
                                +------+------+
                                       |
                +----------------------+----------------------+
                v                                             v
          +-----+-----+                                 +-----+-----+
          | libusrxml |                                 |  libnctl  |
          +-----+-----+                                 +-----+-----+
                |                                             |
                |                                  +----------+----------+
                |                                  v                     v
                |                            +-----+-----+         +-----+-----+
                |                            | libreconf |         |  netconf  |
                |                            +-----+-----+         +-----+-----+
                |                                  "                     |
                |      +===========================+                     |
                +--+   "                                                 |
                   |   "                                                 |
     +-------------+---------------+------------+----------------+       |
     |             |   "           |            |                |       |
     |   +=========|===+===========|============|===+            |       |
     |   "         |   "           |            |   "            |       |
     v   V         v   V           v            v   V            v       |
 +---+---+---+ +---+---+---+ +-----+-----+  +---+---+---+  +-----+-----+ |
 |   repipe  | |   redhcp  | | reiptables+<-|  reipset  |->+   retc    | |
 +-----+-----+ +-----+-----+ +-----+-----+  +-----+-----+  +-----+-----+ |
       |             |             |              |              |       |
       |             |             |              |              |       |
       |             |             |              |              |       |
       +-------------+-------------+---+----------+--------------+-------+
                                       |
                                       v
                                 +-----+-----+
                                 |  netctl   |
                                 +-----------+

About

Netctl superproject repository joining all netctl subprojects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages