Показ дописів із міткою how to. Показати всі дописи
Показ дописів із міткою how to. Показати всі дописи

8 лип. 2020 р.

Налаштування Zaborona Help в Vyos

1. Завантажуємо ключі та сертифікати в каталог /config/auth

curl -o /config/auth/zaborona-help.crt https://zaborona.help/zaborona-help.crt
curl -o /config/auth/zaborona-help.key https://zaborona.help/zaborona-help.key
curl -o /config/auth/zaborona-help-ca.crt https://zaborona.help/ca.crt

2. Створюємо новий openvpn інтерфейс в режимі клієнта (якщо в системі вже створено інтерфейс "vtun0", введіть інший інтерфейс, наприкалад "vtun1")

set interfaces openvpn vtun0 mode client
set interfaces openvpn vtun0 hash sha1
set interfaces openvpn vtun0 encryption aes128
set interfaces openvpn vtun0 remote-port 1194
set interfaces openvpn vtun0 remote-host vpn.zaborona.help
set interfaces openvpn vtun0 openvpn-option "--nobind"
set int openvpn vtun0 openvpn-option "--tun-mtu 1500"
set int openvpn vtun0 openvpn-option "--mssfix 1450"
set int openvpn vtun0 openvpn-option "--sndbuf 524288"
set int openvpn vtun0 openvpn-option "--rcvbuf 524288"
set int openvpn vtun0 openvpn-option "--verb 3"
set interfaces openvpn vtun0 tls cert-file /config/auth/zaborona-help.crt
set interfaces openvpn vtun0 tls key-file /config/auth/zaborona-help.key
set interfaces openvpn vtun0 tls ca-cert-file /config/auth/zaborona-help-ca.crt

3. Створюємо правило NAT (якщо в системі вже створено правило NAT за номером "1", введіть інший номер, наприклад "10")

set nat source rule 1 description --==ZABORONA==--
set nat source rule 1 outbound-interface vtun0
set nat source rule 1 translation address masquerade

4. Активуємо конфігурацію та зберігаємо її

commit
save

13 трав. 2020 р.

Установка модуля мониторинга Host OS в iDrac в Proxmox

Для того чтобы iDrac отображал информацию о хосте необходимо доустановить в операционной системе два .deb пакета. Так как Dell в инсталляторе модуля не поддерживает ОС Debian, на базе которой построен Proxmox, пакеты можно установить вручную взяв их предварительно из инсталляционного образа iDRAC Service Module for Linux. Нужны пакеты:

dcism-3.5.1-1949.ubuntu18.deb и dcism-osc-5.0.0-41.ubuntu18.deb

Нужно положить их в один каталог после чего выполнить команды в последовательности описанной ниже:

apt-get install libcurl4
dpkg -i dcism-osc-5.0.0-41.ubuntu18.deb
dpkg -i dcism-3.5.1-1949.ubuntu18.deb
systemctl start dcismeng


12 трав. 2020 р.

Настройка изолированного сервера Proxmox после установки


--------------------------------------------------------------
Базовые настройки
--------------------------------------------------------------

При наличии достаточного количества ОЗУ, для уменьшения нагрузки на ЦП отключаем службу KSM

systemctl disable ksmtuned

Отключаем и удаляем раздел Swap, а также раздел Data

swapoff -a
lvremove /dev/pve/swap
lvremove /dev/pve/data

Создаем раздел Swap размером 2 Гб и подключаем его

lvcreate -n swap -L 2G pve
mkswap -L swap /dev/pve/swap
swapon -a

Увеличиваем файловую систему до максимального размера

lvresize -l +100%FREE /dev/pve/root
resize2fs /dev/mapper/pve-root

--------------------------------------------------------------
Ограничение использования Swap
--------------------------------------------------------------

Задаем порог помещения в Swap

sysctl -w vm.swappiness=0
sysctl -p

Переподключаем раздел Swap

swapoff -a
swapon -a

Автоматизируем параметры использования Swap раздела при перезагрузке

nano /etc/sysctl.conf
vm.swappiness = 0

