GithubHelp home page GithubHelp logo

sergeypopovich-ord / netctl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from serhepopovych/netctl

0.0 0.0 0.0 25 KB

Netctl superproject repository joining all netctl subprojects

License: MIT License

Shell 100.00%

netctl's Introduction

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 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).
                  Uses libusrxml parsed data, depends on reipset and
                  reiptables.
                  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  +-------->+  netconf |
         +-----+-----+           +-----+-----+         +----+-----+
               |                       |                    |
       +-------+-------+               |                    |
       v               |               v                    |
 +-----+-----+         |         +-----+-----+              |
 |   repipe  +<--------o---------+ libreconf |              |
 +-----+-----+         |         +-----+-----+              |
       |               v               v                    |
       |         +-----+-----+   +-----+-----+              |
       |         |   retc    +<--+  reipset  |              |
       |         +-----+-----+   +-----+-----+              |
       |               |               v                    |
       |               |         +-----+-----+              |
       |               |         | reiptables|              |
       |               |         +-----+-----+              |
       |               |               |                    |
       +---------------+---------------+--------------------+
                                       v
                                 +-----+-----+
                                 |  netctl   |
                                 +-----------+

netctl's People

Contributors

serhepopovych avatar

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.