FreeBSD virtual environment management and repository

About the project

CBSD is a management layer written for the FreeBSD jail(8) subsystem, bhyve and Xen. The project is positioned as a single integrated tool of comprehensive solution for building and deploying virtual environments quickly with pre-defined software sets with minimal configuration.

No extra OS functionality has been exposed yet, and everything that CBSD can do, you could also run manually with tens or hundreds of commands in the CLI using the underlying utilities (Not that you would want to!)

Why…

Q: «Why FreeBSD?:

  • According to the authors of the project, Linux is no longer a member of the common people, it is fully controlled by big commercial organization. while FreeBSD is developed mostly by enthusiasts. Today, Linux - it is a commercial machine for making money - is that it was Microsoft Windows in 90 years. While many Linux users have struggled against the Windows monopoly (CBSD author of one of them). Yes, FreeBSD very far behind in their characteristics in comparing to Linux. Just look at the abundance of such powerfull decisions as the OpenVZ, LXD, Ceph, GlusterFS, OpenNebula, OpenStack, Proxmox, ISPPanel and a dozen others. On FreeBSD nothing like this or it does not work. Therefore, the choice of FreeBSD as a platform for us - it is one of the attempts at least something to try to improve in FreeBSD: Linux is saturated with similar solutions. We all love independence and freedom and FreeBSD today - an independent and free operating system, which is in the hands of ordinary people.
  • Q: «Why CBSD written on sh:

  • Most of the code has been written in sh, since there are no demands for complex logic (details) - CBSD core should be considered as shell-command backend, which is achieved is necessary and in case of problems, any system engineer can always locate and correct the problem in the code. The rest, more complex components CBSD (eg, a Frontend, which implements RestAPI for interfaces) written in a language go, nodejs, php, and is not part of CBSD.

  • Features…

    • support for ZFS feature system: ZFS quotes, ZFS send, ZFS snapshots and so on;
    • lack of binding to ZFS: CBSD works transparently in the UFS, HammerFS or any other FS;
    • quick creation of the deployment of virtual environments from scratch by manifest file;
    • import and export of environments into image;
    • cloning virtual environments (including remote node cloning);
    • cold migration of invironment between nodes;
    • resource limit control (prioritization, quotes);
    • replication and/or backup to remote nodes;
    • distribution of popular environments with a specific set of software and services
    • WEB-interfaces for manage virtual environment
    • Support for shared storage (NFS, GlusterFS);
    • Startup order control;
    • Text user interface (TUI) for manage of virtual environments;
    • Ready to use repository with environment template
    • Puppet support and Puppet CBSD module for mass management;
    • bhyve: support for ZVOL and MD-backend;
    • bhyve: VNC support;
    • bhyve: virtual disc management;
    • bhyve: VALE support: the virtual switch;
    • jail: Full or partia jail data encryption (via GELI);
    • jail: XJails (Xorg in jail);
    • jail: support for no native architectures via qemu user mode (for example jail on arm and mips64 on x86-64 nodes);
    • jail: A ready repository for kernels and world that does not require buildworld/installworld;
    • Catalog can stored on memory disks, in ram or on tmpfs with a RO mounted base;
    • jail: NAT support (pf, ipfw, ipfilter);
    • jail: VIMAGE support;
    • jail: CARP support;
    • jail: RACCT/RCTL support;
    • jail: Per-jail Traffic Accounting;
    • jail: port expose - network port forwarding into jail;
    • jail: Jail Conversion to PXE/ISO/Memstick-image;
    • jail: VNC jail support;

    Goals

    • Provide FreeBSD users easy management for virtual environments
    • Show features of FreeBSD as a Cloud-hosting platform;
    • Environment deployment automation;
    • Creation of  ( your own/personal ) application platform with services on demand (PaaS);
    • Environment (Image) library for rapid provisioning;

    CBSD-related support, talks and usergroup channel

    We are started Telegram channel for discussion about using and CBSD development.

    Please join us in @cbsdofficial

    Support of the CBSD project

    Work on the CBSD Project largely depends on the following factors:

    • The availability of free time outside the daily job (the project is not a commercial): working on CBSD, we sacrifice their time to rest and to communicate with family and friends;
    • On the demand for the project;
    • From the proposals relating to the using part of CBSD or the development and adaptation CBSD components for real / commercial projects;

    If you want to help or make donations to the project, use the button below:

    PayPal: Donate CBSD"

    Via Yandex.Money, RUR:

    Additionally, you can disseminate information about the project or to write an article about how to use. Besides, you can like the project on Github CBSD, by pressing Star. Trifle small, but nice ;-)