Создаем файл rc.local с запретом неконтролированного помещения данных в Swap

nano /etc/rc.local

Помещаем содержимое скрипта в созданный файл rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# fix for proxmox kernel swappiness problem
for i in $(/usr/bin/find /sys /var/lib 2>/dev/null | /bin/grep slice | grep swappiness) ; do [ -f ${i} ] && /bin/echo 0 > ${i} ; done
exit 0

Делаем файл rc.local исполняемым

chmod +x /etc/rc.local

Создаем файл автозапуска файла rc.local

nano /etc/systemd/system/rc-local.service

Помещаем содержимое скрипта в созданный файл rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
After=pve-cluster.service

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Делаем файл rc.local.service запускаемым при старте системы и и запускаем его вручную

systemctl enable rc-local
systemctl start rc-local.service

--------------------------------------------------------------
Обновление и установка дополнительного ПО
--------------------------------------------------------------

Создаем файл не стабильного репозитория

touch /etc/apt/sources.list.d/pve-no-subscription.list

Заполняем файл репозитория ссылкой

echo 'deb http://download.proxmox.com/debian/pve buster pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Для версии Proxmox 7 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория

sed -i 's/^/#/' /etc/apt/sources.list.d/pve-enterprise.list

Для версии Proxmox 8 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

echo 'deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория ceph (только для версии PVE 8)

sed -i 's/^/#/' /etc/apt/sources.list.d/ceph.list

Обновляем систему

apt-get update
apt-get upgrade
apt-get dist-upgrade

Устанавливаем дополнительное ПО. ifupdown2 нужен для переконфигурирования сетевых интерфейсов без перезапуска сервера.

apt install screen mc nmon iotop ioping iptraf iftop speedometer htop nload ncdu ntfs-3g fio ifupdown2 openvswitch-switch

Очищаем ненужное

apt-get autoremove
apt-get autoclean

--------------------------------------------------------------
Локализация консоли
--------------------------------------------------------------

dpkg-reconfigure locales

Выбираем ru_RU.UTF-8 UTF-8 и нажимаем Ок
В следующем окне выбираем ru_RU.UTF-8 и нажимаем Ок

dpkg-reconfigure console-setup

Выбираем UTF-8 и нажимаем Ок
Выбираем Cyrillic — non-Slavic languages и нажимаем Ок
Выбираем Fixed и нажимаем Ок
Выбираем 8х16 и нажимаем Ок

--------------------------------------------------------------
Отключаем окно предупреждения о отсутствии лицензии
--------------------------------------------------------------

Делаем резервную копию оригинального файла

cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak

Комментируем строку проверяющую лицензию

sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

--------------------------------------------------------------
Скачиваем драйвера Virtio
--------------------------------------------------------------

wget -P /var/lib/vz/template/iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

--------------------------------------------------------------
Настройка NAT и DHCP на хосте
--------------------------------------------------------------

1. Создаем новый Bridge, например vmbr1 и назначаем ему IP адрес, например 192.168.158.1./24
В настройки созданного бриджа добавляем:

hwaddress ether ab:cd:12:34:56:78

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

В конец файла /etc/network/interfaces добавляем следующие правила

#Разрешаем маршрутизацию между интерфейсами
post-up echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем Source NAT из локальной сети 192.168.158.0/24 
post-up iptables -t nat -A POSTROUTING -s '192.168.158.0/24' -o vmbr0 -j MASQUERADE

#Если необходимо, например, пробросить RDP внутрь виртуальной машины с наружного порта 49389 на внутренний 3389. Создаем правила tcp и udp. В правиле указываем интерфейс - бридж на котором назначен внешний IP.
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

#Удаляем правила при остановке
post-down iptables -t nat -D POSTROUTING -s '192.168.158.0/24' -o vmbr0 (enp1s0, eth0 или другие варианты) -j MASQUERADE
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

Устанавливаем dhcp и dns сервер dnsmasq

apt install dnsmasq

Редактируем конфигурационный файл dnsmasq

nano /etc/dnsmasq.conf

Добавляем в конец файла

