Я хотел запустить Fedora CoreOS как виртуальную машину на Proxmox VE, но не нашёл хороших ресурсов по этому поводу. Как-то мне удалось разобраться и решил поделиться своими знаниями. Proxmox VE официально не поддерживает Ignition, что используется Fedora CoreOS для инициализации виртуальных машин. Вот обзор шагов:
1. Запустить HTTP-сервер в LXC, который будет отдавать файл Ignition.
2. Запустить Live ISO-образ на Proxmox как виртуальную машину и установить CoreOS с использованием размещённого Ignition-файла.
1. Запустить HTTP-сервер в LXC, который будет отдавать файл Ignition.
Создайте ваш любимый LXC-контейнер. Установите Apache server:
Bash:
```
##На Debian/Ubuntu
sudo apt update && sudo apt install apache2
##На CentOS/Rocky/Alma Linux
sudo yum install -y httpd
```
Измените порт прослушивания на 8080:
Bash:
```
##На Debian/Ubuntu
sudo sed -i 's/Listen 80/Listen 8080/' /etc/apache2/ports.conf
##На CentOS/Rocky/Alma Linux
sudo sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf
sudo setsebool -P httpd_read_user_content 1
```
Запустите и включите сервис:
Bash:
```
##На Debian/Ubuntu
sudo systemctl enable apache2
sudo systemctl restart apache2
##На CentOS/Rocky/Alma Linux
sudo systemctl enable httpd
sudo systemctl restart httpd
```
Убедитесь, что сервер работает:
`curl localhost:8080`
Создайте Ignition Config для Flatcar Container Linux:
`vim coreos.bu`
JSON:
```
variant: fcos
version: 1.5.0
passwd:
users:
- name: core
groups: ["wheel", "sudo", "systemd-journal"]
ssh_authorized_keys:
- replace-me-with-public-ssh-key
password_hash: your password has using 'openssl passwd -1 -salt your-salt'
shell: /bin/bash
storage:
files:
- path: /etc/hostname
mode: 0644
overwrite: true
contents:
inline: "replace-me-with-your-hostname"
systemd:
units:
- name: "install-qemu-guest-agent.service"
enabled: true
contents: |
[Unit]
Description=Ensure qemu-guest-agent is installed
Wants=network-online.target
After=network-online.target
Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=rpm-ostree install --allow-inactive --assumeyes --reboot qemu-guest-agent
ExecStart=/bin/touch /var/lib/%N.stamp
[Install]
WantedBy=multi-user.target
```
Создайте ignition-файл из файла butane config:
`dnf install -y butane`
`butane --pretty --strict coreos.bu > coreos.ign`
Переместите этот файл в корневой каталог веб-сервера Apache:
`mkdir /var/www/html/coreos`
`cp coreos.ign /var/www/html/coreos`
Убедитесь, что всё работает:
`curl localhost:8080/coreos/coreos.ign`
2. Запустить Live ISO-образ на Proxmox как виртуальную машину.
Загрузите Live ISO-образ Fedora CoreOS. Загрузите ISO на ваш Proxmox-сервер, выделите хранилище и память в соответствии с вашими потребностями и запустите виртуальную машину. После загрузки Live ISO выполните следующие действия:
Найдите диск для установки Fedora CoreOS:
`lsblk`
Загрузите Ignition-файл:
`curl -o coreos.ign http://<ip-address>:8080/coreos/coreos.ign`
Установите CoreOS:
`coreos-installer install /dev/sda -i coreos.ign`
Предполагается, что `/dev/sda` - это диск, на который вы хотите установить CoreOS.
Источники:
[ >)
[ >)
[ >)
1. Запустить HTTP-сервер в LXC, который будет отдавать файл Ignition.
2. Запустить Live ISO-образ на Proxmox как виртуальную машину и установить CoreOS с использованием размещённого Ignition-файла.
1. Запустить HTTP-сервер в LXC, который будет отдавать файл Ignition.
Создайте ваш любимый LXC-контейнер. Установите Apache server:
Bash:
```
##На Debian/Ubuntu
sudo apt update && sudo apt install apache2
##На CentOS/Rocky/Alma Linux
sudo yum install -y httpd
```
Измените порт прослушивания на 8080:
Bash:
```
##На Debian/Ubuntu
sudo sed -i 's/Listen 80/Listen 8080/' /etc/apache2/ports.conf
##На CentOS/Rocky/Alma Linux
sudo sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf
sudo setsebool -P httpd_read_user_content 1
```
Запустите и включите сервис:
Bash:
```
##На Debian/Ubuntu
sudo systemctl enable apache2
sudo systemctl restart apache2
##На CentOS/Rocky/Alma Linux
sudo systemctl enable httpd
sudo systemctl restart httpd
```
Убедитесь, что сервер работает:
`curl localhost:8080`
Создайте Ignition Config для Flatcar Container Linux:
`vim coreos.bu`
JSON:
```
variant: fcos
version: 1.5.0
passwd:
users:
- name: core
groups: ["wheel", "sudo", "systemd-journal"]
ssh_authorized_keys:
- replace-me-with-public-ssh-key
password_hash: your password has using 'openssl passwd -1 -salt your-salt'
shell: /bin/bash
storage:
files:
- path: /etc/hostname
mode: 0644
overwrite: true
contents:
inline: "replace-me-with-your-hostname"
systemd:
units:
- name: "install-qemu-guest-agent.service"
enabled: true
contents: |
[Unit]
Description=Ensure qemu-guest-agent is installed
Wants=network-online.target
After=network-online.target
Before=zincati.service
ConditionPathExists=!/var/lib/%N.stamp
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=rpm-ostree install --allow-inactive --assumeyes --reboot qemu-guest-agent
ExecStart=/bin/touch /var/lib/%N.stamp
[Install]
WantedBy=multi-user.target
```
Создайте ignition-файл из файла butane config:
`dnf install -y butane`
`butane --pretty --strict coreos.bu > coreos.ign`
Переместите этот файл в корневой каталог веб-сервера Apache:
`mkdir /var/www/html/coreos`
`cp coreos.ign /var/www/html/coreos`
Убедитесь, что всё работает:
`curl localhost:8080/coreos/coreos.ign`
2. Запустить Live ISO-образ на Proxmox как виртуальную машину.
Загрузите Live ISO-образ Fedora CoreOS. Загрузите ISO на ваш Proxmox-сервер, выделите хранилище и память в соответствии с вашими потребностями и запустите виртуальную машину. После загрузки Live ISO выполните следующие действия:
Найдите диск для установки Fedora CoreOS:
`lsblk`
Загрузите Ignition-файл:
`curl -o coreos.ign http://<ip-address>:8080/coreos/coreos.ign`
Установите CoreOS:
`coreos-installer install /dev/sda -i coreos.ign`
Предполагается, что `/dev/sda` - это диск, на который вы хотите установить CoreOS.
Источники:
[ >)
[ >)
[ >)
