2gusia (2gusia) wrote,
2gusia
2gusia

qjail - клетки по-быстрому

В процессе тыкания палочкой клеток (jails) приходит момент, когда служебные операции надоедают. TheBrig - очень красивая и удобная штука. Но пока нажмёшь все галочки - забудешь что хотел. (Утрирую, конечно). В то же время в комплекте с Finch chroot устанавливается неплохой пакет дляработы с клетками по-быстрому - qjail от quick(англ) - быстрый. Необходимые приготовления уже были проведены при установке Finch. Сразу скажу, что в одной систему клетки, созданные через TheBrig и через qjail мирно сосуществуют. Только IP адреса надо давать каждой клетке уникальные.

Клетка создаётся буквально в одну команду.

nas4free ~/ root~$ qjail create -4 "192.168.1.50,lo0|127.0.0.50" test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Successfully created test


Здесь create - создать, ключ -4 задаёт список IP-4 адресов для создаваемой клетки (второй из них - loopback), а test - имя клетки

Теперь клетку запускаем и проверяем результат
nas4free ~/ root~$ qjail start test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Jail successfully started test
nas4free ~/ root~$ jls
JID IP Address Hostname Path
1 192.168.1.55 owncloud /mnt/Pool/Ext/Finch/usr/jails/owncloud
2 192.168.1.54 tm /mnt/Pool/Ext/Finch/usr/jails/tm
4 192.168.1.50 test /mnt/Pool/Ext/Finch/usr/jails/test


Бинго!
При рестарте системы все созданные клетки стартуют автоматически

Созданную клетку можно модифицировать, полный man - здесь. (К сожалению, ман здесь страдает неполнотой). Перед модификацией клетку надо остановить.

Давайте для примера разрешим использования UNIX сокетов

nas4free ~/ root~$ jexec 4 ping 192.168.1.1
ping: socket: Operation not permitted
nas4free ~/ root~$ qjail stop test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Jail successfully stopped test
nas4free ~/ root~$ qjail config -k test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Successful enabled allow.raw_sockets for test
nas4free ~/ root~$ qjail start test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Jail successfully started test
nas4free ~/ root~$ jexec 5 ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.419 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.211 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.226 ms
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.211/0.285/0.419/0.095


Но обычно параметры по умолчанию подходят.

Ну и давайте убьём нашу тестовую клетку.

nas4free ~/ root~$ qjail stop test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Jail successfully stopped test
nas4free ~/ root~$ qjail delete test
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Successfully deleted test
nas4free ~/ root~$ qjail list
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.


STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
DR 1 re0 192.168.1.55 owncloud
lo0|127.0.0.55
DR 2 re0 192.168.1.54 tm
lo0|127.0.0.54



Прим. Видно, что команды можно вводить непосредственно из хост системы. Finch настроен так, чтобы автоматом передавать их в chroot. Но если команд вводить много - можно сначала войти в chroot, а потом выйти


nas4free ~/ root~$ finch chroot
finch: chrooting to "/mnt/Pool/Ext/Finch".
nas4free // root^> qjail list

STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
DR 1 re0 192.168.1.55 owncloud
lo0|127.0.0.55
DR 2 re0 192.168.1.54 tm
lo0|127.0.0.54

nas4free // root^> exit
logout
nas4free ~/ root~$



Краткий справочник по qjail в finch от разработчика finch - здесь.

PS Нашёл два даже не недостатка - незначительных ограничения.
1) ezjail умеет пари необходимости сам создавать zfs датасет под клетку и пр. qjail - нет, при желании - милости просим руками.
2) qjail не умеет создавать VIMAGE клетки. Во всяком случае при применении адресов вида 192.168.х.х TheBrig текущей версии alkatraz - судя по всему умеет (но я сам не тестил)

PPS Входить внутрь работающей клетки советую запуском в ней командного интерпретатора, посмотрев номер клетки по jls или qjail lest. Например
nas4free ~/ root~$ jls
JID IP Address Hostname Path
1 192.168.1.55 owncloud /mnt/Pool/Ext/Finch/usr/jails/owncloud
2 192.168.1.54 tm /mnt/Pool/Ext/Finch/usr/jails/tm
nas4free ~/ root~$ jexec 1 tcsh
owncloud / >
>


Вариант входа в клетку qjail console "$jailname" рабочий, но имеет проблемы с кириллицей.
Tags: jail, nas, nas4free
Subscribe

  • OpenZFS и XigmaNAS

    Месяц назад я писал про Open ZFS. Там были мысли о том, когда он будет доступен в XogmaNAS. А в конце декабря зацепился на эту тему языками с…

  • Как провожают жесткие диски

    Сдох у меня жесткий диск в NAS Как видно - из SMART отпахал 70428 часов, то есть если 24/7 - больше 8 лет. И, я вам скажу, он не просто крутился…

  • О добавлении диска в ZFS raidz

    Проект OpenZFS дал новый импульс развитию этой файловой системы. Прежде всего потому, что Linux сообщество разработчикоы велико и подключение их к…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 22 comments

  • OpenZFS и XigmaNAS

    Месяц назад я писал про Open ZFS. Там были мысли о том, когда он будет доступен в XogmaNAS. А в конце декабря зацепился на эту тему языками с…

  • Как провожают жесткие диски

    Сдох у меня жесткий диск в NAS Как видно - из SMART отпахал 70428 часов, то есть если 24/7 - больше 8 лет. И, я вам скажу, он не просто крутился…

  • О добавлении диска в ZFS raidz

    Проект OpenZFS дал новый импульс развитию этой файловой системы. Прежде всего потому, что Linux сообщество разработчикоы велико и подключение их к…