interface=vmbrl
listen-address=192.168.158.1
dhcp-range=interface:vmbr1,192.168.158.101,192.168.158.199,255.255.255.0,12h
dhcp-option=interface:vmbr1,3,192.168.158.1
dhcp-option=interface:vmbr1,6,192.168.158.1
dhcp-option=interface:vmbr1,15,pve.lan

Перезапускаем dnsmasq /etc/init.d/dnsmasq restart

--------------------------------------------------------------
Инициализация новых дисков в системе
--------------------------------------------------------------

Очистка информации, иницализация в GPT и создание одного раздела типа LVM

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8e00

Очистка информации, иницализация в GPT и создание одного раздела типа Linux Filesystem

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8300

--------------------------------------------------------------
Создание тома LVM Thin
--------------------------------------------------------------

Мне не нравится как Proxmox создает lvm thin через веб интерфейс, поэтому делаю это вручную. lvm thin нужен для работы снепшотов.

Создание физического тома (PV)

pvcreate /dev/sdX1

Создание группы томов (VG)

vgcreate volume_group_name /dev/sdX1

Создание раздела Meta (высчитывается как 1% от емкости дисковой группы)

lvcreate -L XG volume_group_name

Создание раздела свободного пространства для расширения раздела Meta в случае завершения в нем места. Минимум 1 Гб

lvcreate -L XG volume_group_name

Создание раздела Data (оставшееся свободное пространство)

lvcreate -l +100%FREE volume_group_name

Удаление раздела свободного места для расширения раздела Meta

lvremove volume_group_name/lvol1

Пример для диска объемом 6 Тб

pvcreate /dev/sdb1
vgcreate data /dev/sdb1
lvcreate -L 15G data
lvcerate -L 5G data
lvcreate -l +100%FREE data
lvremove data/lvol1

Конвертация раздела LVM в разреженный том (Thin Pool) без дублирующего раздела для Meta - pmspare (Данный раздел позволяет восстановить данные в случае повреждения раздела Meta)

lvconvert --type thin-pool --poolmetadataspare n --poolmetadata volume_group_name/lvol0 volume_group_name/lvol2

Переименование раздела lvm thin

lvrename /dev/volume_group_name/lvol2 /dev/volume_group_name/volume_new_name

Увеличение раздела Meta при отсутствии в нем свободного места

lvextend --poolmetadatasize +1G volume_group_name/volume_name

29 жовт. 2017 р.

Перемещение виртуального диска LVM от одной виртуальной машины к другой в Proxmox



Для того чтобы переместить виртуальный диск LVM от одной виртуальной машины к другой можно использовать команду lvrename

Узнать какой диск нужно переименовать можно командой lvscan

root@host:~# lvscan

ACTIVE '/dev/pve/swap' [7,00 GiB] inherit
ACTIVE '/dev/pve/root' [96,00 GiB] inherit
ACTIVE '/dev/pve/data' [812,26 GiB] inherit
ACTIVE '/dev/pve/vm-102-disk-1' [100,00 GiB] inherit
ACTIVE '/dev/pve/vm-101-disk-1' [40,00 GiB] inherit
ACTIVE '/dev/ssd/vm-101-disk-1' [120,00 GiB] inherit



После чего можно переименовывать (диск предварительно должен быть отключен от ВМ)

root@host:~# lvrename /dev/pve/vm-101-disk-1 /dev/pve/vm-102-disk-2


Результатом будет:

Renamed "vm-101-disk-1" to "vm-102-disk-2" in volume group "pve"

Далее в конфиге старой ВМ удаляем, а конфиге новой ВМ добавляем диск.

24 січ. 2016 р.

Проблема с открытием "больших и тяжелых"сайтов через PPTP VPN настроенного в VyOS

В интернете полно информации как настроить PPTP VPN в VyOS (бывшая Vyatta). Однако, лично у меня, возникла проблема с открытием, через уже установленное VPN соединение, "больших и тяжелых" сайтов, таких как, например, http://speedtest.net.

Для исправления необходимо выполнить в режиме конфигурирования следующую команду:

