среда, 3 апреля 2013 г.

клонирование виртуальных машин Proxmox

Добрый день.

 Появилось у меня тут задача, нужно много виртуальных машин в количестве нескольких тысяч.
  Всё это дело я решил реализовать в Proxmox. Установка и конфигурация много где есть и в официальной wiki всё очень добротно описано, по этому пропустим этот шаг.

Как можно создать виртуальные машины. Через кнопку web. Но каждый раз настраивать и устанавливать однотипные машине не целесообразно.


По этому готовые образы дисков и конфигурационных файлов хранятся в директориях (тут это Debian в других могут отличатся), которые можно скопировать и немного подправить и будет однотипная машина.

 Конфигурационный файлы /etc/pve/nodes/v-4-kp20-d1864-85/qemu-server/
Образы   /var/lib/vz/images/







Виртуальным машинам присваиваются уникальные идентификаторы и  директории для образов(вида 100, 102, 103 и т.д.)

Копируем сам образ в новую папку с именем идентификатора. Немного правим конфиг, изменяем путь до образа вида (ide0: local:299/vm-299-disk-1.qcow2,size=3G) .
  Тут папка с образом 299 и образ vm-299-disk-1.qcow2.
Меняем МАК адрес. Всё машина готова.

Но есть одно но, если таких машин нужно сотня или две, или даже больше. То это будет очень утомительное занятие. По этому написал не большой скрипт, который автоматически клонирует и и правит конфиги. Мак адреса он автоматом инкрементирует на еденицу(но не может делать больше 65535 машин, меняет последнии два числа).

 #!/bin/bash
 

conf_pve_vm=/etc/pve/nodes/v-4-kp20-d1864-85/qemu-server/
image_vm=/var/lib/vz/images/


# find mac for copy VM
mac_vm=$(grep -oE "[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}" $conf_pve_vm$1.conf)
start_mac=$mac_vm

start_vm=$(($1 + 1))
while [ $start_vm -le $2 ]; do
#create dir image
mkdir $image_vm$start_vm
#copy image disk
cp $image_vm$1/vm-$1-disk-1.qcow2 $image_vm$start_vm/vm-$start_vm-disk-1.qcow2
sleep 4

#copy conf
cp $conf_pve_vm$1.conf $conf_pve_vm$start_vm.conf
sleep 2

#reconf conf file
# rename path image (весь sed в одну строку)
sed "s/local:$1\/vm-$1-disk-1.qcow2/local:$start_vm\/vm-$start_vm-disk-1.qcow2/g"  \ $conf_pve_vm$start_vm.conf > $conf_pve_vm$start_vm.conf_temp && mv  \ $conf_pve_vm$start_vm.conf_temp $conf_pve_vm$start_vm.conf
sleep 2

#reconf mac adress
mac_number1=$(echo $mac_vm | cut -f1 -d:)
mac_number2=$(echo $mac_vm | cut -f2 -d:)
mac_number3=$(echo $mac_vm | cut -f3 -d:)
mac_number4=$(echo $mac_vm | cut -f4 -d:)
mac_number5=$(echo $mac_vm | cut -f5 -d:)
mac_number6=$(echo $mac_vm | cut -f6 -d:)

new_mac6=$(($(printf "%d\n" 0x$mac_number6) + 1))  # converting numbers  16 > 10
new_mac5=$mac_number5
max_mac=255
echo $new_mac6
if [ "$new_mac6" -gt "$max_mac" ]
then
new_mac5=$(($(printf "%d\n" 0x$mac_number5) + 1))
plus_one_mac=0
new_mac6="00"
fi


new_mac6=$(printf "%x\n" $new_mac6)
b=2
nub_char_mac=${#new_mac6}
if [ "$nub_char_mac" -ne "$b" ] ; then
new_mac6="0$new_mac6"
fi

temp_mac="$mac_number1:$mac_number2:$mac_number3:$mac_number4:$new_mac5:$new_mac6"
sed  "s/$start_mac/$temp_mac/g" $conf_pve_vm$start_vm.conf >  \ $conf_pve_vm$start_vm.conf_tmp && mv  $conf_pve_vm$start_vm.conf_tmp \ $conf_pve_vm$start_vm.conf
sleep 2
mac_vm=$temp_mac
start_vm=$(($start_vm + 1))
done




   Запуск скрипта script.sh 102 450 . 102 это идентификатор той машины которую копируем и 450 это конечная машина.
   Этим скриптом создано было более 1000 машин.


вторник, 26 февраля 2013 г.

Raspberry, wi-fi

     Не большой тест платформы, можно назвать роботом. (Raspberry, колёса, и wi-fi модуль D-link).
 Время автономной работы на батарейках Varta, 4 шт, и связи по wi-fi составило примерно 40 минут. Внутреннее время у него сбилось , видно с чем то синхронизировался а батарей больше нет.
При этом немного покатались и помигали диодами с помощью bash скрипта. Фиксировалось Кроном, пока всё не отвалилось.

cat test_time.txt
Tue Feb 26 01:18:23 UTC 2013
Tue Feb 26 01:21:01 UTC 2013
Tue Feb 26 01:24:01 UTC 2013

Tue Feb 26 21:32:01 UTC 2013
Tue Feb 26 21:36:01 UTC 2013
Tue Feb 26 21:40:01 UTC 2013
Tue Feb 26 21:44:01 UTC 2013
Tue Feb 26 21:48:01 UTC 2013
Tue Feb 26 21:52:01 UTC 2013
Tue Feb 26 21:56:01 UTC 2013
Tue Feb 26 22:00:01 UTC 2013
Tue Feb 26 22:04:02 UTC 2013
Tue Feb 26 22:08:01 UTC 2013

воскресенье, 24 февраля 2013 г.

Простое подключение к wi-fi точке при загрузке системы

Когда есть только консоль а нужно подключение к wi-fi сети. То понадобиться работать руками.

   Сеть wi-fi testss.
   Метод проверки подлинности -  WPA2-personal.
  Шифрование WPA -AES.
   ОС   Debian, Ubuntu.

Подсоединение к сети в ручную.(wpasupplicant пакет для работы с wpa, устанавливаем если нет )
 
iwconfig                                                                                         #Смотрим сетевые интерфейсы
ifconfig wlan0 up                                                                           #Поднимаем wi-fi интерфейс
iwlist wlan0 scan                                                                            #Сканируем пространство на сети
wpa_passphrase testssd passs > /etc/wpa_supplicant/wpa_supplicant.conf      #Генерируем пароль
iwconfig wlan0 essid testssd                                                                              #Подключаемся к сети
wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf #Активируем wpa
iwconfig wlan0                                                                        #Проверям есть ли соединение
dhclient   wlan0                                                                       #Если не получили IP адрес автоматом

Содержимое файла  /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="
testssd"
#psk="12345678"
psk=fe727aa8b64ac9b3f54c72
}


Вот в общем что и нужно было изначально. Всё что ниже записываем в файл /etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
wpa-conf
/etc/wpa_supplicant/wpa_supplicant.conf 

Перезагружаем и проверяем.

Если всё работает и подключаемся, то радуемся. Так как прохождение этапов с добавлением модулей в ядро и танцами с драйверами, мы прошли.
Всем удачи.


Home

      Добрый день.
      Будем на этой страничке вести некоторые заметки IT сферы.
      Так как из за дня в день что то происходит, в виде появления проблем или вопросов, а так же их решения, но нигде это не фиксируется. То теперь мы тут.
      Спасибо за внимание.