Installation of Calculate LXC Container

LXC

Installing the required packages

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

emerge -a lxc

Installing Calculate into a container

To install Calculate Linux Container, run:

lxc-create -n css -t download -- --server mirror.calculate-linux.org --no-validate --arch x86_64
lxc-create -n ccs -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     18      x86_64  default 20181224
---

Distribution: 
CCS
Release: 
18

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.

Вместо css укажите любое другое подходящее имя контейнера. Сценарий загрузки отобразит доступные образы и попросит указать дистрибутив CCS (большими буквами) и релиз 18, текущий на момент написания статьи. 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

В дальшейнем описании в командах и путях вместо css используйте выбранное вами имя контейнера.

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. Для этого выберите один из двух сценариев настройки:

  • В случае наличия нескольких IP-адресов у хостовой машины, например если вы будете запускать контейнер на десктопе, работающем в локальной сети и получающим IP через DHCP, вы можете настроить сеть путём использования контейнерами общей сети.
  • Если у хостовой машины выделен один IP-адрес, например при поднятии контейнера на VPS или выделенном сервере, вы можете настроить трансляцию сетевых адресов через один интерфейс.

Network configuration of the container

Configure the network for your container:

/var/calculate/lxc/ccs/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 (02:03:04:05:06:07). Note that the first number must be even.

Start the container

To start the container, run:

lxc-start ccs

Make sure the container is up and running:

lxc-info ccs
Name:           ccs
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.ccs

rc-update add lxc.ccs

Для того, чтобы система в контейнере корректно стартовала после поднятия сети, создайте файл со следующим правилом:

/etc/conf.d/lxc

rc_want="net.br0"

Configuring system in the container

Настройки в контейнере вы можете выполнять из хостовой машины, используя конструкцию lxc-attach <имя_контейнера> -- <команда>, либо подключившись к контейнеру, для этого выполните:

lxc-attach css

Сеть

Настройка сети при использовании общей сети

В случае использования общей сети (с IP-адресами локальной сети) вы можете настроить сеть с использованием DHCP или указав свободный IP-адрес и IP маршрутизатора.

При использовании DHCP сервера в локальной сети достаточно выполнить:

/etc/init.d/net.eth0 start

rc-update add net.eth0

Настройка сети при использовании трансляции сетевых адресов

При использовании трансляцией сетевых адресов в настройках хост-машины выполните следующие настройки сети:

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

В примере контейнер использует IP 192.168.11.2 с маршрутом через 192.168.11.1.

Прочие настройки

Настройте локализацию и укажите пароль пользователя root:

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

passwd

You can also specify the complete hostname:

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

To check the new hostname, run:

hostname -f

Adding applications in a container

Update Portage in the container:

cl-update

At first startup, cl-update will fetch the Portage tree as well as all added overlays.

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

emerge -a syslog-ng logrotate vixie-cron

По завершению настроек выйдите из контейнера:

exit