commit 715a4b7e54341ef5f1a6c576dda886051f840100 Author: olevole Date: Sat Sep 21 13:21:31 2019 +0300 Initial diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..4a5aedb --- /dev/null +++ b/contact.html @@ -0,0 +1,80 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + + +
+ +
+

ClonOS

+

FreeBSD based distro for virtual hosting platform and appliance

+
+ +

Our team:

+
+
  • Oleg Ginzburg aka olevole, CBSD/ClonOS developer: https://www.linkedin.com/in/oleg-ginzburg-7bb51317/

  • +
  • Oleg Minin aka move, ClonOS UI/Backend developer

  • + +
  • ( and we believe that this is not the final list )

    +

    Join and help us to make FreeBSD more popular!

    +
  • + +
    +
    + + + + + + diff --git a/download.html b/download.html new file mode 100644 index 0000000..b692f4e --- /dev/null +++ b/download.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +

    ClonOS 19.09-RELEASE highlights:

    +

    +

    (*) - CBSD CLI only

    +
    +

    Source code on GitHub

    + +
    + +
    + +

    Images

    +
    +

    19.09-RELEASE ISO:

    + +
    + +
    + +
    +

    19.09-RELEASE USB MEMSTICK ( dd if=clonos-19.09-release.img of=/dev/daX bs="10240" conv="sync" ):

    + +
    +
    +

    or via rsync: rsync://clonos.tekroutine.com/clonos/

    +
    +
    +

    HTTP Mirrors

    +
    +

    Find the mirror nearest you!

    + +
    +

    RSYNC Mirrors

    +
    +

    Find the mirror nearest you!

    + +
    +
    + + +
    + + + + + + diff --git a/errata.html b/errata.html new file mode 100644 index 0000000..c5a99c4 --- /dev/null +++ b/errata.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + +
    + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +

    Errata, Q&A:

    +
    +

    Q: Where can I find the project source code and/or register issue/bug/idea?

    +

    A: We use GitHub. ClonOS = CBSD Project (as backend) + ClonOS UI

    +

    Use appropriate Issue link.

    +
    +
    + +
    +

    Q: Why the virtual machine from the profile starts so long?

    +

    A: When you first create a virtual machine through a profile, it automatically downloads the ISO from official sites. View the task log to see the status of the task.

    +

    You can pre-warm images via CLI command. For cloud images: +

    +cbsd fetch_iso keepname=0 conv2zvol=1 cloud=1 dstdir=default
    +				
    + For ISO images: +
    +cbsd fetch_iso keepname=0 cloud=0 dstdir=default
    +				
    + Details: fetch_iso +
    +
    +
    +

    Q: Where does the profile fetch ISO images, can it be trusted?

    +

    A: List of official sites and mirrors which is uses by CBSD (and ClonOS) located in a public GitHub account with fixed official CRC sum: cbsd-vmprofiles. +

    This list/repository is maintained/supported by the CBSD community. If you have a GitHub account, perhaps one of these contributors - is You! +

    +
    +
    +

    Q: I do not find many basic functions in ClonOS

    +

    A: Work on the project is focused primarily on covering the entire of CBSD functionality.

    +

    If you are not afraid of the Unix command line, you can always make the settings and operations you need by using CBSD CLI

    +

    Someday we will implement the rest of UI but it may take indefinite time since we are involved in the project in our free time.

    +

    This is not a commercial project, we just love BSD and want to create at least one such project. You can join us in the project or help and support with donations or hosting/development hardware or and mirrors or by using ClonOS in your work (thus creating a stream of error reports ;-)

    +
    +
    +
    + + + + + + diff --git a/images/clonos_graph1.png b/images/clonos_graph1.png new file mode 100644 index 0000000..22829da Binary files /dev/null and b/images/clonos_graph1.png differ diff --git a/images/samson-back.jpg b/images/samson-back.jpg new file mode 100644 index 0000000..fa6d378 Binary files /dev/null and b/images/samson-back.jpg differ diff --git a/img/clonos_alpha1.png b/img/clonos_alpha1.png new file mode 100644 index 0000000..ffb0adf Binary files /dev/null and b/img/clonos_alpha1.png differ diff --git a/img/clonos_alpha2.png b/img/clonos_alpha2.png new file mode 100644 index 0000000..98cac4e Binary files /dev/null and b/img/clonos_alpha2.png differ diff --git a/img/clonos_alpha3.png b/img/clonos_alpha3.png new file mode 100644 index 0000000..fb6f6b5 Binary files /dev/null and b/img/clonos_alpha3.png differ diff --git a/img/clonos_alpha4.png b/img/clonos_alpha4.png new file mode 100644 index 0000000..ba9fd7a Binary files /dev/null and b/img/clonos_alpha4.png differ diff --git a/img/clonos_alpha5.png b/img/clonos_alpha5.png new file mode 100644 index 0000000..76e59ba Binary files /dev/null and b/img/clonos_alpha5.png differ diff --git a/img/clonos_alpha6.png b/img/clonos_alpha6.png new file mode 100644 index 0000000..2782822 Binary files /dev/null and b/img/clonos_alpha6.png differ diff --git a/img/clonos_beta1_dark.png b/img/clonos_beta1_dark.png new file mode 100644 index 0000000..712e8ad Binary files /dev/null and b/img/clonos_beta1_dark.png differ diff --git a/img/clonos_ins1.png b/img/clonos_ins1.png new file mode 100644 index 0000000..228a5e1 Binary files /dev/null and b/img/clonos_ins1.png differ diff --git a/img/clonos_ins2.png b/img/clonos_ins2.png new file mode 100644 index 0000000..9e3c917 Binary files /dev/null and b/img/clonos_ins2.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..df3f51b --- /dev/null +++ b/index.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +
    +

    Current status (2019-01-24): 19.01-RELEASE

    +

    About ClonOS

    +

    ClonOS is a turnkey Open Source platform based on FreeBSD and the CBSD framework. ClonOS offers a complete web UI for easily controlling, deploying and managing FreeBSD jails containers and Bhyve/Xen hyperviser virtual environments.

    +

    ClonOS is currently the only platform available which allow both Xen and Bhyve hypervisor to coexist on the same host. Being a FreeBSD base platform, ClonOS ability to create and manage jails allows you to run FreeBSD applications without losing performance.

    +

    Features:

    +
      +
    • easy management via web UI interface
    • +
    • 9p fs support via CBSD CLI ( bhyve shared folders via virtio-p9)
    • +
    • live Bhyve migration [coming soon, roadmap]
    • +
    • Bhyve management (create, delete VM)
    • +
    • Xen management (create, delete VM) [coming soon, roadmap]
    • +
    • connection to the "physical" guest console via VNC from the browser or directly
    • +
    • Real time system monitoring
    • +
    • access to load statistics through SQLite3 and beanstalkd
    • +
    • support for ZFS features (cloning, snapshots)
    • +
    • import/export of virtual environments
    • +
    • public repository with virtual machine templates
    • +
    • puppet-based helpers for configuring popular services
    • +
    +

    ClonOS is a free open-source FreeBSD-based platform for virtual environments creation and management. In the core:

    + +

    Minimum requirements:

    +
      +
    • CPU: 64-bit (Intel EMT64 or AMD64), support for Intel VT/AMD-V;
    • +
    • At least 2 GB of RAM;
    • +
    • LAN card;
    • +
    • HDD;
    • +
    +

    We like existing (but unfortunately Linux-only) solutions such as Proxmox,Triton (Joyent),OpenStack, OpenNebula, Amazon AWS and we believe that FreeBSD OS is able to give something similar.

    +
    + +
    +

    Very first ClonOS alpha review:

    +
      +
    • +
    +
    +
    +

    Few screenshots at an early stage of development:

    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    + +
    + + + + + + + diff --git a/installation_from_media.html b/installation_from_media.html new file mode 100644 index 0000000..7d1333b --- /dev/null +++ b/installation_from_media.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +
    + +
    +

    ClonOS installation.

    +
      +
    • Download installer image and burn it to DVD, or make a bootable USB drive
    • +
    • Insert installation media into a computer that you want to install ClonOS on.
      + Warning: all data on the hard drive you selected will be erased upon ClonOS installation!
    • +
    • ClonOS uses bsdinstall as installer (you can refer to the corresponding documentation) with two changes: +
        +
      • Missing item with UFS file system on partitioning stage
      • +
      • Additional components: clonos, do not unset it ;-) -->
      • +
      +
    • +
    • Also, make sure that you use the FQDN as a name (please add domain suffix):
      +
    • +
    +
    + +
    +

    ClonOS setup

    +
      +

      Be serious about network configuration, as further work depends on the correct network settings

      +

      If all the steps executed sucessfully, you can start working with ClonOS by typing server IP address in your browser: http://IP

      +

      Default username AND password: admin

      +
    +

    If you have problems with the server network, you can change it using the standard procedure in FreeBSD via /etc/rc.conf file

    +

    Please refer to the relevant documentation: 11.5. Setting Up Network Interface Cards

    +

    If you have problem with CBSD/Nat settings, please use CBSD command to setup nodeip settings and natcfg submenu: cbsd initenv-tui as root

    +

    Keep in mind! The sshd daemon in CBSD running by default on 22222 port, not 22. You can change this via /etc/rc.conf file and apply: service sshd restart

    +
    +
    + + + + diff --git a/installation_on_freebsd.html b/installation_on_freebsd.html new file mode 100644 index 0000000..4dc1509 --- /dev/null +++ b/installation_on_freebsd.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + + +
    +
    + +

    Installation on FreeBSD

    +
    + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +
    + +
    +

    Installing ClonOS/CBSD WEB UI via PKG

    +

    ClonOS in pkg packages

    +

    Daniel Shafer prepared a Jenkins task to build ClonOS pkg package repo (at the moment FreeBSD 12 only)

    +

    To enable repository, just put the following lines in /usr/local/etc/pkg/repos/clonos-pkg.ircdriven.net.conf:

    +
    +ClonOS-pkg.ircdriven.net: {
    +        url: "https://pkg.ircdriven.net/packages/12amd64-clonos/",
    +        mirror_type: "none",
    +        enabled: yes
    +}
    +				
    +

    Update pkg metafile and install it:

    +
    +pkg update -f
    +pkg install clonos
    +
    +
    + +
    +

    Installing ClonOS/CBSD WEB UI on stock FreeBSD

    +

    Install ClonOS and dependencies

    +
      +
    • Update ports tree first: +
      portsnap fetch extract
      +
    • +
    • Install ClonOS dependencies: +
      pkg install -y net/libvncserver security/gnutls databases/sqlite3 shells/bash www/npm \
      +www/nginx sysutils/py-supervisor sysutils/cbsd security/ca_root_nss \
      +www/node security/sudo databases/sqlite3 net/beanstalkd devel/git devel/pkgconf www/nginx \
      +lang/php73 www/php73-session archivers/php73-zip databases/php73-sqlite3 databases/php73-pdo_sqlite \
      +www/php73-opcache devel/php73-json security/php73-hash lang/go
      +						
      +
    • +
    • Checkout ClonOS ports tree: +
      git clone https://github.com/clonos/clonos-ports-wip.git /tmp/clonos-ports
      +
    • +
    • Merge ClonOS port with your ports tree:
    • +
      cp -a /tmp/clonos-ports/* /usr/ports/
      + +
    • Build and install ClonOS
    • +
      env BATCH=no make -C /usr/ports/www/clonos install
      + +
    +

    Follow post-message instruction

    +

    You must merge or copy working configuration files

    +
      +
    • Check for RACCT is enabled on the host, please add: +
      +  kern.racct.enable="1"
      +						
      + into /boot/loader.conf and reboot host +
    • + +
    • If CBSD still not initialized, do it first: +
      env workdir=/usr/jails /usr/local/cbsd/sudoexec/initenv
      +

      more about CBSD initialization: https://www.bsdstore.ru/en/installing_cbsd.html#initenv

      +
    • + +
    • Ensure CBSD is started: +
      +  sysrc cbsdd_enable=YES
      +  service cbsdd status || service cbsdd start
      +						
      +
    • + +
    • Configure and run beanstalkd: +
      +  sysrc beanstalkd_flags="-l 127.0.0.1 -p 11300"
      +  sysrc beanstalkd_enable=YES
      +  service beanstalkd restart
      +						
      +
    • + +
    • Change in /usr/local/etc/php-fpm.conf events mechanism to BSD-specific. + To do this, uncomment and edit the events.mechanism parameter to: +
      +  ..
      +  events.mechanism = kqueue
      +  ..
      +						
      + Or copy: cp /usr/local/etc/php-fpm.conf.clonos.sample /usr/local/etc/php-fpm.conf +
    • + +
    • Uncomment and change in /usr/local/etc/php-fpm.d/www.conf port to Unix socket and + set's correct access permission: +
      +  ..
      +  listen = /tmp/php-fpm.sock
      +  ..
      +  listen.backlog = -1
      +  ..
      +  listen.owner = www
      +  listen.group = www
      +  listen.mode = 0660
      +  ..
      +						
      + Or copy: cp /usr/local/etc/php-fpm.d/www-php-fpm.conf.clonos.sample /usr/local/etc/php-fpm.d/www.conf +
    • + +
    • Add "www" user to "cbsd" group: +
      pw groupmod cbsd -M www
      +
    • + +
    • To execute CBSD commands, let the www user run CBSD through sudo: + edit /usr/local/etc/sudoers.d/10_www: +
      +  Defaults     env_keep += "workdir DIALOG NOCOLOR"
      +  Cmnd_Alias   WEB_CMD = /usr/local/bin/cbsd
      +  www   ALL=(ALL) NOPASSWD:SETENV: WEB_CMD
      +						
      + And make sure the file permissions are safe: +
      +  chown root:wheel /usr/local/etc/sudoers.d/10_www
      +  chmod 0440 /usr/local/etc/sudoers.d/10_www
      +						
      + Or copy: cp /usr/local/etc/sudoers_10_www.clonos.sample /usr/local/etc/sudoers.d/10_www +
    • + +
    • Change /usr/local/etc/supervisord.conf to: +
      +  [unix_http_server]
      +  file=/var/run/supervisor.sock
      +  chmod=0777
      +  chown=nobody:nobody
      +  [supervisorctl]
      +  serverurl=unix:///var/run/supervisor.sock
      +  [supervisord]
      +  logfile=/var/log/supervisor/supervisord.log
      +  pidfile=/var/run/supervisor/supervisord.pid
      +  nodaemon=false
      +  minfds=1024
      +  minprocs=200
      +  umask=022
      +  strip_ansi=false
      +  [rpcinterface:supervisor]
      +  supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
      +  [include]
      +  files=/usr/local/etc/supervisor.d/*.conf
      +						
      + Or copy: cp /usr/local/etc/supervisord.conf.clonos.sample /usr/local/etc/supervisord.conf +
    • + +
    • Make sure /usr/local/etc/supervisor.d/program_wsclonos.conf have correct + path to CBSD workdir. Please check that line "environment=PATH.." in + /usr/local/etc/supervisor.d/program_wsclonos.conf pointed to ~cbsd path + in 'cbsd_workdir': +
      +  environment=PATH=[.skipp..],cbsd_workdir="/usr/jails"
      +                                            ^^^^^^^^^^
      +						
      +
    • + +
    • Change /usr/local/etc/php.ini params:
    • +
      +  ..
      +  memory_limit = 256M
      +  ..
      +  post_max_size = 12G
      +  ..
      +  upload_tmp_dir = /tmp
      +  ..
      +  upload_max_filesize = 16G
      +  ..
      +  opcache.enable=1
      +						
      + Or copy: cp /usr/local/etc/php.ini.clonos.sample /usr/local/etc/php.ini + + +
    • Configure NGINX: make sure/merge this settings into + /usr/local/etc/nginx/nginx.conf: +
      +  user www;
      +  load_module /usr/local/libexec/nginx/ngx_stream_module.so;
      +  events {
      +          use kqueue;
      +  }
      +  http {
      +          include       /usr/local/etc/nginx/mime.types;
      +          default_type  application/octet-stream;
      +          client_max_body_size    1m;
      +          include /usr/local/etc/nginx/sites-enabled/*.conf;
      +  }
      +  stream {
      +          include /usr/local/etc/nginx/conf.stream.d/*.conf;
      +          include /usr/local/etc/nginx/streams-enabled/*;
      +  }
      +						
      + Or copy: cp /usr/local/etc/nginx/nginx.conf.clonos.sample /usr/local/etc/nginx/nginx.conf +
    • + +
    • Enable nginx, php-fpm and supervisord to run at system startup: +
      +  sysrc nginx_enable="YES"
      +  sysrc php_fpm_enable="YES"
      +  sysrc supervisord_enable="YES"
      +						
      +
    • + +
    • Start nginx, php-fpm and supervisord to run at system startup: +
      +  service nginx restart
      +  service php-fpm restart
      +  service supervisord restart
      +						
      +
    • + +
    • Configure CBSD: +
      +  1)
      +    ~cbsd/etc/modules.conf must have:
      +
      +    pkg.d
      +    bsdconf.d
      +    zfsinstall.d
      +    puppet.d
      +    convectix.d
      +    cbsd_queue.d
      +    vncterm.d
      +						
      + Or copy: cp /usr/local/etc/cbsd-modules.conf.clonos.sample ~cbsd/etc/modules.conf +
      +  2) Re-run CBSD initenv to init modules:
      +
      +    cbsd initenv
      +
      +  3) Init web user database:
      +
      +    sh /usr/local/cbsd/modules/forms.d/clonos_database/initforms.sh
      +
      +  4) Configure and run CBSD RACCT stats daemon:
      +
      +    sysrc cbsd_statsd_hoster_enable=YES
      +    sysrc cbsd_statsd_jail_enable=YES
      +    sysrc cbsd_statsd_bhyve_enable=YES
      +    service cbsd-statsd-hoster restart
      +    service cbsd-statsd-jail restart
      +    service cbsd-statsd-bhyve restart
      +						
      +
    • + +
    • Open ClonOS UI in your web browser. +
      +  Default login: 'admin', default password: 'admin'
      +						
      +
    • + +
    • Enjoy the ClonOS !
    • +
    +
    +
    +
    + + + + diff --git a/roadmap.html b/roadmap.html new file mode 100644 index 0000000..719aebf --- /dev/null +++ b/roadmap.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + Free Open-Source Hosting Platform «ClonOS» + + + + + + + + + + + + + + + + + + + + +
    + +
    +

    ClonOS

    +

    FreeBSD based distro for virtual hosting platform and appliance

    +
    + +

    The main roadmap, outlined prospects and the vector of development for ClonOS

    +
    +
    +

    bhyve live migration support

    +

    status: Implemented in CBSD

    +

    wip: add patches for live migration info ClonOS base; implement ClonOS action for cbsd bmigrate

    +
    +
    +
    +

    ClonOS XEN submenu

    +

    status: Implemented in CBSD

    +

    wip: clone 'bhyve'-related code to 'xen' and replace 'b' prefixes for cbsd command with 'x'

    +
    +
    +
    +

    CEPH/GlusterFS support out of the box (provisioning scripts)

    +

    status: not started

    +
    +
    +
    +

    iSCSI support for XEN and bhyve block devices;

    +

    status: not started

    +
    +
    +
    +

    Clustering DRS: automatic balancing (migration) based on CPU and memory loads

    +

    status: collect metrics from RACCT subsystem Implemented

    +

    wip: live migration patches, metrics analysis plugin; generation of recommendations

    +
    +
    +
    +

    Safe automatic updating of nodes in a cluster (node maintenance mode with automatic domain migration);

    +

    status: not started

    +

    wip: live migration patches, maintenance mode (tagging)

    +
    +
    +
    +

    High availability (HA-cluster);

    +

    status: not started

    +

    wip: live migration patches, fencing by IPMI

    +
    +
    +
    +

    Metrics for CPU, Memory, I/O: support for Prometheus/Gragana/Zabbix from the box;

    +

    status: collect metrics from RACCT subsystem Implemented

    +

    wip:

    +
    +
    +
    +

    Stretched virtual L2 network (vxlan, qinq) for mutliple DataCenter;

    +

    status: not started

    +

    wip:

    +
    +
    +
    +

    physical interfaces aggregation;

    +

    status: not started

    +

    wip:

    +
    +
    +
    +

    Roles, Integration with AD. RBAC and SSO;

    +

    status: not started

    +

    wip:

    +
    +
    +
    +

    RestAPI

    +

    status: initial RestAPI support for CBSD started in separated repo

    +

    wip:

    +
    +
    + + + + + +