echo iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu > /config/scripts/vyatta-postconfig-bootup.script

и перезапустить роутер.

4 бер. 2015 р.

Скрипт уточняющий кто жрет Swap

Чтобы узнать кто потребляет Swap делаем:

nano checkswap.sh

Вставляем следующий код:

#!/bin/bash
# Get current swap usage for all running processes
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 )); then
        echo "PID=$PID swapped $SUM KB ($PROGNAME)"
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "Overall swap used: $OVERALL KB"

Альтернативный вариант:


#!/bin/bash
    # find-out-what-is-using-your-swap.sh

SCRIPT_NAME=`basename $0`;
SORT="kb";                 # {pid|kB|name} as first parameter, [default: kb]
[ "$1" != "" ] && { SORT="$1"; }
[ ! -x `which mktemp` ] && { echo "ERROR: mktemp is not available!"; exit; }
MKTEMP=`which mktemp`;
TMP=`${MKTEMP} -d`;
[ ! -d "${TMP}" ] && { echo "ERROR: unable to create temp dir!"; exit; }
>${TMP}/${SCRIPT_NAME}.pid;
>${TMP}/${SCRIPT_NAME}.kb;
>${TMP}/${SCRIPT_NAME}.name;
SUM=0;
OVERALL=0;
    echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`;
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 ));
    then
        echo -n ".";
        echo -e "${PID}\t${SUM}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.pid;
        echo -e "${SUM}\t${PID}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.kb;
        echo -e "${PROGNAME}\t${SUM}\t${PID}" >> ${TMP}/${SCRIPT_NAME}.name;
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;
echo;
echo "Overall swap used: ${OVERALL} kB";
echo "========================================";
case "${SORT}" in
    name )
        echo -e "name\tkB\tpid";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.name|sort -r;
        ;;
    kb )
        echo -e "kB\tpid\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.kb|sort -rh;
        ;;
    pid | * )
        echo -e "pid\tkB\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.pid|sort -rh;
        ;;
esac
rm -fR "${TMP}/";


Выполняем: chmod +x checkswap.sh && ./checkswap.sh


3 бер. 2015 р.

Исправление при предупреждении "File System on Control Domain Full" в XenServer 6.2

Суть предупреждения заключается в том, что дисковое пространство в корневой ФС XenServer подходит к концу. Для очистки мы можем удалить старые журнальные файлы и файлы загруженных обновлений. Для этого логинимся в консоли и выполняем команду:

[root@xen ~] cd /var/patch && rm -rf `ls | grep -v 'applied'` && cd /var/log && rm -rf *.gz

Примечание: В каталоге /var/patch/applied находятся уже примененные обновления для вашего XenServer. Удалять сам каталог applied или его содержимое НЕЛЬЗЯ!



12 вер. 2014 р.

Размер голосового почтового ящика в Elastix

По умолчанию, объем голосового почтового ящика пользователя в Elastix ограничен 100 сообщениями. Если необходимо увеличить этот объем то в настройках Extension в разделе Voicemail & Directory, пункте VM Options необходимо добавить параметр maxmsg=X и сохранить настройки. Где X это количество сообщений для изменяемого Extension.

2 серп. 2014 р.

Доступ не администратору для прослушивания записей звонков в Elastix

По умолчанию в Elastix только администратор может видеть все записи звонков. Для исправления данной ситуации, необходимо:

1. Создать новую группу, например Monitor
2. Выставить права monitoring (записи) и report (CDR) для этой группы
3. Создать нового пользователя без внутреннего номера, например monitor и включить его в эту группу
4. Привести файл /var/www/html/libs/paloSantoACL.class.php к следующему виду:

function isUserAdministratorGroup($username) 

$is=false; 
$idUser = $this->getIdUser($username); 
if($idUser){ 
$arrGroup = $this->getMembership($idUser); 
//$is = array_key_exists('administrator',$arrGroup); 
$is = array_search('1', $arrGroup); 

if(isset($arrGroup['Monitor'])) 
$is=true; 


return $is; 
}

Строками

if(isset($arrGroup['Monitor'])) 
$is=true; 

Мы разрешили группе Monitor полный доступ к записям.


Перезапуск FOP в Elastix из консоли

Если разговор давно завершился, а Flash Operator Panel (FOP) продолжает показывать, что разговор еще идет, то:

1. Логинимся по SSH на Elastix Server
2. В консоли выполняем команду:


[root@srv ~]# amportal stop_fop && amportal start_fop

9 лип. 2014 р.

Скрипт для удаления устаревших голосовых записей в Elastix

Данный скрипт позволяет удалить устаревшие записи из каталога, а также очисть БД от CDR

#!/bin/bash                                                    user="root"                                                    pass="Pa$$w0rd"                                                db="asteriskcdrdb"                                              #Remove sounds from db for last 60 days                         sql="DELETE FROM cdr WHERE cdr.calldate <= DATE_ADD(NOW(), INTERVAL -15 DAY)"
sqlo="OPTIMIZE TABLE cdr"
mysql -u"$user" -p"$pass"  <
use $db;
$sql;                       
$sqlo;
EOF
#Remove sound from db for last 60 days
find /var/spool/asterisk/monitor/* -mtime +15 -exec rm {} \;  

19 трав. 2014 р.

Использование клавиши F8 в виртуальных машинах Windows, работающих в XenServer

Если необходимо попасть в загрузочное меню Windows, вызываемое нажатием клавиши F8 виртуальных машинах Windows, в настройках виртуальной машины в XenCenter необходимо выставить последовательность загрузки ВМ, начиная с "Network", потому как не хватает времени на переключение в консоль после перезагрузки или запуска ВМ.


4 груд. 2012 р.

Перенаправление в Alfresco с порта 8080 на 80

Если на сервере Alfresco больше не планируется размещать другие веб сервисы или дополнительные домены, то для перенаправления c порта по умолчанию 8080 на порт 80 при загрузке достаточно добавить в файл /etc/rc.local строчку:

iptables -A PREROUTING -t nat -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j REDIRECT --to-port 8080

Где: XXX.XXX.XXX.XXX - IP адрес сервера Alfresco.

29 трав. 2012 р.

Установка и настройка Elastix 2.3 в режиме паравиртуализации под управлением Citrix XenServer 5.6 SP2


Процесс установки очень похож на процесс установки Trixbox под управлением CitrixXenServer. Но есть пару "Но"...

1. Скачиваем установочный образ с сайта elastix.org;

2. В Citrix XenCenter создаем новую виртуальную машину типа "Other install Media" и проводим установку стандартным способом. При проведении установки рекомендую сразу правильно прописать FQDN сервера. (Наблюдалась ошибка при старте Web сервера);

3. После успешного окончания процесса развертывания, с помощью Citrix XenCenter делаем загрузку по умолчанию с виртуального жесткого диска и делаем Snapshot, на всякий случай, чтобы не терять время на быстрое восстановление. Входим в систему под пользователем root, настраиваем сеть командой system-config-network, если не настроили в процессе установки и перезагружаем сервер командой reboot;

4. Устанавливаем необходимое ПО командой
yum install kernel-xen.i686 kernel-module-dahdi-xen.i686 kernel-module-rhino-xen.i686 htop.i386 iftop.i386 fail2ban.noarch;

5.  Локализуем систему. Для этого комментируем содержимое файла /etc/sysconfig/i18n и приводим его к виду:

LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

Разлогиниваемся и залогиниваемся по новой чтобы ощутить эффект. Если все делается в консоли XenCenter, то вместо русских букв будут кракозябры. В случае подключения по SSH - все будет нормально. Далее будут производится правки связанные с загрузкой виртуальной машины. Рекомендую на этом этапе сделать снепшот.

6. Удаляем старое ядро командой yum remove kernel.i686  и приводим конфигурационный файл загрузчика /etc/grub.conf следующему виду:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-308.4.1.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-308.4.1.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0
initrd /initrd-2.6.18-308.4.1.el5xen.img
                                                       
7. Пересобираем initrd для ядра Xen:

rm -f /boot/initrd-2.6.18-308.4.1.el5xen.img
mkinitrd --with=xenblk --with=xennet /boot/initrd-2.6.18-308.4.1.el5xen.img 2.6.18-308.4.1.el5xen

8. Конфигурируем доступ к консолям, для этого приводим секцию файла /etc/inittab с вида:

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

к виду:

# Run gettys in standard runlevels
co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav
#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

9. Разрешаем пользователю root подключаться к консоли xvc0 для этого выполняем команду:

echo xvc0 >> /etc/securetty

10. Переводим виртуальную машину из режима полной виртуализации в режим паравиртуализации. Для этого сначала выключите виртуальную машину, а затем в консоли XenServer хоста, на котором она была запущена выполняем следующие команды (в качестве примера виртуальная машина называется elastix):


vm=$(xe vm-list name-label=elastix --minimal)
xe vm-param-set uuid=$vm PV-bootloader=pygrub HVM-boot-policy=
xe vm-param-set uuid=$vm PV-args=utf8
vbd=$(xe vm-disk-list uuid=$vm vdi-params=none --minimal)
xe vbd-param-set uuid=$vbd bootable=true

Закройте и снова откройте XenCenter. Это необходимо для того чтобы мышь начала корректно работать.

11. Извлекаем установочный образ из виртуального привода. В свойствах виртуальной машины, в разделе Boot, выставляем загрузку с Hard Disk. Запускаем виртуальную машину и обновляем XenTools, предварительно установив образ в виртуальный привод, после чего выполняем команды:

mount /dev/xvdd /mnt
/mnt/Linux/install.sh -k
reboot

12. Отключаем лишнее, чтобы не ругалось при старте и запускаем нужное:

chkconfig kudzu off
chkconfig wanrouter off
chkconfig iscsid off
chkconfig iscsi off
chkconfig fail2ban on

13. Обновляем Elastix командой  yum update (Рекомендую предварительно сделать Snapshot, мало ли что...) Перезагружаемся.

14. Подключаем русскую озвучку или по другому "тетю робота" по следующей инструкции.

15. Настраиваем fail2ban согласно следующей инструкции:

Все. Теперь можно полноценно и безопасно использовать, а также управлять этой виртуальной машиной. У кого есть дополнительные идеи - пишите.

П.С. У тех кто активирует встроенный Firewall в Elastix, перестанет работать Flash Operator Panel. Нужно создать правило iptables, TCP/5038 для серверной стороны и TCP/4445 для клиентской стороны.

11 квіт. 2012 р.

Удаляем остатки SVN из проекта

Если Вам, по какой то нелепой случайности, достался проект с каталогами .svn то избавиться от них поможет команда:

find . -name .svn -print0 | xargs -0 rm -rf

29 лют. 2012 р.

Простой способ автозапуска виртуальных машин в Citrix XenServer 6

Многим известно, что начиная с 6 версии Citrix XenServer из Citrix XenCenter убрана возможность выставления чекбокса автозапуска виртуальной машины при старте XenServer. Досадно конечно, теперь эта функция доступна в платной редакции с High Availability. Сделано это, по заверению разработчиков, исключительно в целях заботы о безопасности нас - пользователей.
Если говорить языком Google Translate то имеем приблизительно следующее:
Он был удален из-за плохого взаимодействия с другими функциями, такими как высокая доступность, Rolling Бассейн обновления и интегрированные DR. Автозапуск настройками виртуальных машин начинается в неконтролируемых моды, в самое неподходящее время или в неправильном хостов и фактически нарушил эти другие функции.
 Но если все таки нужно настроить автозапуск для одного сервера можно воспользоваться следующим способом:

1. Для начала необходимо выяснить uuid виртуальных машин, которые должны самостоятельно запускаться. В консоли сервера необходимо выполнить команду


xe vm-list

Получим приблизительно следующее:

uuid ( RO)           : 5fa88a5d-5906-7d66-dc5f-3924be3acbd0
     name-label ( RW): yellow
    power-state ( RO): halted
uuid ( RO)           : ccfc11a9-728c-cc26-ecf2-babc36c51631
     name-label ( RW): red
    power-state ( RO): running

2. Открываем на редактирование файл rc.local, для этого выполняем команду


nano /etc/rc.local

3. Дописываем в конец файла:

sleep 20
xe vm-start uuid=ccfc11a9-728c-cc26-ecf2-babc36c51631
sleep 20
xe vm-start uuid=5fa88a5d-5906-7d66-dc5f-3924be3acbd0


Сохраняем файл по F2.

Теперь после перезагрузки XenServer будет произведен автоматический запуск перечисленных виртульных машин с задержкой в 20 секунд.

11 лют. 2012 р.

Автоматизация звонков в Sipdroid

Появилась необходимость автоматизировать выбор "через что звонить" в Sipdroid. По умолчанию политика звонков Sipdroid заключается в отправке всех звонков через него в случае доступности PBX. Встроенными средствами программы можно сделать возможность выбора перед совершением звонка, а именно звонить через мобильную сеть или через SIP. Меня ситуация с постоянным выбором не устраивала и я решил автоматизировать этот процесс. Так как через SIP мне предоставляется возможность бесплатно звонить только на городские и междугородние номера Украины, то необходимо было сделать так чтобы Sipdroid не звонил на мобильные, а также не отправлял USSD запросы. Погуглив наткнулся на Readme по регулярным выражениям Sipdroid и создал список соответствующий своим требованиям:

\A\*,\A\+38039,039,\A\+38050,050,\A\+38063,063,\A\+38066,066,\A\+38067,067,\A\+38068,068,\A\+38091,091,\A\+38092,092,\A\+38093,093,\A\+38094,094,\A\+38095,095,\A\+38096,096,\A\+38097,097,\A\+38098,098,\A\+38099,099

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

8 лют. 2012 р.

Настройка стандартных портов IMAP и POP3 в Zimbra

Не знаю у кого как, а уменя эти самые порты неправильные, точнее они правильные но не стандартные 7143, 7110, а вот стандартные 143 и 110 как раз назначены неким сервисам Proxy IMAP и Proxy POP3. Заодно поправим и перепутанные защищенные порты. Чтобы это сделать необходимо войти в систему под пользователем zimbra и выполнить следующую команду:

zmprov -l ms zimbraPop3BindPort 110 zimbraPop3SSLBindPort 995 zimbraPop3ProxyBindPort 7110 zimbraPop3SSLProxyBindPort 7995 zimbraImapBindPort 143 zimbraImapSSLBindPort 993 zimbraImapProxyBindPort 7143 zimbraImapSSLProxyBindPort 7993

Где - полное имя Вашего почтового сервера, например mail.domain.local

После чего необходимо выполнить команду: zmcontrol restart
Проверить результат можно выполнив команду: zmprov gacf | grep Imap

7 лют. 2012 р.

Русификация Ubuntu установленной в Citrix XenServer


Известно что с версии 6 Citrix XenServer поддерживает Ubuntu Linux в качестве гостевой операционной системы в режиме. Однако есть один маленький "косяк" т.к. система устанавливается по сети по умолчанию интерфейс системы англоязычный. Кому такое положение вещей не нравится может спокойно его поправить выполнив следующие команды:


ubuntu$ sudo aptitude install language-pack-ru
ubuntu$ echo LANG="ru_RU.UTF-8" > /etc/default/locale
ubuntu$ sudo reboot

30 лист. 2011 р.

Блокировка почтовых доменов в Zimbra

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

Открываем для редактирования файл /opt/zimbra/conf/salocal.cf.in
Находим секцию # accept email from zimbra support and forumns
Добавляем блокируемый домен (например блокируем всю почту из домена com.ua)
blacklist_from *.com.ua
Сохраняем файл и перезапускаем Zimbra командой
zmcontrol stop && zmcontrol start
Таким же образом можно добавить домен, почту от которого нужно всегда пропускать (например почту от пользователей своего домена). В той же секции необходимо добавить
whitelist_from *@zimbradomain.dom