Talk:Proxmox Linux Container: Difference between revisions
imported>Vater |
imported>Vater mNo edit summary |
||
Line 216: | Line 216: | ||
[root@nixos:/]# | [root@nixos:/]# | ||
</pre> | |||
|- | |||
| (optional) test rebuild of NixOS | |||
| | |||
| | |||
(optional) check the default configuration file for NixOS | |||
: <code>cat /etc/nixos/configuration.nix</code> | |||
<pre> | |||
{ config, pkgs, ... }: | |||
{ | |||
imports = [ <nixpkgs/nixos/modules/virtualisation/lxc-container.nix> ]; | |||
} | |||
</pre> | |||
: <code>nixos-rebuild test</code> | |||
<pre> | |||
building Nix... | |||
building the system configuration... | |||
activating the configuration... | |||
setting up /etc... | |||
setting up tmpfiles | |||
warning: the following units failed: sys-kernel-debug.mount | |||
● sys-kernel-debug.mount - Kernel Debug File System | |||
Loaded: loaded (/nix/store/n5j5fjn60nhck658j9ab84k8n9z24n1r-systemd-247.6/example/systemd/system/sys-kernel-debug.mount; enabled; vendor preset: enabled) | |||
Active: failed (Result: exit-code) since Mon 2021-10-11 06:48:30 UTC; 265ms ago | |||
Where: /sys/kernel/debug | |||
What: debugfs | |||
Docs: https://www.kernel.org/doc/Documentation/filesystems/debugfs.txt | |||
https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems | |||
IP: 0B in, 0B out | |||
CPU: 2ms | |||
Oct 11 06:48:30 nixos systemd[1]: Mounting Kernel Debug File System... | |||
Oct 11 06:48:30 nixos mount[17997]: mount: /sys/kernel/debug: permission denied. | |||
Oct 11 06:48:30 nixos systemd[1]: sys-kernel-debug.mount: Mount process exited, code=exited, status=32/n/a | |||
Oct 11 06:48:30 nixos systemd[1]: sys-kernel-debug.mount: Failed with result 'exit-code'. | |||
Oct 11 06:48:30 nixos systemd[1]: Failed to mount Kernel Debug File System. | |||
warning: error(s) occurred while switching to the new configuration | |||
</pre> | </pre> | ||
|- | |- | ||
Line 224: | Line 265: | ||
: <code>cat /etc/nixos/configuration.nix</code> | : <code>cat /etc/nixos/configuration.nix</code> | ||
<pre> | <pre> | ||
{ config, pkgs, ... }: | |||
{ | |||
imports = [ <nixpkgs/nixos/modules/virtualisation/lxc-container.nix> ]; | |||
} | |||
</pre> | </pre> | ||
: <code>nano /etc/nixos/configuration.nix</code> | : <code>nano /etc/nixos/configuration.nix</code> | ||
Line 247: | Line 295: | ||
| | | | ||
: <code>nix-channel --update</code> | : <code>nix-channel --update</code> | ||
|- | |- | ||
| … | | … |
Revision as of 06:51, 11 October 2021
NixOS container (LXC) on Proxmox Virtual Environment 7
WUI | CLI | Reference | |
---|---|---|---|
find the (a current) NixOS template |
for example for 21.05
| ||
download the NixOS template |
|
going to the folder where all the templates for Promox Virtual Environment are stored
downloading the NixOS template file (optional you should) move the downloaded NixOS template file to a nicer (more individual) file name
(optional you can) going back
| |
create a (first) new NixOS container with Proxmox Virtual Environment |
|
(optional you can) check the (pve) lxc config file (and it should look like something like the following)
arch: amd64 hostname: CT1000 memory: 1024 net0: name=eth0 ostype: unmanaged rootfs: storage:vm-1000-disk-0,size=4G swap: 512 unprivileged: 1 | |
customize the individual Proxmox Virtual Environment container configuration for NixOS |
sync_wait: 36 An error occurred in another process (expected sequence number 7) __lxc_start: 2073 Failed to spawn container "1000" TASK ERROR: startup for container '1000' failed editing the specific (pve) lxc config file (to a option for lxc.init.cmd)
lxc.init.cmd: /init | ||
(configure the available (virtual) network device for the Proxmox Virtual Environment container) |
| ||
(activate nesting for NixOS in the Proxmox Virtual Environment container) |
(optional you can) check the (pve) lxc config file (and it should look like something like the following with nesting=1 on the line features:)
arch: amd64 cores: 2 features: nesting=1 hostname: CT1000 memory: 1024 net0: name=eth0,bridge=vmbr0,hwaddr=A1:B2:C3:D4:E5:F6,ip=dhcp,type=veth ostype: unmanaged rootfs: storage:vm-1000-disk-0,size=4G swap: 512 unprivileged: 1 | ||
customize the (pve) lxc startup setup routine |
run_buffer: 316 Script exited with status 1 lxc_init: 816 Failed to run lxc.hook.pre-start for container "1000" __lxc_start: 2007 Failed to initialize container "1000" TASK ERROR: startup for container '1000' failed
sub unified_cgroupv2_support { my ($self) = @_; return if !$self->{plugin}; # unmanaged $self->protected_call(sub { $self->{plugin}->unified_cgroupv2_support() }); } WARN: old systemd (< v232) detected, container won't run in a pure cgroupv2 environment! Please see documentation -> container -> cgroup version. TASK WARNINGS: 1 |
||
start the NixOS container with Proxmox Virtual Environment |
| ||
login into the NixOS container |
<<< Welcome to NixOS 21.05.3740.ce7a1190a0f (x86_64) - pts/0 >>> Log in as "root" with an empty password. nixos login: nixos login: root [root@nixos:~]# |
sh-4.4# sh-4.4# . /etc/profile [root@nixos:/]# | |
(optional) test rebuild of NixOS |
(optional) check the default configuration file for NixOS
{ config, pkgs, ... }: { imports = [ <nixpkgs/nixos/modules/virtualisation/lxc-container.nix> ]; }
building Nix... building the system configuration... activating the configuration... setting up /etc... setting up tmpfiles warning: the following units failed: sys-kernel-debug.mount ● sys-kernel-debug.mount - Kernel Debug File System Loaded: loaded (/nix/store/n5j5fjn60nhck658j9ab84k8n9z24n1r-systemd-247.6/example/systemd/system/sys-kernel-debug.mount; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2021-10-11 06:48:30 UTC; 265ms ago Where: /sys/kernel/debug What: debugfs Docs: https://www.kernel.org/doc/Documentation/filesystems/debugfs.txt https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems IP: 0B in, 0B out CPU: 2ms Oct 11 06:48:30 nixos systemd[1]: Mounting Kernel Debug File System... Oct 11 06:48:30 nixos mount[17997]: mount: /sys/kernel/debug: permission denied. Oct 11 06:48:30 nixos systemd[1]: sys-kernel-debug.mount: Mount process exited, code=exited, status=32/n/a Oct 11 06:48:30 nixos systemd[1]: sys-kernel-debug.mount: Failed with result 'exit-code'. Oct 11 06:48:30 nixos systemd[1]: Failed to mount Kernel Debug File System. warning: error(s) occurred while switching to the new configuration | ||
fixing the configuration file for NixOS |
(optional) check the default configuration file for NixOS
{ config, pkgs, ... }: { imports = [ <nixpkgs/nixos/modules/virtualisation/lxc-container.nix> ]; }
{ imports = [ <nixpkgs/nixos/modules/virtualisation/lxc-container.nix> ]; systemd.suppressedSystemUnits = [ "sys-kernel-debug.mount" ]; } |
https://github.com/NixOS/nixpkgs/issues/9735#issuecomment-783535726 | |
update the channel for NixOS (needed?) |
| ||
… | |||
… | |||
… |
Is there a need for non unprivileged NixOS containers?
- Is there a scenario where you would like to have a privileged (
unprivileged = 0
) container? - I do not know.
Is there a cgroup2 only NixOS containers?
- Is there a configuration with cgroups versions 2 only - where cgroups version 1 is not needed - (so that is possible to rollback the manipulation of the pve lxc startup script (/usr/share/perl5/PVE/LXC/Setup.pm))? Or can we create such a (pre)build image (tar)?
- I do not know.
grep cgroup /proc/filesystems
nodev cgroup nodev cgroup2
- Notes
https://linuxcontainers.org/lxc/manpages//man5/lxc.container.conf.5.html
(pve) lxc configuration option lxc.cgroup2.devices.allow: a
(pve) lxc configuration option lxc.cgroup.devices.deny = a
https://wiki.debian.org/LXC/CGroupV2
https://search.nixos.org/options?channel=unstable&from=0&query=cgroup
documentation
proxmox
- https://pve.proxmox.com/pve-docs/
- https://pve.proxmox.com/wiki/Linux_Container
- https://pve.proxmox.com/wiki/Unprivileged_LXC_containers
lxc
- …
debian
- …
linux
- …