Я думаю, что никто не будет спорить с наличием в IT-сообществе трендов на понижение стоимости решений и повышение их эффективности. Под стоимостью при этом понимается как стоимость инфраструктуры и оборудования, так и стоимость обслуживания решения. Мощности — в аренду! Админ — на аутсорс! Решения — только типовые! Вершиной этого «развития» стало «приватное виртуальное облако», — масштабный кластер виртуализации с централизованным управлением, где клиенты могут сами управлять своими виртуальными машинами, их количеством, выделением вычислительных ресурсов под них. А тарифицируется только то, что клиент распределил под свои машины. Почти что фактическое использование ресурсов. И это ещё не все: клиенту нет дела до фактической архитектуры среды виртуализации. Так если выйдет из строя тот сервер, где исполняется его виртуальная машина, то средства управления облаком[…]

Итак, grub не нужен, нам нужны лишь скрипты для автоматизации. Справедливости ради стоит отметить, что распространённости grub’а способствовала именно поддержка мейтейнеров и то, что вспомогательных скриптов для него ими написано море. Вот и нам надо для U-Boot’а тоже. Итак, для начала скрипт, который вызывается после установки пакета с ядром, /etc/kernel/postinst.d/zz-add-u-boot-file: #!/bin/sh -e version=»$1″ uboot_dir=»/mnt/u-boot» part_num=»2″ kernel_string=»ext4load mmc 0:${part_num} \${kernel_addr_r} /boot/vmlinuz-${version}» dtb_string=»ext4load mmc 0:${part_num} \${fdt_addr_r} /usr/lib/linux-image-${version}/\${fdtfile}» initrd_string=»ext4load mmc 0:${part_num} \${ramdisk_addr_r} /boot/initrd.img-${version}» info_string=»echo \»Booting Debian GNU/Linux with kernel ${version}…\»» boot_string=»bootz \${kernel_addr_r} \${ramdisk_addr_r}:\${filesize} \${fdt_addr_r}» dest_file=»${uboot_dir}/${1}.scr» tmp_file=»/tmp/${1}.src.tmp» if [ -e «${dest_file}» ]; then exit 0 fi /bin/echo «${kernel_string} && ${dtb_string} && ${initrd_string} && ${info_string} && ${boot_string}» > ${tmp_file} /usr/bin/mkimage -Cnone -Aarm -Tscript -d${tmp_file} ${dest_file} rm ${tmp_file} exit 0 Обратите внимание, что мы предполагаем загрузку[…]

Однажды сильно припёрло написать свой dhcp-сервер. Для обслуживания кучи relay’ев. Функционал полный был даже не нужен. Точнее так: нужно было, чтобы он до конца не был реализован. Например, не нужно было сохранять время аренды адреса, но нужно было назначать параметры клиентам в зависимости от номера vlan’а, откуда к нам перенаправлен запрос. И решено было всё это написать на perl, благо даже модуль есть специальный — Net::DHCP::Packet. Так как, фактически, соотношение номера vlan’а и сетевая адресация происходили в определённой известной зависимости, своя реализация dhcp-сервера была выполнена в формате «запустил и забыл». Никакой необходимости в изменении конфигурации на лету. Просто незачем менять конфигурацию. А ещё отсутствовал ввод-вывод на диск (не надо было писать журнал), так что он (dhcp-сервер) как был запущен, так[…]

Сижу, смотрю с Вальтером (мой шиншилл) записи документалок на России 24 и думаю о том, что сезон скоро, а я далеко от мотоцикла и друзей… Пора возвращаться домой?)