RSS
 

Archive for the ‘блог’ Category

Авторизация по DSA ключу для чайников, у которых много серверов

06 Feb

Собственно, генерация ключа разжевана миллионы раз (если лень читать ssh-keygen(1), то можно глянуть тут, например). Далее настает огромная лень – это ж нужно свой id_dsa.pub залить на каждую машинку, вкинуть его в authorized_keys и т.п. В общем, куча ручной работы. Во линуксах есть ssh-copy-id, но во всех дистрибутивах, как я вижу в своем хозяйстве.

Т.к. собственную лень нужно всячески баловать :) написал небольшой скриптец на шелле. Достаточно его и собственный id_dsa.pub (который не секретен, так как публичен) залить какой-нить ресурс – и можно будет ключи распространять чуть ли не на автомате. Подчеркиваю – никакого rocket science, просто быстрый хак на shell. Не забудьте модифицировать под свои условия.

#!/bin/sh

# Use your own params
TMPFILE=`mktemp /tmp/deineka.XXXXXX` || exit 1
AKEYS=$HOME/.ssh/authorized_keys
URL=http://my-site-or-dropbox.etc/securedir/id_dsa.pub

DetectFetch()
{
        if test -x /usr/bin/fetch; then
                fetch="/usr/bin/fetch -o "
        elif test -x /usr/bin/wget; then
                fetch="/usr/bin/wget -O "
        elif test -x /usr/bin/curl; then
                fetch="/usr/bin/curl -o "
        else
                echo "ERROR: no fetch program found."
                exit 1
        fi
}

DetectFetch

echo Fetching key
$fetch $TMPFILE $URL
echo -n Adding to $AKEYS...
if [ ! -d $HOME/.ssh ]; then
   mkdir -p $HOME/.ssh
   chmod 700 $HOME/.ssh
fi

cat $TMPFILE >> $AKEYS
echo done
chmod 600 $AKEYS
rm -f $TMPFILE

Использование простое до неприличия – скачали скрипт, запустили его, удалили его.
p.s. Функцию DetectFetch честно скопировал из инсталлятора продуктов ISPSystem :)

 

Пушок

04 Jan

 

Офонарели

11 Dec

Наша домашне-носимая коллекция фонариков:

 

Хозяйке на заметку – pxelinux и проблемы с localboot

10 Dec

Обычно в конфигурационном файле или в меню pxelinux загрузка с локального диска описывается примерно вот так:

label ^B) Boot from first hard disk (default)
localboot 0x80

Сегодня натолкнулся на зависание одной из машинок при попытке отработать такую конструкцию. Как показало изучение списков рассылки и форумов, появление подобной неприятности зависит от железа, версии BIOS и т.п. Решение – использование chain.c32, только не забудьте положить этот файлик из комплекта syslinux на www-сервер (если используете загрузку ipxe->pxelinux.0, как я) или на tftp-сервер.

Работоспособная конструкция:

label ^B) Boot from first hard disk (default)
kernel chain.c32
append hd0 0
 

PXE – незаменимый помощник в ДЦ

04 Dec

Т.к. за день приходится инсталлировать серверы иногда десятками, нам без PXE-загрузки никак. Долгое время мы использовали (и продолжаем пока использовать) noc-ps для автоматической инсталляции, но он не всем устраивает. Захотелось сделать чуть более гибкое решение, особенно с учетом пожеланий наших клиентов и наших внутренних задач.

Несмотря на то, что в интернете масса заметок, посвященных PXE, оказалось все не так уж просто. Точнее – все просто, пока тестируешь конфигурацию на ближайшей виртуальной машинке в ESXi или Proxmox VE: все работает прекрасно. Однако стоит начать работать с реальными железками – начинаются проблемы, т.к. получаем зоопарк не только bootrom’ов, но и всего остального.

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

Общие моменты:

  • минимальное использование TFTP (как правило, только для загрузки undionly.kpxe, т.к. обычно в бутромах нет gpxe/ipxe)
  • ручная или автоматическая установка популярных операционных систем (CentOS/Debian/Ubuntu/FreeBSD), в качестве транспорта – HTTP
  • установка популярных гипервизоров: ESXi 5.0, Citrix Xen Server 6.0, Proxmox VE
  • широкий выбор вспомогательных утилит – Memtest86+, Hardware Detection Tool, Hiren’s Boot CD, System Rescue CD и т.п.

Собственно, инновационных моментов особо в решении нет, а удобство использования – есть. Для затравки – один скриншотик, а в другой раз я расскажу о реальных муках запуска этого простенького решения. Возможно, кто-то наступит на грабли один раз меньше :)

 
 

Switch to our mobile site