Skip to content

Instantly share code, notes, and snippets.

@ltupin
Last active June 26, 2021 21:13
Show Gist options
  • Save ltupin/47b6dae0daec161fb3ca362ff1b32d22 to your computer and use it in GitHub Desktop.
Save ltupin/47b6dae0daec161fb3ca362ff1b32d22 to your computer and use it in GitHub Desktop.
multipass launch -m 4G -c 2 -d 20G -n open-nebula 20.04

Prepare packages and repositories

multipass exec open-nebula -- /bin/bash -c "sudo apt update -y && sudo apt upgrade -y"
multipass exec open-nebula -- /bin/bash -c "sudo apt -y install gnupg wget apt-transport-https unzip"
multipass exec open-nebula -- /bin/bash -c "sudo wget -q -O- https://downloads.opennebula.io/repo/repo.key | sudo apt-key add -"
multipass exec open-nebula -- /bin/bash -c "echo 'deb https://downloads.opennebula.io/repo/6.0/Ubuntu/20.04 stable opennebula' | sudo tee -a /etc/apt/sources.list.d/opennebula.list"
multipass exec open-nebula -- /bin/bash -c "sudo apt-get update -y"
multipass exec open-nebula -- /bin/bash -c "sudo apt -y install opennebula opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow opennebula-provision"

Install Ansible

https://docs.opennebula.io/6.0/installation_and_configuration/frontend_installation/install.html#debian-ubuntu

multipass exec open-nebula -- /bin/bash -c "sudo apt -y install pip"
multipass exec open-nebula -- /bin/bash -c "sudo useradd -s /bin/bash -m ansible" #-m create home directory
multipass exec open-nebula -- /bin/bash -c "echo 'ansible     ALL=(ALL) NOPASSWD:ALL' | sudo tee -a /etc/sudoers"
multipass exec -v open-nebula -- /bin/sudo su - ansible -c "echo 'export PATH="$PATH:/home/ansible/.local/bin"' >> /home/ansible/.bash_profile"
multipass exec open-nebula -- /bin/bash -c "sudo chown -R ansible:ansible /home/ansible/"
# multipass exec -v open-nebula -- /bin/sudo su - ansible -c "pip3 install --user ansible 'cryptography<3.4'"
# Requirement already satisfied
multipass exec -v open-nebula -- /bin/sudo su - ansible -c "pip3 install --user 'ansible>=2.8.0,<2.10.0'"
# multipass exec -v open-nebula -- /bin/sudo su - ansible -c "pip3 install --user ansible 'Jinja2>=2.10.0'"
# Requirement already satisfied

Install Terraform

https://docs.opennebula.io/6.0/installation_and_configuration/frontend_installation/install.html#debian-ubuntu

multipass exec open-nebula -- /bin/bash -c "curl https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip --output terraform"
multipass exec open-nebula -- /bin/bash -c "sudo unzip terraform -d /usr/bin/"

Configure firewall

https://docs.opennebula.io/6.0/installation_and_configuration/frontend_installation/install.html#frontend-fw

Port Details
2616 Next-generation GUI server FireEdge
9869 GUI server Sunstone
4124 Monitoring daemon (both TCP/UDP)
2474 OneFlow server
2633 Main OpenNebula Daemon (oned), XML-RPC API endpoint
5030 OneGate server
29876 noVNC Proxy Server
multipass exec open-nebula -- /bin/bash -c "sudo apt-get install -y iptables-persistent"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -i lo -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -o lo -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 2616 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 2616 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 4124 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p udp --dport 4124 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 4124 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p udp --sport 4124 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 9869 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 9869 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 2474 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 2474 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 2633 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 2633 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 5030 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 5030 -m conntrack --ctstate ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A INPUT -p tcp --dport 29876 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT"
multipass exec open-nebula -- /bin/bash -c "sudo iptables -A OUTPUT -p tcp --sport 29876 -m conntrack --ctstate ESTABLISHED -j ACCEPT"

Open-Nebula configuration

multipass exec -v open-nebula -- /bin/sudo su - oneadmin -c "touch /var/lib/one/.one/one_auth"
multipass exec -v open-nebula -- /bin/sudo su - oneadmin -c "echo 'oneadmin:changeme123' > /var/lib/one/.one/one_auth"
multipass exec open-nebula -- /bin/bash -c "sudo systemctl try-restart opennebula opennebula-scheduler opennebula-hem \
    opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow \
    opennebula-guacd opennebula-novnc opennebula-ssh-agent"

Test

multipass info open-nebula | grep IPv4 | awk '{print $2}')
192.168.64.23

http://192.168.64.23:2616/ http://192.168.64.23:9869/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment