Installation de Calculate en LXC

Updated 30 Avril 2020

LXC

Installing the required packages

To continue, you need to install app-emulation/lxc:

emerge -a app-emulation/lxc

Installing Calculate into a container

To install Calculate Linux Container, run:

lxc-create -n calculate -t download -- --server mirror.calculate-linux.org --no-validate --arch x86_64
lxc-create -n calculate -t download -- --server mirror.calculate-linux.org --no-validate --arch x86_64
Downloading the image index
WARNING: Running without gpg validation!

---
DIST    RELEASE ARCH    VARIANT BUILD
---
CCS     20      x86_64  default 20200430
---

Distribution: 
CCS
Release: 
20

Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs

---
You just created a Gentoo container (release=18, arch=amd64, variant=default)

To enable sshd, run: rc-update add sshd

For security reason, container images ship without user accounts
and without a root password.

Use lxc-attach or chroot directly into the rootfs to set a root password
or create user accounts.

Replace calculate with any name you want for your container. To use Btrfs subvolumes, add -B btrfs as an option when creating the root partition for the container. The script will display the available system images and prompt for distribution name, CCS~ (in capital letters) and release number, ~20~ as of the date of this manual. The application will automatically fetch the container on the cloud and install it. The installed containers are stored in the /var/calculate/lxc/ directory.

Note

In subsequent commands and paths, use the container name you replaced calculate with.

Network configuration

Network configuration of the host computer

To configure the network in a LXC container, you will need to configure the network bridge on the host. To do this, select one of the two configuration options:

  • If the host computer has multiple IP addresses - for example, if you will run the container on a desktop operating in the local network and receiving the IP via DHCP - you can configure the network by [using shared network containers] (network#ispolzovanie_obshchei_seti).
  • If the host computer has a single IP address - for example, when running a container on a VPS or dedicated server - you can configure [network address translation] (network#transliatsiia_ip-adresov) via a single interface.

Network configuration of the container

Configure the network for your container:

/var/calculate/lxc/calculate/config

# network type if bridge is used
lxc.net.0.type = veth
# start the network at system start
lxc.net.0.flags = up
# interface inside the container
lxc.net.0.name = eth0
# bridge to be used by the virtual interface
lxc.net.0.link = br0
# random MAC for the network interface of the container (first number must be even)
lxc.net.0.hwaddr = 02:03:04:05:06:07

Replace the MAC address, 02:03:04:05:06:07. Please note that the first number must be even (addresses with an odd first number are multicast and cannot be assigned).

Start the container

To start the container, run:

lxc-start calculate

Make sure the container is up and running:

lxc-info calculate
Name:           calculate
State:          RUNNING
PID:            25107
CPU use:        3.03 seconds
BlkIO use:      51.98 MiB
Memory use:     61.21 MiB
KMem use:       4.39 MiB
Link:           vethXLWII2
 TX bytes:      516 bytes
 RX bytes:      516 bytes
 Total bytes:   1.01 KiB

Add the container to autostart:

ln -sf /etc/init.d/lxc /etc/init.d/lxc.calculate

rc-update add lxc.calculate

In order for the system in the container to start correctly once the network is up, create a file containing the following rule:

/etc/conf.d/lxc

rc_want="net.br0"

Configuring system in the container

Connect to the container to make further modifications or adjustments.

lxc-attach calculate

Note

You can also edit settings in the container from the host computer, using the following syntax:

lxc-attach [HTML_REMOVED] -- [HTML_REMOVED]

Network

Network configuration when using a shared network

If you are using a shared network (with local IPs), you can configure the network either with DHCP or by specifying an available IP address and a router IP address.

When using a DHCP server on a local network, you simply have to run the following:

/etc/init.d/net.eth0 start

rc-update add net.eth0

Network configuration when using NAT

If using [network address translation (NAT)] (network#transliatsiia_ip-adresov), edit the host settings accordingly:

cl-setup-network --iface eth0:192.168.11.2:24 --route default:192.168.11.1 --dns 8.8.8.8

rc-update add net.eth0

In the example, the container uses IP ~192.168.11.2~~ to route via ~192.168.11.1~.

Other settings

Check the localization parameters and set the root password:

cl-setup-locale -l ru_RU --timezone Europe/Moscow

passwd

You can also specify the complete hostname:

cl-setup-network --hostname calculate.mydomain.org

To check the changes, run:

hostname -f

Adding applications in a container

Update Portage in the container:

cl-update

The first time you run the tool, it pulls the Portage tree and enabled overlays.

Now install the software you need for logging and cron jobs:

emerge -a app-admin/logrotate app-admin/syslog-ng sys-process/cronie

When you have completed the configuration, exit the container:

exit

Conclusion

Containers are useful as they remain separated from the main system. You can experiment with them and even launch Calculate Linux from other systems.