15:38

Q4OS 3.11

И это всё МОЁ

Q4OS - это дистрибутив Linux для настольных компьютеров на основе Debian, разработанный для обеспечения классического пользовательского интерфейса (Trinity) или более современного рабочего стола Plasma. Не требователен к системным ресурсам.


Выпуски Q4OS, основанные на Debian Stable, являются LTS-версиями и поддерживаются обновлениями в течение 5 лет.


Новая серия 3.11 получает все исправления и полезности из недавнего обновления Debian Buster 10.4, критических исправлений безопасности и исправлений ошибок, а также содержит несколько улучшений, характерных для Q4OS.


Самое главное, что в списке приложений центра программного обеспечения Q4OS появилось множество новинок. Национальная конфигурация раскладки клавиатуры была улучшена. В дополнение к вышесказанному, в Q4OS 3.11 добавлены другие интересные усовершенствования, такие как выделенные установщики для браузеров Firefox 76 и Palemoon, а также накопительное обновление, охватывающее все изменения со времени предыдущей стабильной версии Q4OS 3 Centaurus.









 , ,








И это всё МОЁ

По ссылке сравнение Cor и Moose. Пример кода:


class Point {
has ( $x, $y ) :reader :writer :new :isa(Int);

method clear () {
( $x, $y ) = ( 0, 0 );
}
}

class Point3D isa Point {
has $z :reader :writer :new :isa(Int);

method clear () {
$self->next::method;
$z = 0;
}
}









 ,








И это всё МОЁ

Здравствуйте всем!
Пытался установить pgadmin4 на fedora 32,
все делал по инструкции.
Когда пытаюсь запустить выдает ошибку:


