====== Set up and use an LXC container ====== ===== Goal ===== Installing an LXC container. Images for the routers are available from the Jenkins website. ===== Prerequisites ===== * NetModule Wireless Router with wireless connection * NetModule Software [[https://share.netmodule.com/public/system-software/4.8/4.8.0.103/|4.8.0.103]] or newer * A license is required for the LXC container * Not available for legacy products NB1600, NB2700, NB3700, NB3710 ===== - Set up the LXC Contianer ===== Activate the LXC container on the router {{:pictures:lxc_aktiv.png?800|}} In the second step the image of the LXC container in this case Debian. {{:pictures:lxc_install.png?800|}} The easiest way to do this is to install the whole thing over the Internet. However, the router requires a mobile connection to the Internet. From a Jenkins server you get the current image for the container * Jenkins Server Page / [[https://jenkins.linuxcontainers.org/view/Images/job/image-debian/|Link]] The "''armhf''" tab is important here Here you can get a Debina image for ''buster, bullseye or bookworm''. {{:pictures:lxc_jenkins.png?800|}} If you click on the circle with the green rakes, you will be taken to the software. What else is important is that the circle and rakes must be green. {{:pictures:lxc_link.png?800|}} The image is the "''rootfs.tar.xz''" which is required. With a right click you can copy the link. It would be structured like this: ''https://jenkins.linuxcontainers.org/view/Images/job/image-debian/architecture=armhf,release=bookworm,variant=default/lastSuccessfulBuild/artifact/rootfs.tar.xz'' When the "Apply" button is pressed, Debian will be installed. ===== - Test LXC installation and set up further ===== Under the console you can first check whether the installation has been carried out. ~ $ cd /mnt/storage0/lxc/guest0 /mnt/storage0/lxc/guest0 $ ls bin dev home media opt root sbin sys usr boot etc lib mnt proc run srv tmp var /mnt/storage0/lxc/guest0 $ This file must be available under this directory structur ~ $ lxc-info guest0 Name: guest0 State: RUNNING PID: 20493 CPU use: 1.49 seconds BlkIO use: 20.00 KiB Memory use: 7.22 MiB KMem use: 1.20 MiB ~ $ The LXC container is set up and already started. Set up the LXC container further. A network interface is enabled here. {{:pictures:lxc_netzwerk.png?800|}} The container has now also been assigned an IP address. ~ $ lxc-info guest0 Name: guest0 State: RUNNING PID: 2255 IP: 192.168.1.149 CPU use: 1.57 seconds BlkIO use: 4.00 KiB Memory use: 6.29 MiB KMem use: 1.18 MiB Link: virt0 TX bytes: 2.28 KiB RX bytes: 853 bytes Total bytes: 3.11 KiB ~ $ Always assign a fixed IP address for the LXC container via the DHCP server. {{:pictures:lxc_ip_adresse.png?800|}} Log in to the LXC container and test whether it can access the Internet. ~ $ lxc-attach guest0 root@LXCNAME:~# ping heise.de PING heise.de (193.99.144.80) 56(84) bytes of data. 64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=1 ttl=244 time=42.4 ms 64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=2 ttl=244 time=31.0 ms 64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=3 ttl=244 time=27.1 ms --- heise.de ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 27.116/33.504/42.432/6.505 ms root@LXCNAME:~# The container is installed and set up. Now you can set up further tools on the container.