====== 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.