Скрипт:
#!/bin/ash opkg update opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
Скрипт:
#!/bin/ash opkg update opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
В определенный момент мне понадобился pfSense, установленный на VPS хостинге. pfSense не требователен к ресурсам, поэтому я остановил свой выбор на хостингах, работающих с KVM.
Проблема оказалась в том, что все хостинги предоставляют установку операционных систем только из доступных у них шаблонов, а это, как правило, Ubuntu, CentOS и иные подобные системы. В редких случаях это FreeBSD, но, опять же, чистый.
В итоге я решил развернуть у себя виртуальную машину на KVM c параметрами как у VPS-хостинга, а затем просто перенести образ жесткого диска на VPS.
Конфигурация KVM в моем случае была такая: 256 RAM, 1 процессорное ядро, 5ГБ жесткий диск. HDD и Network — через VirtIO.
При создании виртуалки очень важно, чтобы тип хранилища был Raw. QCOW2, VDI и иже с ними не подойдут. Создал виртуалку, поставил pfSense, теперь самое главное перенести ее образ на VPS.
Выбранный нами VPS хостинг должен поддерживать доступ к консоли виртуальной машины напрямую, а не только по SSH. На VPS устанавливаем шаблонную Ubuntu 16.04. Как правило это чистая система с родным загрузчиком GRUB. Скачиваем туда образ любой Ubuntu/Debian netinstall CD, извлекаем ядро и initrd, например в папку boot, а дальше подсовываем GRUB это ядро и initrd. Обязательно ядру при загрузке указываем параметр rescue/enable=true. Попадаем в Ubuntu/Debian recovery mode, запускаем консоль без подключения к восстанавливаемой системе, а дальше
wget [АДРЕС НАШЕГО ОБРАЗА, ВЫЛОЖЕННОГО НА ЛЮБОЙ WEB-ХОСТИНГ] -q -O - | dd of=/dev/vda bs=10M
Ждем. (можно ждать долго, у кого то и 2-3 часов не хватит). По окончании работы команды перезагружаем нашу VPS виртуалку, и видим успешную загрузку pfSense.
# pacman -S archiso # cp -r /usr/share/archiso/configs/releng/* archlive
Добавить archzfs и multilib репозитории:
~/archlive/pacman.conf ... [archzfs] Server = http://archzfs.com/$repo/$arch [multilib] Include = /etc/pacman.d/mirrorlist
Добавить archzfs-linux в список устанавливаемых пакетов.
~/archlive/packages.x86_64 ... archzfs-linux
В директории ~/archlive
, запустить:
# ./build.sh -v
Скрипт скачает и установит пакеты в папку work/*/airootfs
, поставит ядро и initramfs, и соберет все это в образ iso в папке out/
.
convert 1.png 2.png 3.png output.pdf
Самым простым способом исправления ситуации, чтобы время больше не сбивалось после перезагрузки из одной ОС в другую – это внести пару изменений в системном реестре ОС Windows.
Присвоить имя RealTimeIsUniversal созданному параметру
После чего добавить ему значение 1
Перезагрузите компьютер, чтобы все изменения вступили в силу.
Установите следующие пакеты:
kmod-usb-storage-extras
opkg update opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras
Если opkg выдаёт ошибку при установке kmod-usb-storage-extras, следует сперва установить
kmod-usb-core
Для нормальной работы docker в lxc, в конфиге контейнера /etc/pve/lxc/[ID].conf прописать:
lxc.apparmor.profile: unconfined lxc.cgroup.devices.allow: a lxc.cap.drop:
Создать пул raidz:
$ zpool create -f -o ashift=12 tank raidz /dev/sda /dev/sdb /dev/sdc
Добавить диски в пул:
$ zpool add -f tank raidz /dev/sda /dev/sdb /dev/sdc
$ zpool attach tank /dev/sda /dev/sdb
Создать фс:
$ zfs create tank/storage
Включить сжатие:
$ zfs set compression=on tank/storage
Изменить точку монтирования:
$ zfs set mountpoint=/media/storage tank/storage
Добавить кэш диск l2arc:
$ zpool add tank cache /dev/sda -f
Добавить ZIL:
$ zpool add tank log /dev/sda -f
Если диск отпал (проблемы с кабелем) или специально его отключили можно подключить его обратно:
$ zpool online tank /dev/sda
Создать блочное устройство:
$ zfs create -V 5gb tank/vol
В конфиге контейнера /etc/pve/lxc/[ID].conf добавить строку
Для tun устройства:
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file
Дополнительно для openvpn
lxc.cgroup.devices.allow = c 10:200 rwm
Для fuse устройства:
lxc.mount.entry = /dev/fuse dev/fuse none bind,create=file
Для ppp устройства (для работы ppp требуется CAP_NET_ADMIN):
lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file
Все операции по созданию ключей и сертификатов можно выполнить с помощью утилиты openssl. Однако проще воспользоваться специально созданной для этого программой Easy-RSA, которая использует openssl для выполнения действий с ключами и сертификатами.
Ранее утилита Easy-RSA поставлялась вместе с OpenVPN, но теперь это отдельный проект.
Все операции с удостоверяющим центром и сертификатами можно (и нужно) проводить от имени непривилегированного пользователя.
$ ./easyrsa init-pki
На втором шаге с помощью команды build-ca создайте удостоверяющий центр CA:
$ ./easyrsa build-ca