469
NEBULA/nebula2.0.md
Normal file
469
NEBULA/nebula2.0.md
Normal file
@@ -0,0 +1,469 @@
|
||||
# 🚀 OpenNebula на Debian 13 (Full Setup + Networking)
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/OpenNebula-7.1-blue?style=for-the-badge">
|
||||
<img src="https://img.shields.io/badge/Debian-13-red?style=for-the-badge">
|
||||
<img src="https://img.shields.io/badge/KVM-required-important?style=for-the-badge">
|
||||
<img src="https://img.shields.io/badge/status-working-success?style=for-the-badge">
|
||||
</p>
|
||||
|
||||
> ⚡ Полный 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
|
||||
```
|
||||
|
||||
Добавь:
|
||||
|
||||
```
|
||||
<YOUR_IP> 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://<YOUR_IP_OR_DOMAIN>: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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
made with ❤️ for infra geeks
|
||||
</p>
|
||||
Reference in New Issue
Block a user