[root@localhost fred]# sudo python3 /usr/lib/python3.8/site-packages/pgadmin4-web/setup.py                    Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/pgadmin4-web/setup.py", line 413, in <module>
setup_db()
File "/usr/lib/python3.8/site-packages/pgadmin4-web/setup.py", line 347, in setup_db
app = create_app()
File "/usr/lib/python3.8/site-packages/pgadmin4-web/pgadmin/__init__.py", line 400, in create_app
driver.init_app(app)
File "/usr/lib/python3.8/site-packages/pgadmin4-web/pgadmin/utils/driver/__init__.py", line 40, in init_app
DriverRegistry.load_drivers()
File "/usr/lib/python3.8/site-packages/pgadmin4-web/pgadmin/utils/driver/registry.py", line 88, in load_drivers
module = import_module(module_name)
File "/usr/lib64/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/usr/lib/python3.8/site-packages/pgadmin4-web/pgadmin/utils/driver/psycopg2/__init__.py", line 19, in <module>
import psycopg2
File "/usr/lib64/python3.8/site-packages/psycopg2/__init__.py", line 51, in <module>
from psycopg2._psycopg import ( # noqa
ImportError: /usr/lib64/python3.8/site-packages/psycopg2/_psycopg.cpython-38-x86_64-linux-gnu.so: undefined symbol: PQencryptPasswordConn


psycopg2 вроде установлен.









 , ,








И это всё МОЁ

Имеется ОС Rhel 8.1 у которой по умолчанию:


shmmax - 18014398509465599 kbytes 
shmall -18014398509481980 kbytes


в тоже время по рекомендациям zabbix и данным из Интернета по настройке MySQL эти значения должны быть значительно ниже. Нужно ли оставлять эти значения по умолчанию?









 








И это всё МОЁ

Поделитесь лучшими практиками по сборке облака. Есть 4 физических сервера dell r820 и r620 по 2 каждого.









 ,








И это всё МОЁ

Имеется ОС Rhel 8.1 у которой по умолчанию:


shmmax - 18014398509465599 kbytes 
shmall -18014398509481980 kbytes



в тоже время по рекомендациям zabbix и данным из Интернета по настройке MySQL эти значения должны быть значительно ниже. Нужно ли оставлять эти значения по умолчанию?









 








И это всё МОЁ

Проблема заключалась в том, что новые окна в мультимониторном варианте могли появляться на самом левом экране вместо основного.


Это решается следующим образом:


Параметры системы => Рабочая среда => Диспетчер окон => Поведение окон => Вкладка «Дополнительно».
Под меткой «Размещение нового окна», в комбобоксе выбрать «Под мышью»









 ,








И это всё МОЁ

Давненько я не трогал PHP...

И вот сейчас наткнулся на такую вещь. Следующий простейший код не срабатывает:

<?php

$text='Thе best wоmеn fоr sеx in уour town: jtbtigers.com/272a1';
$stopWord='for sеx';

if(strpos($text, $stopWord)!==false)
{
echo 'Block!';
}

?>

То есть, в консоль строка «Block» не выводится.

Если же $stopWord сделать 'for' или 'sex', то поиск срабатывает.

Читаю документацию по strpos() - ничего про пробельные символы не сказано. Вроде как функция должна тупо находить подстроку. Но не находит. Почему?








 , , ,








И это всё МОЁ

... точнее, только одного, зато в госорганизации! И если всё будет «пучком», то будет и больше!

Преамбула: нужно зарегистрировать врачей в одной организации на госпортале, чтобы вносить данные о том, кто к какому врачу записался, и т.д., и т.п. Естественно, всё через браузер, как и положено в 2020 году. И естественно, сам портал состоит из «хипстерского» JS чуть менее, чем наполовину. Ещё и глючит во всех браузерах, кроме «хрома». А «семпроны» середины «нулевых» с 2
гигабайтами (максимум) «оперативки» ничего младше XP принимать не хотят (во всяком случае, 32-битная «семёрка» на них еле-еле ворочалась).

К счастью, выход был, даже два — купить новые компьютеры, либо же установить «линукс» и туда уже Chromium. С чем ваш покорный слуга успешно справился, и теперь 32-битный Debian с Xfce служит во благо медицины.








 ,








И это всё МОЁ

Доброго дня! Почему может крайне медленно работать общая папка. Общая папка создана в Windows 7. Клиент linux mint или debian, на обоих одинаково медленно. Папку монтирую mount.cifs. Переходишь в неё в командной строке или mc и происходить это по 30 секунд-минуте. Win 7 на виртуалке. Хотя, есть аналогичная ось на этом же серваке, там всё работает быстро.









 








И это всё МОЁ

Оригинал статьи здесь


Настройка Firecracker на CentOS 7


В этой статье хочу рассказать вам настроить Firecracker на CentOS 7.


Firecracker - это технология виртуализации с открытым исходным кодом, предназначенная для создания и управления защищенными, мультитенантными контейнерными и функциональными сервисами, обеспечивающими бессерверные операционные модели. Firecracker запускает рабочие нагрузки в облегченных виртуальных машинах, называемых microVMs, которые сочетают свойства безопасности и изоляции, предоставляемые технологией аппаратной виртуализации, со скоростью и гибкостью контейнеров.


План работ



  • Вступительное слово;

  • Обсуждение архитекутуры;

  • Сборка пакета;

  • Сборка ядра;

  • Сборка корневой системы;

    • Сборка CentOS;

    • Сборка Debian;

    • Сборка Ubuntu;



  • Создание параметризированной службы systemd;

  • Шаблон виртуальной машины;

  • Настройка сети;

  • Настройка firewalld;

  • Запуск виртуальной машины;

  • Автоматизация действий;

  • Примеры:

    • CentOS;

    • Debian;

    • Ubuntu;



  • Дальнейшие действия.


Вступительное слово


АВТОР ПРЕДОСТАВЛЯЕТ СТАТЬЮ “КАК ЕСТЬ” БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. ВЕСЬ РИСК, СВЯЗАННЫЙ С КАЧЕСТВОМ И ЭФФЕКТИВНОСТЬЮ СТАТЬИ, ЛЕЖИТ НА ВАС. ЕСЛИ СОДЕРЖАНИЕ СТАТЬИ ОКАЖЕТСЯ НЕВЕРНЫМ, ВЫ БЕРЕТЕ НА СЕБЯ РАСХОДЫ НА ВСЕ НЕОБХОДИМОЕ ОБСЛУЖИВАНИЕ, РЕМОНТ ИЛИ ИСПРАВЛЕНИЕ.


Обсуждение архитекутуры


Firecracker - это очень простой гипервизор, для запуска виртуальной машины необходимо всего 3 файла:



  • Бинарный файл firecracker;

  • Специально собранное ядро Linux;

  • Сборка корневой системы.


Данная статья описывает как «правильно приготовить» firecracker для ОС RHEL/CentOS, в частности для 7 версии. Будут использоваться только стандартные пакеты и утилиты, не будет никаких «костылей».


Для firecracker будет собран пакет RPM, с соблюдением требований, пакет не должен влиять на другие пакеты, затирать / изменять файлы.


TODO - Планируется внедрение политик Selinux для более безопасной эксплуатации.


Наше дерево файлов и каталогов:


ПутьОписаниеTODO
/usr/lib/systemd/system/[email protected]Параметризированная служба systemdСделано
/etc/firecrackerКаталог для хранения конфигурации виртуальных машинСделано
/usr/sbin/firecrackerБинарный файлСделано
/usr/sbin/jailerБинарный файлСделано
/usr/share/firecracker/scriptsКаталог для хранения дополнительных скриптовСделано
/var/lib/firecrackerКаталог для хранения данныхСделано
/var/lib/firecracker/kernelsКаталог для хранения ядер LinuxСделано
/var/lib/firecracker/rootfsКаталог для хранения корневых системСделано
/var/lib/firecracker/microvmКаталог для хранения виртуальных машинСделано
/var/lib/firecracker/metricsКаталог для хранения метрик виртуальных машинНе сделано
/var/run/firecrackerКаталог для socket-файловСделано
/var/log/firecracker/Каталог для логовСделано
/etc/selinuxКаталог для файлов SelinuxНе сделано
/etc/firewalldКаталог для файлов FirewalldНе сделано

Запуск виртуальных машин будет происходить через параметризированную службу [email protected]. Рассмотрим пример, если нам нужно запустить виртуальную машину с именем testcentos, то нам нужны будут:


ТипСодержание
Служба systemd[email protected]
Файл конфигурации/etc/firecracker/testcentos.json
ROOTFS/var/lib/firecracker/microvm/testcentos.ext4

Сборка пакета


Предполагаю, что у вас уже настроено рабочее окружение для сборки пакетов. Если нет, то вы можете ознакомится здесь, здесь и здесь.
Также предполагаю, что у вас уже есть опыт работы с RHEL и работа с пакетами у вас не вызывает трудностей.


Для сборки пакета нам нужно скачать бинарные файлы с github - firecracker, jailer


wget github.com/firecracker-microvm/firecracker/rele...

mv ./firecracker-v0.21.1-x86_64 ~/rpmbuild/SOURCES/firecracker
chmod a+x ~/rpmbuild/SOURCES/firecracker

wget github.com/firecracker-microvm/firecracker/rele...
mv jailer-v0.21.1-x86_64 rpmbuild/SOURCES/jailer
chmod a+x ~/rpmbuild/SOURCES/jailer


Создадим параметризированную службу systemd


cat<<EOF | tee rpmbuild/SOURCES/[email protected]
[Unit]
Description=Firecracker starting microvm %I
After=network.target

[Service]
PrivateTmp=true
Type=simple
PIDFile=/var/run/firecracker/%i.pid
ExecStartPre=-/bin/rm /var/run/firecracker/%I.socket
ExecStart=/usr/sbin/firecracker --api-sock /var/run/firecracker/%I.socket --config-file /etc/firecracker/%I.json

[Install]
WantedBy=multi-user.target
EOF


Создадим шаблон spec-файл для сборки пакета


rpmdev-newspec rpmbuild/SPECS/firecracker.spec


Шаблон Spec-файла выглядит так:


Name:           firecracker
Version:
Release: 1%{?dist}
Summary:

License:
URL:
Source0:

BuildRequires:
Requires:

%description


%prep
%setup -q


%build
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
%make_install


%files
%doc



%changelog


Теперь файл нужно привести к следующему виду:


Name:           firecracker
Version: v0.21.1
Release: 1%{?dist}
Summary: Open source virtualization technology

License: Apache License 2.0
URL: github.com/firecracker-microvm/firecracker
Source0: github.com/firecracker-microvm/firecracker/rele...
Source1: github.com/firecracker-microvm/firecracker/rele...
Source2: [email protected]
BuildArch: x86_64

BuildRequires: systemd

Requires(post): systemd systemd-sysv chkconfig
Requires(preun): systemd
Requires(postun): systemd

%description
Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers.

%build

%install

rm -rf %{buildroot}

mkdir -p %{buildroot}%{_sbindir} \
%{buildroot}%{_var}/lib/firecracker/{kernels,rootfs,microvm,metrics} \
%{buildroot}%{_var}/run/firecracker \
%{buildroot}%{_var}/log/firecracker \
%{buildroot}%{_sysconfdir}/firecracker \
%{buildroot}%/usr/share/firecracker/scripts

install -d -m 0755 %{buildroot}/etc/firecracker
install -d -m 0755 %{buildroot}/usr/share/firecracker
install -d -m 0755 %{buildroot}/usr/share/firecracker/scripts
install -d -m 0755 %{buildroot}/var/lib/firecracker
install -d -m 0755 %{buildroot}/var/lib/firecracker/kernels
install -d -m 0755 %{buildroot}/var/lib/firecracker/rootfs
install -d -m 0755 %{buildroot}/var/lib/firecracker/microvm
install -d -m 0755 %{buildroot}/var/lib/firecracker/metrics
install -d -m 0755 %{buildroot}/var/run/firecracker
install -d -m 0755 %{buildroot}/var/log/firecracker

install -m 0755 %{SOURCE0} %{buildroot}/%{_sbindir}/firecracker
install -m 0755 %{SOURCE1} %{buildroot}/%{_sbindir}/jailer

mkdir -p %{buildroot}%{_unitdir}
install -m644 %{SOURCE2} %{buildroot}%{_unitdir}

%clean
rm -rf %{buildroot}

%post
%systemd_post [email protected]

%preun
%systemd_preun [email protected]

%postun
%systemd_postun_with_restart [email protected]

%files
%defattr(-,root,root,-)
%dir /etc/firecracker
%dir /usr/share/firecracker
%dir /usr/share/firecracker/scripts
%dir /var/lib/firecracker
%dir /var/lib/firecracker/kernels
%dir /var/lib/firecracker/rootfs
%dir /var/lib/firecracker/microvm
%dir /var/lib/firecracker/metrics
%dir /var/run/firecracker
%dir /var/log/firecracker
%{_sbindir}/firecracker
%{_sbindir}/jailer
%{_unitdir}/[email protected]
%doc



%changelog
* Mon May 18 2020 Nurmukhamed Artykaly <[email protected]> v0.21.1-1
- Initial spec file


Собираем RPM-пакет


spectool -g -R ~/rpmbuild/SPECS/firecracker.spec
rpmbuild -bs ~/rpmbuild/SPECS/firecracker.spec
sudo mock ~/rpmbuild/SRPMS/firecracker-v0.21.1-1.el7.src.rpm


Готовый пакет будет здесь


ll /var/lib/mock/epel-7-x86_64/result/
total 2800
-rw-rw-r-- 1 root mock 9792 May 18 16:03 build.log
-rw-r--r-- 1 root mock 1850581 May 18 16:03 firecracker-v0.21.1-1.el7.src.rpm
-rw-r--r-- 1 root mock 914196 May 18 16:03 firecracker-v0.21.1-1.el7.x86_64.rpm
-rw-rw-r-- 1 root mock 1568 May 18 16:03 hw_info.log
-rw-rw-r-- 1 root mock 16450 May 18 16:03 installed_pkgs.log
-rw-rw-r-- 1 root mock 56517 May 18 16:03 root.log
-rw-rw-r-- 1 root mock 847 May 18 16:03 state.log


Можем установить пакет


sudo yum localinstall /var/lib/mock/epel-7-x86_64/result/firecracker-v0.21.1-1.el7.x86_64.rpm



Теперь созданный пакет можем поместить в локальный репозиторий, поставить цифровую подпись, отслеживать изменения, своевременно обновлять пакеты на машинах.


Сборка ядра


Нам понадобится ядро Linux. Варианты:



Разберем второй вариант.


По данной ссылке подготовим рабочее окружение и загрузим последнею версию ядра.


sudo yum install flex flex-devel bison bison-devel ncurses-devel make gcc bc openssl-devel elfutils-libelf-devel rpm-build

wget cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6....
tar xvf linux-5.6.13.tar.xz

cd linux-5.6.13
curl raw.githubusercontent.com/firecracker-microvm/f... -o .config

make menuconfig


Ничего не выбираем, просто сохраняем конфиг как .config


make vmlinux


Скопируем полученный файл в каталог /var/lib/firecracker/kernels/


sudo cp ./vmlinux /var/lib/firecracker/kernels/vmlinux-5.6.13


Теперь мы можем организовать целый каталог ядер, который может быть использован под различные задачи с различными требованиями.


Сборка корневой системы


Нам понадобится корневая система. Варианты:



Разберем второй вариант.


Сборка корневой системы CentOS


В данной сборке будет минимальная система CentOS, включая systemd-networkd и openssh-server. Эти пакеты необходимы, чтобы виртуальная машина запускалась с настроенной сетью и серверов openssh для удаленного доступа.


Подготовим рабочее окружение


cd
mkdir myrootfs
cat<<EOF | tee chroot-centos7.repo
[centos7-chroot-base]
name=CentOS-7-Base
baseurl=mirror.centos.org/centos/7/os/x86_64
gpgcheck=0
[centos7-chroot-epel]
name=Extra Packages for Enterprise Linux 7
baseurl=dl.fedoraproject.org/pub/epel/7/x86_64
gpgcheck=0
EOF


Установим минимальный набор пакетов


sudo yum -y -c chroot-centos7.repo --disablerepo=* --enablerepo=centos7-chroot-base --enablerepo=centos7-chroot-epel --disableplugin=* --installroot=/home/nurmukhamed/myrootfs install \
bash \
bash-completion \
vim-minimal \
yum \
iproute \
iputils \
rootfiles \
sudo \
systemd-networkd \
openssh-server \
openssh


Подготовка к chroot


sudo mount --bind /dev ~/myrootfs/dev
sudo mount --bind /dev/pts ~/myrootfs/dev/pts
sudo mount --bind /sys ~/myrootfs/sys
sudo mount --bind /proc ~/myrootfs/proc
sudo cp /etc/resolv.conf ~/myrootfs/etc/


Chroot


sudo bash
cd ~/myrootfs
chroot ~/myrootfs



Внутри chroot


echo "7" > /etc/yum/vars/releasever
echo "x86_64" > /etc/yum/vars/basearch

yum update -y

yum clean all
rm -rf /boot /var/cache/yum/*

systemd-tmpfiles --create --boot
rm -f /var/run/nologin

echo 'firecracker' > /etc/yum/vars/infra

awk '(NF==0&&!done){print "override_install_langs='$LANG'\ntsflags=nodocs";done=1}{print}' \
< /etc/yum.conf > /etc/yum.conf.new
mv /etc/yum.conf.new /etc/yum.conf

rm -f /usr/lib/locale/locale-archive

#Setup locale properly
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
/bin/date +%Y%m%d_%H%M > /etc/BUILDTIME

# Create folder for systemd-networkd service
mkdir /etc/systemd/network

:> /etc/machine-id

exit


Отключаем разделы


sudo rm ~/myrootfs/etc/resolv.conf
sudo umount ~/myrootfs/dev/pts
sudo umount ~/myrootfs/dev
sudo umount ~/myrootfs/sys
sudo umount ~/myrootfs/proc


Чистка


sudo rm -rf ~/myrootfs/boot
sudo rm -rf ~/myrootfs/var/cache/yum/*
sudo rm -f ~/myrootfs/tmp/ks-sсript*
sudo rm -rf ~/myrootfs/var/log/*
sudo rm -rf ~/myrootfs/tmp/*
sudo rm -rf ~/myrootfs/etc/sysconfig/network-scripts/ifcfg-*


Произведем упаковку образа


sudo -Jcvf /var/lib/firecracker/rootfs/centos7-$(/bin/date +%Y%m%d).tar.xz -C /home/nurmukhamed/myrootfs .


Теперь у нас имеется образ ОС CentOS, который мы можем развернуть в любой момент.


TODO - Сборка корневой системы Debian


TODO - Сборка корневой системы Ubuntu


Создание параметризированной службы systemd


На данный момент у нас имеются:



  • Пакет firecracker;

  • Собранное ядро linux 5.6.13;

  • Собранная корневая система ОС CentOS 7.


Теперь мы можем приступить к запуску первой виртуальной машины в firecracker.


Имя виртуальной машины: testcentos


sudo systemctl enable [email protected]


Наша параметризированная служба теперь будет искать файл /etc/firecracker/testcentos.json.
В этом файле будут описаны параметры виртуальной машины


Шаблон виртуальной машины


Параметры нашей виртуальной машины:


ПараметрЗначение
CPU2
RAM1024MB
Hyper-Threadfalse
Kernel Path/var/lib/firecracker/kernels/vmlinux-5.6.13
RootFS Image/var/lib/firecracker/rootfs/centos7-20200518.tar.xz
RootFS Path/var/lib/firecracker/microvm/testcentos.ext4
RootFS Size8GB
NICeth0
IP-address172.16.0.2

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


sudo dd if=/dev/zero of=/var/lib/firecracker/microvm/testcentos.ext4 bs=1M count=8192
sudo mkfs.ext4 /var/lib/firecracker/microvm/testcentos.ext4
sudo mkdir /tmp/testcentos
sudo mount -o loop /var/lib/firecracker/microvm/testcentos.ext4 /tmp/testcentos
sudo tar -Jxvf /var/lib/firecracker/rootfs/centos7-20200518.tar.xz -C /tmp/testcentos



Нужно сгенерировать пароль пользователя root. Установим пароль как «MySecretPassword».


sudo rm /tmp/testcentos/etc/shadow*

password=$(python -c "import random,string,crypt;
randomsalt = ''.join(random.sample(string.ascii_letters,8));
print crypt.crypt('MySecretPassword', '\$6\$%s\$' % randomsalt)";)

cat<<EOF| sudo tee /tmp/testcentos/etc/shadow
root:${password}:18353:0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:18400::::::
dbus:!!:18400::::::
EOF

cat<<EOF| sudo tee /tmp/testcentos/etc/shadow-
root:${password}:18353:0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:18400::::::
dbus:!!:18400::::::
EOF

sudo chown root:root /tmp/testcentos/etc/shadow*
sudo chmod 0000 /tmp/testcentos/etc/shadow*


Настройки сетевой карты


cat<<EOF | sudo tee /tmp/testcentos/etc/systemd/network/20-wired.network
[Match]
Name=eth0

[Network]
Address=172.16.0.2/24
Gateway=172.16.0.1
DNS=8.8.8.8
EOF


sudo umount /tmp/testcentos
sudo rmdir /tmp/testcentos


Образ развернут, теперь нужна конфигурация виртуальной машины. Наша тестовая конфигурация будет выглядет так:


macaddress=$(echo 00:60:2F:$[RANDOM%10]$[RANDOM%10]:$[RANDOM%10]$[RANDOM%10]:$[RANDOM%10]$[RANDOM%10])
cat<<EOF | sudo tee /etc/firecracker/testcentos.json
{
"boot-source": {
"kernel_image_path": "/var/lib/firecracker/kernels/vmlinux-5.6.13",
"boot_args": "console=ttyS0 reboot=k panic=1 pci=off"
},
"drives": [
{
"drive_id": "rootfs",
"path_on_host": "/var/lib/firecracker/microvm/testcentos.ext4",
"is_root_device": true,
"is_read_only": false
}
],
"machine-config": {
"vcpu_count": 2,
"mem_size_mib": 1024,
"ht_enabled": false
},
"network-interfaces": [
{
"iface_id": "eth0",
"guest_mac": "${macaddress}",
"host_dev_name": "testcentos"
}
],
"actions": {
"action_type": "InstanceStart"
}
}
EOF


Также нам понадобится генератор MAC-адресов для генерации случайных MAC-адресов. В данной статье я не буду проверять на уникальность полученные адреса. А вы должны!


Конфигурация сетевой карты будет далее.


Настройка сети


Более подробно настройка сети для firecracker приведена здесь.


sudo ip tuntap add testcentos mode tap
sudo ip addr add 172.16.0.1/24 dev testcentos
sudo ip link set testcentos up


Настройка firewalld


Используйте firewalld, забудьте про iptables править вручную.


sudo firewall-cmd --new-zone=testcentos --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=testcentos --change-interface=testcentos
sudo firewall-cmd --zone=testcentos --add-service=ssh
sudo firewall-cmd --zone=public --add-masquerade


В данной конфигурации, настройки firewalld будут работать до перегрузки системы.


Запуск виртуальной машины


sudo systemctl start [email protected]


В случае ошибки, можно посмотреть логи системы


sudo journalctl -u [email protected]


TODO Автоматизация действий


Теперь у нас появилась возможность для автоматизации наших действий и программно запускать виртуальные машины в firecracker.


Представим, что у нас имеется рабочий CI/CD, например, Gitlab. Тогда мы можем добавить в него еще 3 pipeline:



  • Сборка ядер, по мере выхода новых ядер или исправления критических уязвимостей;

  • Сборка образов корневых систем;

  • Создание виртуальной машины с заданными параметрами.


TODO Примеры:


TODO CentOS


TODO Debian


TODO Ubuntu


TODO Дальнейшие действия.









 , ,








И это всё МОЁ






В целом сейчас система допилена красношапками до рабочего состояния, даже для десктопа.


Скришоты






















>>> Просмотр
(1920x1200,
1054 Kb
)










 ,








И это всё МОЁ

Привет всем. Установил Arch, alsa, pulseaudio. Материнка Gigabyte 970A-DS3P. Нет звука - не определяет колонки. Как пофиксить?









 ,








И это всё МОЁ

Реально ли сделать такое повреждение памяти, что оно затронет разделяемую библиотеку и, следовательно, все приложения, которые с ней работают?








 ,








И это всё МОЁ
И это всё МОЁ

perf: interrupt took too long (4943 > 4927), lowering kernel.perf_event_max_sample_rate to 40250 [SOLVED]
Ubuntu 20.04
Решил создать на заметку кто еще борется с этим решается
sudo modprobe модуль ядра

можно просто пошарить modprobe i2c- и жать TAB или sudo modprobe i2c- и прожимать TAB ну и lsmod помогает посмотреть загруженные в системе модули.

полезные команды из всяких статей:

sudo lspci -s 0000:00:1f.3 -vv -xxx -k
inxi -F or sudo inxi -F
cat /proc/interrupts
sudo i2cdetect -y 0

sudo vim /etc/modules-load.d/modules.conf

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-algo-bit
i2c-algo-pca
i2c-i801
i2c-smbus
i2c-hid
i2c-isch
i2c-ismt
i2c-scmi

это так от балды добавил

ehci-fsl
lpc_sch
~

sudo apt install r8168

/etc/default/grub это скромная выдержка из граба моего:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="acpi=force acpi_enforce_resources=lax acpi_osi=Linux acpi_osi='!Windows 2012' drm.vblankoffdelay=1 radeon.dpm=1 radeon.audio=1 i915.i915_enable_fbc=1 i915.i915_enable_rc6=1 usbcore.autosuspend=-1 hpet=force clocksource=hpet"
#these are emergency options below:
#irqpoll pci=ioapicreroute,routeirq,pcie_bus_peer2peer"

inxi -F

System:    Host: sergey-desktop Kernel: 5.4.0-31-generic x86_64 bits: 64 Desktop: Budgie 10.5.1 
Distro: Ubuntu 20.04 LTS (Focal Fossa)
Machine: Type: Desktop Mobo: Intel model: DG41TY v: AAE47335-301
serial: <superuser/root required> BIOS: Intel v: TYG4110H.86A.0045.2010.0706.1910
date: 07/06/2010
CPU: Topology: Dual Core model: Intel Core2 Duo E4500 bits: 64 type: MCP L2 cache: 2048 KiB
Speed: 1200 MHz min/max: 1200/2200 MHz Core speeds (MHz): 1: 1200 2: 1200
Graphics: Device-1: AMD Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] driver: radeon v: kernel
Display: x11 server: X.Org 1.20.8 driver: ati,radeon unloaded: fbdev,modesetting,vesa
resolution: 1920x1080~60Hz
OpenGL: renderer: AMD CAICOS (DRM 2.50.0 / 5.4.0-31-generic LLVM 9.0.1)
v: 4.6 Mesa 20.0.4
Audio: Device-1: Intel NM10/ICH7 Family High Definition Audio driver: snd_hda_intel
Sound Server: ALSA v: k5.4.0-31-generic
Network: Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8168
IF: enp3s0 state: up speed: 100 Mbps duplex: full mac: 00:27:0e:1d:4e:91
Drives: Local Storage: total: 465.76 GiB used: 233.05 GiB (50.0%)
ID-1: /dev/sda vendor: Seagate model: ST3500410AS size: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 233.05 GiB (50.9%) fs: ext4 dev: /dev/sda1
Sensors: System Temperatures: cpu: 43.0 C mobo: N/A gpu: radeon temp: 53 C
Fan Speeds (RPM): N/A
Info: Processes: 241 Uptime: 1h 22m Memory: 3.83 GiB used: 2.50 GiB (65.2%) Shell: bash
inxi: 3.0.38

тут параметры ядра искал:
https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/kerne...

Разметкой Marcdown я так и не понял как там код делать и как ей пользоватся, поэтому набросал так вот по обыкновенному.








 , , , ,








И это всё МОЁ

В свое время я настроил на CentOS 8 у себя zram по рецепту с ArchWiki: https://wiki.archlinux.org/index.php/Improving_performance#Swap_on_zRAM_using...

Это сработало, но потом я решил перейти на swap-file. Поэтому я удалил все файлы

/etc/modules-load.d/zram.conf
/etc/modprobe.d/zram.conf
/etc/udev/rules.d/99-zram.rules
и вычистил /etc/fstab от записей с zram, после чего выполнил
systemctl daemon-reload

Но при загрузке эти 4 zram продолжают создаваться.

[root@localhost ~]# journalctl | grep zram
May 19 10:23:04 localhost.localdomain kernel: zram: Added device: zram0
May 19 10:23:04 localhost.localdomain kernel: zram: Added device: zram1
May 19 10:23:04 localhost.localdomain kernel: zram: Added device: zram2
May 19 10:23:04 localhost.localdomain kernel: zram: Added device: zram3
May 19 10:23:04 localhost.localdomain systemd-modules-load[286]: Inserted module 'zram'
May 19 10:23:12 localhost.localdomain systemd[1]: sys-devices-virtual-block-zram0.device: Failed to enqueue SYSTEMD_WANTS= job, ignoring: Unit [email protected] not found.
May 19 10:23:12 localhost.localdomain systemd[1]: sys-devices-virtual-block-zram3.device: Failed to enqueue SYSTEMD_WANTS= job, ignoring: Unit [email protected] not found.
May 19 10:23:12 localhost.localdomain systemd[1]: sys-devices-virtual-block-zram1.device: Failed to enqueue SYSTEMD_WANTS= job, ignoring: Unit [email protected] not found.
May 19 10:23:12 localhost.localdomain systemd[1]: sys-devices-virtual-block-zram2.device: Failed to enqueue SYSTEMD_WANTS= job, ignoring: Unit [email protected] not found.
[root@localhost ~]# systemctl list-units --type device --all | grep zram
dev-zram0.device loaded active plugged /dev/zram0
dev-zram1.device loaded active plugged /dev/zram1
dev-zram2.device loaded active plugged /dev/zram2
dev-zram3.device loaded active plugged /dev/zram3
sys-devices-virtual-block-zram0.device loaded active plugged /sys/devices/virtual/block/zram0
sys-devices-virtual-block-zram1.device loaded active plugged /sys/devices/virtual/block/zram1
sys-devices-virtual-block-zram2.device loaded active plugged /sys/devices/virtual/block/zram2
sys-devices-virtual-block-zram3.device loaded active plugged /sys/devices/virtual/block/zram3
[root@localhost ~]# ls -la /dev | grep zram
brw-rw----. 1 root disk 253, 0 May 19 10:23 zram0
brw-rw----. 1 root disk 253, 1 May 19 10:23 zram1
brw-rw----. 1 root disk 253, 2 May 19 10:23 zram2
brw-rw----. 1 root disk 253, 3 May 19 10:23 zram3

Как правильно вычистить остатки zram из системы?








 , , , ,








И это всё МОЁ

Загружается система после установки. Ввожу логин root и пароль. Когда нажимаю enter после ввода пароля - просто переходит на новую строку и всё. Пароль точно верный. В чем проблема?









 








И это всё МОЁ
И это всё МОЁ