Установка Calculate в LXC

Updated 8 March 2019

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.

Replace css with any other suitable container name. Сценарий загрузки отобразит доступные образы и попросит указать дистрибутив 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. To do this, select one of the two configuration options:

  • В случае наличия нескольких 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

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

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

lxc-attach ccs

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 ccs.mydomain.org

Если вы хотите проверить изменения, выполните:

hostname -f

Adding applications in a container

Update Portage in the container:

cl-update

При первом запуске утилита скачает дерево Portage и подключённые оверлеи.

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

emerge -a syslog-ng logrotate vixie-cron

When you have completed the configuration, exit the container:

exit