From de0c08f03b237c1744f27dabfa5d4fd05ebe7cdb Mon Sep 17 00:00:00 2001 From: Reisber Date: Sun, 22 Mar 2026 21:50:37 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BA=D0=B0=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Reisber --- NEBULA/nebula2.0.md | 469 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 469 insertions(+) create mode 100644 NEBULA/nebula2.0.md diff --git a/NEBULA/nebula2.0.md b/NEBULA/nebula2.0.md new file mode 100644 index 0000000..f4c8a1d --- /dev/null +++ b/NEBULA/nebula2.0.md @@ -0,0 +1,469 @@ +# 🚀 OpenNebula на Debian 13 (Full Setup + Networking) + +

+ + + + +

+ +> ⚡ Полный production-ready гайд +> 🧠 Подходит для homelab / VPS / infra + +--- + +# 📚 Содержание + +- [📋 Требования](#-требования) +- [🧰 Базовая установка](#-базовая-установка) +- [🗄️ MariaDB](#️-mariadb) +- [🌐 Hostname](#-hostname) +- [📦 Установка OpenNebula](#-установка-opennebula) +- [🛠️ Конфигурация](#️-конфигурация) +- [🧪 Отладка](#-отладка) +- [🌐 Сеть и интернет для VM](#-сеть-и-интернет-для-vm) +- [🎉 Готово](#-готово) + +--- + +# 📋 Требования + +- 🖥️ Debian 13 +- ⚠️ KVM (обязательно) +- 💾 Рекомендуется: + - 4 CPU + - 8GB RAM + - SSD + +--- + +# 🧰 Базовая установка + +```bash +apt update +apt install nginx certbot python3-certbot-nginx -y +apt install mariadb-server curl gnupg2 -y +``` + +📌 Пакеты: +- `nginx` — под веб (FireEdge / прокси) +- `certbot` — SSL +- `mariadb` — база OpenNebula + +--- + +# 🗄️ MariaDB + +```bash +mysql +``` + +```sql +CREATE DATABASE opennebula; + +GRANT ALL PRIVILEGES ON opennebula.* +TO 'oneadmin' IDENTIFIED BY 'password'; + +FLUSH PRIVILEGES; +EXIT; +``` + +⚠️ `/etc/mysql/` — здесь конфиги MariaDB + +--- + +# 🌐 Hostname + +```bash +hostname opennebula +``` + +📌 Файл: `/etc/hosts` + +```bash +nano /etc/hosts +``` + +Добавь: + +``` + opennebula +``` + +--- + +# 📦 Установка OpenNebula + +## 🔐 GPG ключ + +```bash +curl -fsSL https://downloads.opennebula.io/repo/repo2.key \ +| gpg --dearmor -o /etc/apt/trusted.gpg.d/opennebula.gpg +``` + +--- + +## 📥 Репозиторий + +Файл: `/etc/apt/sources.list.d/opennebula.list` + +```bash +echo "deb https://downloads.opennebula.io/repo/7.1/Debian/13 stable opennebula" \ +| tee /etc/apt/sources.list.d/opennebula.list +``` + +--- + +## 🔄 Установка + +```bash +apt update + +apt install opennebula opennebula-fireedge \ +opennebula-gate opennebula-flow -y +``` + +--- + +## ⚙️ Зависимости + +```bash +/usr/share/one/install_gems +``` + +📌 Скрипт ставит ruby-зависимости + +--- + +# 🛠️ Конфигурация + +Файл: `/etc/one/oned.conf` + +```bash +nano /etc/one/oned.conf +``` + +### ❌ Было: + +```ini +DB = [ BACKEND = "sqlite", +TIMEOUT = 2500 ] +``` + +### ✅ Стало: + +```ini +DB = [ BACKEND = "mysql", +SERVER = "localhost", +PORT = 0, +USER = "oneadmin", +PASSWD = "password", +DB_NAME = "opennebula", +CONNECTIONS = 25, +COMPARE_BINARY = "no" ] +``` + +--- + +## 🔑 Пароль oneadmin + +```bash +cat /var/lib/one/.one/one_auth +``` + +--- + +## ▶️ Сервисы + +```bash +systemctl start opennebula opennebula-fireedge \ +opennebula-flow opennebula-gate + +systemctl enable opennebula opennebula-fireedge \ +opennebula-flow opennebula-gate +``` + +--- + +# 🧪 Отладка + +## SSH доступ + +```bash +su - oneadmin +ssh -o StrictHostKeyChecking=no localhost +``` + +--- + +## Группы + +```bash +usermod -a -G libvirt,kvm oneadmin +``` + +--- + +## KVM + +```bash +ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu-kvm-one +systemctl restart libvirtd +``` + +📌 Файл: `/etc/libvirt/qemu.conf` + +```bash +nano /etc/libvirt/qemu.conf +``` + +```ini +user = "oneadmin" +group = "oneadmin" +dynamic_ownership = 1 +``` + +--- + +## AppArmor + +```bash +apt install apparmor-utils -y +aa-complain /usr/sbin/libvirtd +systemctl restart libvirtd +``` + +--- + +## Datastore + +```bash +chown -R oneadmin:oneadmin /var/lib/one/datastores +chmod -R 770 /var/lib/one/datastores +``` + +--- + +## Guacd + +```bash +systemctl enable --now opennebula-guacd +ss -tlnp | grep 4822 +``` + +--- + +## Sunstone + +Файл: `/etc/one/sunstone-server.conf` + +```yaml +:private_fireedge_endpoint: http://localhost:2616 +:public_fireedge_endpoint: http://:2616 +:fireedge_verify_ssl: false +``` + +--- + +# 🌐 Сеть и интернет для VM + +# OpenNebula guide up internet for VM + +--- + +## 1. Создание bridge + +```bash +apt install bridge-utils -y +``` + +📌 Файл: `/etc/network/interfaces` + +```bash +nano /etc/network/interfaces +``` + +```ini +# Внутренний мост для OpenNebula +auto br1 +iface br1 inet static + address 192.168.100.1 + netmask 255.255.255.0 + bridge_ports none + bridge_stp off + bridge_fd 0 +``` + +--- + +## 2. Применение сети + +```bash +systemctl restart networking +``` + +--- + +## 3. NAT (интернет для VM) + +### Включаем forwarding + +📌 Файл: `/etc/sysctl.d/99-opennebula-nat.conf` + +```bash +echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-opennebula-nat.conf +sysctl -p /etc/sysctl.d/99-opennebula-nat.conf +``` + +--- + +### iptables + +📌 Узнать интерфейс: + +```bash +ip route | grep default +``` + +```bash +iptables -t nat -F + +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE + +iptables -A FORWARD -i br1 -o eth0 -j ACCEPT +iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT +``` + +--- + +### Сохранение + +```bash +apt install iptables-persistent -y +``` + +--- + +## 4. Проброс портов + +```bash +iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 \ +-j DNAT --to-destination 192.168.100.10:22 +``` + +--- + +## 5. Сеть в OpenNebula + +- Network → Virtual Network +- Mode: **Bridged** +- Bridge: `br1` + +📌 Addresses → `+ Address Range` + +--- + +## 6. DNS (bind9) + +```bash +apt install bind9 -y +``` + +📌 Файл: `/etc/bind/named.conf.options` + +```bash +nano /etc/bind/named.conf.options +``` + +```ini +options { + directory "/var/cache/bind"; + + forwarders { + 8.8.8.8; + 8.8.4.4; + }; + + dnssec-validation auto; + listen-on { 127.0.0.1; 192.168.100.1; }; + listen-on-v6 { none; }; +}; +``` + +```bash +systemctl restart bind9 +``` + +--- + +## 7. DHCP + +```bash +apt install isc-dhcp-server -y +``` + +📌 Интерфейс: + +```bash +nano /etc/default/isc-dhcp-server +``` + +``` +INTERFACESv4="br1" +``` + +--- + +📌 Конфиг: `/etc/dhcp/dhcpd.conf` + +```bash +nano /etc/dhcp/dhcpd.conf +``` + +```conf +subnet 192.168.100.0 netmask 255.255.255.0 { + range 192.168.100.2 192.168.100.254; + option routers 192.168.100.1; + + option domain-name-servers 192.168.100.1; + + option subnet-mask 255.255.255.0; + option broadcast-address 192.168.100.255; + default-lease-time 600; + max-lease-time 7200; +} +``` + +--- + +```bash +systemctl restart isc-dhcp-server +systemctl status isc-dhcp-server +``` + +--- + +# 🎉 Готово! + +## ✅ У тебя теперь: + +- OpenNebula +- NAT + интернет для VM +- DHCP + DNS +- Полная инфраструктура + +--- + +## 💡 Debug + +```bash +journalctl -u opennebula -f +journalctl -u libvirtd -f +journalctl -u isc-dhcp-server -f +``` + +--- + +

+ made with ❤️ for infra geeks +

\ No newline at end of file