OpenNebula Frontend is a web interface to manage an OpenNebula deployment. It is provided by the opennebula-sunstone service and can be installed and configured on Ubuntu or Debian using apt.

Steps to install OpenNebula Frontend (Sunstone) on Ubuntu or Debian:

  1. Add apt key for official OpenNebula repository.

    $ wget -q -O- https://downloads.opennebula.org/repo/repo.key | sudo apt-key add - OK

  2. Add OpenNebula repository to apt.

    $ echo "deb https://downloads.opennebula.org/repo/5.8/Ubuntu/$(grep DISTRIB_RELEASE /etc/lsb-release | sed s/^.*=//g) stable opennebula" | sudo tee /etc/apt/sources.list.d/opennebula.list deb https://downloads.opennebula.org/repo/5.8/Ubuntu/18.10 stable opennebula

    Use the latest version when possible. Versions list are available here:
    https://downloads.opennebula.org/repo/

  3. Update package information for apt.

    $ sudo apt update Hit:1 http://archive.ubuntu.com/ubuntu cosmic InRelease Ign:2 https://downloads.opennebula.org/repo/5.8/Ubuntu/18.10 stable InRelease Get:3 http://archive.ubuntu.com/ubuntu cosmic-updates InRelease [88.7 kB] Get:4 https://downloads.opennebula.org/repo/5.8/Ubuntu/18.10 stable Release [1,757 B] Get:5 https://downloads.opennebula.org/repo/5.8/Ubuntu/18.10 stable Release.gpg [490 B] Get:6 http://archive.ubuntu.com/ubuntu cosmic-backports InRelease [74.6 kB] Get:7 http://archive.ubuntu.com/ubuntu cosmic-security InRelease [88.7 kB] Get:8 https://downloads.opennebula.org/repo/5.8/Ubuntu/18.10 stable/opennebula amd64 Packages [3,378 B] Fetched 258 kB in 4s (67.3 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done All packages are up to date.

  4. Install opennebula-sunstone and other required packages.

    $ sudo apt install --assume-yes opennebula opennebula-sunstone opennebula-gate opennebula-flow Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:   apg cracklib-runtime fonts-lato genisoimage ibverbs-providers iputils-arping javascript-common libaio1 libblas3 libcrack2 libgfortran5 libibverbs1 libiscsi7 libjs-jquery liblapack3   libmysqlclient20 libnl-route-3-200 libnspr4 libnss3 libpq5 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libquadmath0 librados2 librbd1 libruby2.5   mysql-common opennebula-common opennebula-tools python python-minimal python-numpy python2 python2-minimal python2.7 python2.7-minimal qemu-block-extra qemu-utils rake ruby   ruby-amazon-ec2 ruby-blankslate ruby-builder ruby-did-you-mean ruby-eventmachine ruby-json ruby-minitest ruby-mysql2 ruby-net-telnet ruby-nokogiri ruby-opennebula ruby-parse-cron   ruby-password ruby-pg ruby-pkg-config ruby-power-assert ruby-sequel ruby-sequel-pg ruby-sqlite3 ruby-termios ruby-test-unit ruby-uuidtools ruby-xml-simple ruby-xmlrpc ruby2.5   rubygems-integration sharutils sqlite3 unzip wamerican zip Suggested packages:   wodim cdrkit-doc apache2 | lighttpd | httpd mysql-server python-doc python-tk gcc gfortran python-dev python-nose python-numpy-dbg python-numpy-doc python2-doc python2.7-doc binutils   binfmt-support debootstrap ri ruby-dev ruby-builder-doc doc-base bundler sharutils-doc bsd-mailx | mailx sqlite3-doc The following NEW packages will be installed:   apg cracklib-runtime fonts-lato genisoimage ibverbs-providers iputils-arping javascript-common libaio1 libblas3 libcrack2 libgfortran5 libibverbs1 libiscsi7 libjs-jquery liblapack3   libmysqlclient20 libnl-route-3-200 libnspr4 libnss3 libpq5 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libquadmath0 librados2 librbd1 libruby2.5   mysql-common opennebula opennebula-common opennebula-flow opennebula-gate opennebula-sunstone opennebula-tools python python-minimal python-numpy python2 python2-minimal python2.7   python2.7-minimal qemu-block-extra qemu-utils rake ruby ruby-amazon-ec2 ruby-blankslate ruby-builder ruby-did-you-mean ruby-eventmachine ruby-json ruby-minitest ruby-mysql2   ruby-net-telnet ruby-nokogiri ruby-opennebula ruby-parse-cron ruby-password ruby-pg ruby-pkg-config ruby-power-assert ruby-sequel ruby-sequel-pg ruby-sqlite3 ruby-termios ruby-test-unit   ruby-uuidtools ruby-xml-simple ruby-xmlrpc ruby2.5 rubygems-integration sharutils sqlite3 unzip wamerican zip 0 upgraded, 77 newly installed, 0 to remove and 0 not upgraded. Need to get 53.3 MB of archives. After this operation, 281 MB of additional disk space will be used. ##### snipped

  5. Install required Ruby gems.

    $ sudo /usr/share/one/install_gems [sudo] password for user: Fetching: bundler-2.0.1.gem (100%) Successfully installed bundler-2.0.1 Parsing documentation for bundler-2.0.1 Installing ri documentation for bundler-2.0.1 Done installing documentation for bundler after 4 seconds 1 gem installed Distribution "debian" detected. About to install these dependencies: * gcc * rake * libxml2-dev * libxslt1-dev * patch * g++ * libsqlite3-dev * libcurl4-openssl-dev * default-libmysqlclient-dev * ruby-dev * make  Press enter to continue... ##### snipped

  6. Configure firewall to allow access to required ports.
    1. Enable access to OpenNebula's Sunstone web interface.

      $ sudo ufw allow proto tcp from any to any port 9869 Rules updated Rules updated (v6)

  7. Configure credential for Sunstone user.

    $ sudo oneuser passwd oneadmin mypassword

    oneadmin is the username and mypassword is the password. Set the password accordingly.

  8. Start opennebula and opennebula-sunstone service.

    $ sudo systemctl start opennebula opennebula-sunstone

  9. Configure opennebula and opennebula-sunstone service to automatically start during system boot.

    $ sudo systemctl enable opennebula opennebula-sunstone Created symlink /etc/systemd/system/multi-user.target.wants/opennebula.service → /lib/systemd/system/opennebula.service. Created symlink /etc/systemd/system/multi-user.target.wants/opennebula-sunstone.service → /lib/systemd/system/opennebula-sunstone.service.

  10. Access OpenNebula Frontend from browser.
    1. Go to port 9869 of the OpenNebula Frontend server in the following format.

      http://<ip-address-of-frontend>:9869

    2. Log in using the previously configured credential for oneadmin.
    3. Start managing your OpenNebula deployment from the web interface.