пятница, 8 августа 2014 г.

Postgresql 9.2.4 для 1С в контейнере Docker и решение с shmmax

Новые технологии, новые задачи.


Давно хотел погонять технологию docker в работе, но, случая не предоставлялось. А тут возникла необходимость переместить кучу файловых баз 1С от Зарплаты и Управление персоналом в базу данных.

Ну и соответственно, звезды сложились. Проблема в том, что ЗУП 3.0 работает с Postrgesql 9.2, а предыдущие не работают, точнее, им нужен postgress собранный с другой опцией, либо версией ниже. Плодить кучу серверов БД не хотелось, Хотелось красиво все завернуть в виртуалки с минимальных оверхедом. И тут я вспомнил про docker. Попробовал, получилось, были и проблемы, но они решены. Этими решениями и хотел поделиться.

Приступим и посмотрим, что получится:

1. Свежеустановленная Ubuntu 14.04.


Качаем, ставим, ничего сверхестественного.

2. Подготовка


docker можно взять из репо убунты, но я взял из репо самого проекта. Инструкция здесь:

Кратко:

Добавляем ключ:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

Добавляем репозитарий
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"

$ sudo apt-get update

$ sudo apt-get install lxc-docker

3. Установка


Чистый образ:

sudo docker run -i -t ubuntu:precise /bin/bash

В контейнере:

apt-get update apt-get install nano wget bzip2 exit

Зафиксируем образ:

sudo docker commit CONTAINER_ID stormbp/precise-clean

CONTAINER_ID легко брать из командной строки когда работаете внутри контейнера:

он выглядит так:

root@af40b772abbf:/data/main#

Хеш после root@ и есть ID контейнера.

Имя контейнера (stormbp/precise-clean) поставьте свое, главное обойтись без заглавных букв, будет ошибка.


Запустим новый экземпляр из шаблона:
sudo docker run -i -t stormbp/precise-clean /bin/bash
Внутри контейнера:
cd /root
Качаем дистрибутив postgres с сайта 1с.
wget http://downloads.v8.1c.ru/get/Info/AddCompPostgre/9_2_4_1_1S/postgresql_9_2_4_1_1C_amd64_deb_tar.bz2
Предварительно зайдите туда со своими учетными данными, чтоб авторизоваться. Это можно сделать с любого компьютера в локальной сети.
Распаковываем
tar jxf postgresql_9_2_4_1_1C_amd64_deb_tar.bz2
rm postgresql_9_2_4_1_1C_amd64_deb_tar.bz2
ставим:
dpkg -i *.deb
apt-get -f install
не обращайте внимание, что сервер не инициализировался, сейчас будет творить магию.
exit
Коммитим контейнер
sudo docker commit CONTAINER_ID stormbp/precise-postgress-9.2.4-1c
Создаем в домашней директории хранилище для самой базы:
mkdir -p $HOME/postgresdata
и запускаем экземпляр
sudo docker run -v="$HOME/postgresdata":"/data" -i -t -p 5432 stormbp/precise-postgress-9.2.4-1c /bin/bash

4. Магия, как она есть

А теперь еще немного магии:
Posgresql не запустится, так как по умолчанию, параметр ядра shmmax установлен меньше необходимого. А внутри контейнера поменять его просто так невозможно, /proc/sys смонтирована только на чтение и перемонтировать ее просто так нельзя.
Надо залезть из хостовой системы в контейнер и переписать значение переменной ядра. Для этого есть такой замечательный инструмент nsenter. Но вот разработчики ubuntu усложняют жизнь тем, что не включают его в поставку и в репах его нет.
Будем компилять? - спросите вы.
Зачем? - спрошу я. Ведь у нас есть докер, пусть сам себе накомпиляет в контейнере и удалится, оставив нам только бинарник nsenter на память.
Все просто, в соседнем терминале, на хост системе (не в контейнере с postgress) запускаем:
sudo docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
docker отработает минут за 5 и удалит все следы оставив нам бинарник nsenter в /usr/local/bin
Теперь снова черная магия:
На хосте отключаем apparmor (на всякий, у некоторых не получается с ним)
/etc/init.d/apparmor stop
узнаем pid запущенного контейнера с postgres
PID=$(docker inspect --format '{{ .State.Pid }}' ID)
ID - подставить из соседнего терминала.
Далее лезем в пространство имен контейнера:
nsenter --target $PID --mount --uts --ipc --net --pid bash
mount -o remount rw /proc/sys
echo 1073741824 > /proc/sys/kernel/shmmax
mount -o remount ro /proc/sys
все, можно инициализировать базу
mkdir -p /data/main chown postgres /data/* chgrp postgres /data/* chmod 700 /data/main
su postgres --command "/usr/lib/postgresql/9.2/bin/initdb -D /data/main --locale=ru_RU.UTF-8"

5. Результат

Получите и распишитесь: база лежит в /data контейнера, или в домашней папке $HOME/postgresdata, доступна локально по сети. Правьте hba как и раньше.
Выходим из контейнера и коммитим образ для множественного развертывания баз данных
sudo docker commit CONTAINER_ID stormbp/1с-9.2.4
Кто работал с постгрессом далее разберется, если не разберетесь, спрашивайте.
На очереди контейнерная виртуализация сервера предприятия для 1с, чтобы жить было совсем весело, а потом статья о том, как же всем этим управлять-то.

четверг, 15 августа 2013 г.

Elastix + Panasonic TDA100 + Zadarma

На текущий момент Panasonic, по сложившейся традиции, обслуживает внутренних абонентов в офисе (1XX) и подключен медью к СибирьТелекому. Asterisk установлен в лохматые 200Х и служит для связи с удаленными подразделениями (3XX). Между собой связаны FXO шлюзом.
Решили упростить схему (убрать шлюз, вносивший задержки в установлении вызова - обычно 2-3 гудка) и получить дополнительный функционал (на первом этапе - подключение sip провайдеров для дальних звонков)

Куплено 2 платы - 0290 в Panasonic и из закромов Родины достали по бросовой цене Digium Wildcard TE110P T1/E1.

С нуля ставим Elastix.
Скачиваем установочный образ
Ставим его на флешку с помощью iso2usb (самый простой путь, не требует шаманства описанного на форумах Elastix)
Устанавливаем систему с флешки, указывая пароли и явки в процессе
Получаем базовую установку.

Обновляем систему yum update -y
Приезжает новый астериск (11) вместо 1.8
Перезагружаемся в новое ядро (параллельно устанавливаем платы в panasonic и asterisk)
Соединяем платы сигнальным кабелем (1,2 контакты rj-45 в 5,4 контакты с другой стороны)
На стороне Panasonic нужно только в настройках порта указать qsig-master и запустить в обслуживание (in service)
На стороне Elastix:
1. nano /etc/dahdi/system.conf
и в конец файла добавляем

span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16
echocanceller=oslec,1-15,17-31

# Global data
loadzone        = ru
defaultzone     = ru

2. cp chan_dahdi.conf  chan_dahdi.conf.bak
3. nano  chan_dahdi.conf 
Очищаем файл и вносим в него:
[trunkgroups]

[channels]
language=ru
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=yes
callerid=asreceived
resetinterval=never

group=1
;[E1]
context=from-internal
switchtype=qsig
resetinterval=never
signalling=pri_cpe
channel =>1-15,17-31

4. /etc/init.d/dahdi restart
5. asterisk -rvvvvvv
6. core restart now

Плата должна завестись и отображаться  (dahdi show status)

На Elastix создаем три транка
1. На zadarma согласно их инструкции на сайте http://wiki.zadarma.com/index.php/Asterisk
2. На panasonic через плату:
DAHDI trunk
DAHDI identificator - g1
3. На удаленный asterisk по протоколу IAX2

Создаем Маршруты:
1XX - trunk panasonic
3XX - trunk asterisk
7+8|XXXXXXXXXX - trunk zadarma (вместо восьмерки подставляю 7 на всякий)

Теперь интереснее - надо заставить Panasonic звонить в elastix при наборе междугородних и международных номеров.
Читаем раздел Работаем с ARS и настраиваем как нам захочется.

Обязательно:
Идем сюда http://icluzo.livejournal.com/8971.html и делаем что написано, а именно отключаем анонимов, включаем файерволл и устанавливаем fail2ban.

пятница, 21 июня 2013 г.

Обновление Proxmox до 3 версии

Все делал согласно инструкции на wiki:
http://pve.proxmox.com/wiki/Upgrade_from_2.3_to_3.0

  1. Остановил машинки 
  2. Сделал backup 
  3. Установил все текущие обновления 
  4. Скачал скрипт wget http://download.proxmox.com/debian/dists/wheezy/pve-upgrade-2.3-to-3.0 
  5. Сделал исполняемым и запустил 
  6. Скачалось более 500 пакетов (приблизительно 300мб 
  7. Установилось 
  8. Перезагрузился 
  9. Я на новом Proxmox 

Для чего делал? Необходимо было проверить корректность обновления для одиночной машинки, чтобы потом обновить кластер.

Дополнительно проверял живучесть моего софтового raid, который не поддерживается Proxmox. А то мало-ли какие настройки потрет новая версия. 3 дня - полет нормальный. Местами даже пошустрее стало из-за нового qemu c новым kvm.

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

Samsung 4833 на Ubuntu

1. для работы с принтером через сеть и юсб достаточно скормить ppd файл, примерно так:

sudo /usr/sbin/lpadmin -p ИмяПринтера -P scx483xps.ppd -v ipp://192.168.1.100 -E

2. а вот для запуска через сеть сканера нужно еще и другие дрова доставить:

wget -O - http://www.bchemnet.com/suldr/suldr.gpg | sudo apt-key add -

sudo sh -c 'echo "deb http://www.bchemnet.com/suldr/ debian extra" >> /etc/apt/sources.list.d/samsung.list'

sudo apt-get update

sudo apt-get -y --force-yes install samsungmfp-data samsungmfp-driver samsungmfp-scanner samsungmfp-network

в /etc/sane.d/net.conf ничего вписывать не надо

а вот /etc/sane.d/xerox_mfp.conf надо добавить свой адрес (в моем случае 192.168.1.100)

# Samsung SCX, network mode
# tcp HOST_ADDR PORT
# Uncomment and configure:
tcp 192.168.1.100 9400
#или, если работает на другом порту,
tcp 192.168.1.100 9403

например, командой -
sudo sh -c 'echo "# Samsung SCX, network mode" >>/etc/sane.d/xerox_mfp.conf'
sudo sh -c 'echo "192.168.1.100" >>/etc/sane.d/xerox_mfp.conf'

postgresql 9.2.1 для 1С на CentOS 6.3 x86_64 minimal

yum update -y
reboot

yum install crontabs tmpwatch sudo file nano wget rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel libxml2-devel libxslt-devel perl-ExtUtils-MakeMaker perl-ExtUtils-Embed icu libicu libicu-devel -y

chkconfig iptables off
service iptables stop
chkconfig ip6tables off
service ip6tables stop
nano /etc/selinux/config SELINUX=disabled

cd ~ && mkdir psql && cd psql && wget http://v8.1c.ru/overview/postgresql_patches/9-2-1/postgresql92-9.2.1-1.1C.src.rpm


useradd user
rpm -ivh postgresql92-9.2.1-1.1C.src.rpm


ln -s /usr/lib64/libicuuc.so /usr/local/lib/libicuuc.so.46 && ln -s /usr/lib64/libicui18n.so /usr/local/lib/libicui18n.so.46 && ln -s /usr/lib64/libicudata.so /usr/local/lib/libicudata.so.46


nano /usr/lib/rpm/macros
Ctrl + w %_default_patch_fuzz
меняем с 0 на 2


cd ~ && time rpmbuild -ba --define 'runselftest 0' /root/rpmbuild/SPECS/postgresql-9.2.spec
rpm -ivh ~/rpmbuild/RPMS/x86_64/*.rpm


su postgres
/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data/ --locale=ru_RU.UTF-8
exit


service postgresql-9.2 restart && chkconfig postgresql-9.2 on


/usr/pgsql-9.2/bin/psql -U postgres
postgres=# alter user postgres with password '111111111';
ALTER ROLE
postgres=# \q

четверг, 20 декабря 2012 г.

Свежий HPLIP в Ubunt-ах



sudo apt-get purge hplip hplip-gui
sudo apt-get autoremove -f

sudo apt-get install gcc build-essential python-dev libcupsys2-dev libusb-dev libtool libcupsimage2-dev

cd ~
wget -O hplip-3.12.11.run http://prdownloads.sourceforge.net/hplip/hplip-3.12.11.run
chmod +x hplip-3.12.11.run
sh ./hplip-3.12.11.run

Соглашаемся со всеми пунктами по умолчанию (Enter)

sudo apt-get install libhpmud-dev

hp-setup

P.S. Для ускорения установки можно заранее поставить:
libcups2-dev
cups-bsd
cups-client
libusb-1.0.0-dev
libsnmp-dev
python-qt4-dbus
gtk2-engines-pixbuf
python-qt4
python-reportlab
libdbus-1-dev
libsane-dev
python-imaging
gtk2-engines-pixbuf
xsane
sudo apt-get install libcups2-dev cups-bsd cups-client libusb-1.0.0-dev libsnmp-dev python-qt4-dbus gtk2-engines-pixbuf python-qt4 python-reportlab libdbus-1-dev libsane-dev python-imaging gtk2-engines-pixbuf xsane

четверг, 15 ноября 2012 г.

Бюджетный Proxmox 2.2 (ProxmoxVE 2.2 SoftRaid)

Возникла новая задачка, и опять связанная с виртуализаций:
- Сделать платформу под виртуальные машинки для 1С и еще парочки сервисов.
- Минимизировать стоимость покупаемого железа (никакой кластеризации и выделенного хранилища)

Такая вот задачка. Долгие переговоры с заказчиком привели к тому, что была выбрана следующая конфигурация:
- сервер изначально двухголовый в начале с одним процом
- память с 8 гигами
- диски бьются на два стора - одно зеркало на sata винтах, одно на ssd
На ssd положим базу 1с для разгона

Странный монстр получился, если честно.
Думал вначале самостоятельно все настроить на основе CentOS, но пришлось передумать. Во-первых геморойно (или лень), во-вторых хотелось, чтобы они смоги самостоятельно сделать бэкап или рестарт виртуалки. Так что возвращаемся к Proxmox.

Raid у нас отсутствует, будем делать софтовый. Вот тут и кроется загвоздка - Proxmox не поддерживает установку на зеркало, и отказывает в поддержке таким любителям как мы. Будем делать сами.
Читаем google и видим большое количество статей на эту тему, иногда даже русскоязычных. Но дьявол в деталях и ни по одной инструкции не получилось получить работоспособную систему. Поэтому представляю вариант переведенной статьи по которой все просто и успешно встало на свои места.

пятница, 12 октября 2012 г.

Все со всеми (tinc mesh vpn)


Новый vpn, теперь банановый..

Получается так, что в одной организации происходят постоянные незначительные пертрубации. До того незначительные и до того постоянные, что становятся головной болью из-за их постоянного сопровождения. То директор работает дома, то бухгалтер, иногда компьютер унесут в другой офис, или, что еще круче, захотят развернуть сервер в облаке.
Плюс, огромное желание начальства, чтобы некоторые пользователи не могли физически видеть некоторые серверы, при этом обеспечив возможность видимости двух любых машин из абсолютно разных филиалов.
Решалось все это применением vpn технологий, и работало на openvpn + pptpd + ospfd. В общем мешанина жуткая, требовательная, нагруженная и не поддающаяся профилактике в рабочее время, причем имеющая точку отказа в виде впн-серверов.
В общем поносившись с ними некоторое время, было решено что-нибудь придумать. Этим что-нибудь стал mesh-vpn. Муки выбора были недолгими, однозначно победил tinc (tinc-vpn.org), как самый легкий, кроссплатформенный и бесплатный (тем более, что отрицательных отзывов о нем я не нашел). Из аналогов - hamachi, плюс еще куча сервисов, разных по цене и возможностям.
Попробуем все это упаковать в законченное решение.

вторник, 29 мая 2012 г.

MSI MS-7680 и драйвера на сеть

Интересно получается.

Есть материнская плата из заголовка. Ставим на нее CentOS 6.2 и получаем неработающую сеть.
Засучив рукава, читаем в Интернете на сайте производителя спецификацию и видим что сетевой чип: Realtek RTL-8111E.

Ну подумав, что не все так страшно, и так было уже далеко не первый раз, идем на сайт elrepo.org, качаем kmod-8168, ставим, перезагружаемся, и начинаем долго думать.. Сеть не определилась.

Думаем долго. Пока думал установил pciutils (не идет при установке minimal) и увидел забавную картину:

lspci -nn|grep -i net

02:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8152 v2.0 Fast Ethernet [1969:2062] (rev c1)


На том же сайте находим такой ID 1969:2062 и грузим теперь уже правильный модуль: kmod-atl1e
Теперь заработала сеть. Но вот еще интереснее стало:

ifdown eth0 && ifup eth0
/etc/sysconfig/network-scripts/ifdown-eth: line 29: /etc/sysconfig/network: No such file or directory
/etc/sysconfig/network-scripts/ifdown-ipv6: line 39: /etc/sysconfig/network: No such file or directory
./network-functions: line 383: /etc/sysconfig/network: No such file or directory
Determining IP information for eth0... done.
/etc/sysconfig/network-scripts/ifup-ipv6: line 56: /etc/sysconfig/network: No such file or directory
/etc/sysconfig/network-scripts/ifup-aliases: line 125: /etc/sysconfig/network: No such file or directory


Т.е. файлик потерялся.
Создаем ручками

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=localhost.localdomain


Вот теперь все. Работает. И даже после перезагрузки.
Вывод один:
Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим (с) Козьма Прутков

вторник, 22 мая 2012 г.

virt-manager не работает

Столкнулся с багом.

LinuxMint 12. Virt-manager при попытке подключиться к виртуальным машинкам ругается на d-bus:

Error launching details: Configuration server couldn't be contacted: D-BUS error: Method "Set" with signature "s(ib)" on interface "org.gnome.GConf.Database" doesn't exist
И далее трейс на страницу.

Лечится так:

dbus-launch --exit-with-session virt-manager

В дальнейшем симптомы не проявляются.

суббота, 12 мая 2012 г.

Proxmox VE 2 cluster with DRBD (HA, Fencing)


Возникла небольшая задача по созданию бюджетного отказоустойчивого кластера виртуалок. Мучился до 3х ночи, но решил.
И так, задача:
Есть 2 двухголовых сервера, на них нужно развернуть: файерволл и маршрутизатор на 2-х провайдеров, сервер телефонии Asterisk, комплекс 1С:Предприятие (клиент-сервер) и хранилище документов. Нагрузка по итогу не очень большая, можно было бы развернуть по отдельности поделив нагрузку, но есть второе требование: обеспечение резерва и высокой доступности, при полном отсутствии доп.финансирования
Посидев, подумав, было решено все это виртуализировать и кластеризировать.
Изучив предложения быстро понял, что единственным вариантом сделать все это является гипервизор kvm в дистрибутиве Proxmox VE, благо уже вышла версия 2.1 и основные косяки поправлены.
Поводом же написать сообщения явилось то, что полной пошаговой инструкции для развертывания такого кластера с использованием fencing нет в интернете, абзац в одном месте, кусок кода в другом месте, объяснение почему вообще на немецком.

среда, 4 апреля 2012 г.

rdesktop не спит.. но и не подключается

Есть одна машинка на Ubuntu 8.04 Hardy, которая перестала подключаться к серверу терминалов на Windows Server 2008 R2 послу того, как были загружены клиентские лицензии. С триальным периодом все работало, а с живыми лицензиями перестало. Но мы не будем расстраиваться и попробуем решить задачку.
Первое очевидное решение - перейти на remmina отпадает по простой причине: ее нет в репах на hardy даже на launchpad. Отдельно скажу, что remmina, в отличии от rdesktop работает просто замечательно и все остальные linux машинки давно и плотно сидят на ней.
Будем искать другое решение. Поиск в launchpad не дал результаттов по обновлению rdesktop до актуальной версии, по крайней мере слету. Может быть, если бы потратил побольше времени и нашел, но тут случайно перепутал ключ у команды rdesktop в терминале и увидел ее подсказку. А там есть такой параметр как "-4", который заставляет использовать не актуалную версию протокола rdp5, а rdp4 в котором еще с шифрованием сессий и ключами не заморачивались.
В общем просто добавив его все заработало, что и требовалось.
Отдельно скажу, что машинка на centos 5.2, у которой версия rdesktop старее подключается и работает безо всяких доп ключей. Это RedHat!!!!

вторник, 3 апреля 2012 г.

Приключения с kvm и usb

У знакомого установлен сервер 1С по инструкции из этого блога. Но неприятности продолжились.
Симптомы: 1С периодически терят ключ. Причем зависимости им самим не обнаруживалось.
Времени не было, поэтому отложили лечение.
Но вот он счастливый момент и время на диагностику.
Итак:
В сервер воткнуто 2 ключа: серверный 1с и ключ лицензий (пользовательский).
Серверный прокинут средствами kvm в виртуалку, на обеих машинах стоит hasp от etersofta.
Где брать ключи указывается в файликах nethasp.ini, который лежит на рабочих станциях в ProgramFiles, на сервере в /opt.
Тонкие клиенты и веб-клиенты берут настройки из серверного nethasp.ini.

пятница, 23 марта 2012 г.

ospfd О-о-о-й

Только описал настройку ospfd как новостью порадовал opennet, всего 2 уязвимости, без деталей, но пишут, что возможна удаленная эксплуатация...
Пятница началась неожиданно. Версия в 5 Cente
rpm -qa|grep qua
quagga-0.98.6-5.el5_5.2


Обновлений нет. Можно засекать время пока выкатят, о чем сообщу позже. 
Остается надеяться на файерволл и selinux.

четверг, 22 марта 2012 г.

ospf как лучший способ связать 4 провайдеров в один стабильный канал


Возникла такая небольшая задачка.

Итоговые данные:
Склад работает в терминальном режиме с базой, расположенной в офисе.
На складе подключено 2 провайдера. Один беспроводной с серым ip, второй проводной по vpn. Всего 3 интерфейса.
В офисе, страшно сказать, 3 провайдера. Беспроводной с серым и белым ip, и 2 проводных, из которых первый pptp, второй ppoe. Итого 5 интерфейсов.
"Небольшая" задачка состоит в том, чтобы при любой ситуации склад продолжал работать.
Решение первое: скрипты - громоздко, слишком много событий придется отслеживать (для впн - соединен, сброшен, залип, кончились деньги, для обычных - есть коннект, нет, кончились деньги).
Второе решение: что-то там с bgp - ужас и только. Причем не из-за геморности настройки, а согласования с кучей провов.

Как обычно, порывшись основательно в Инернет, было обнаружено более красивое (с моей точки зрения) решение - протокол маршрутизации ospf.

Начинаем

Что-то странное со временем.

Время летит, да с такой скоростью, что писать некогда.
Давно ничего не описывал. Хотя в РЛ запущено много-много всего. Попробую это все описать со временем.
Что было:
ip-телефония или нужен ли нам еще один кабель
ospf как лучший способ связать 4 провайдеров в один стабильный канал
Видеонаблюдение или motion рулит
Приключения с kvm и usb
DECT побеждает с помощью Siemens
VirtualBox как спасатель электронной отчетности и банк-клиентов
Zimbra - надежный помощник в течении 4 лет, но теперь, извини, до свидания, верный друг
Грозовые облака - прощай оружие.. прощай реальное железо, здравствуй виртуальное


понедельник, 19 сентября 2011 г.

Конвертация centos6 в sl6 (convert centos 6 to sl 6x)

Итак, намучавшись с centos6 (не работающий проброс ключа hasp в виртуальную машину), решился на подлый шаг - преобразование centos в scientific linux.
Подтолкнуло к этому чтение форумов, где утверждается что данный функционал не работает (точнее то работает, то нет) на rhel 6 и только заработал на 6.1, а, как известно, релиз centos 6.1 даже на горизонте не маячит.
Начинаем
Бэкап всего что попадется под руки.
Устанавливаем репы SL:
rpm -ivh --force http://ftp.scientificlinux.org/linux/scientific/6x/x86_64/os/Packages/sl-release-6.1-2.x86_64.rpm
Чистим yum
yum clean all 
Обновляем сам yum и rpm
yum update yum* rpm*
обновляем систему
yum update
Удаляем лишнее
rpm -e centos-release
rpm -e yum-plugin-fastestmirror

Обновляем логопиты
yum distro-sync
Переустанавливаем пакеты вендора centos
rpm -qa --qf "%{NAME} %{VENDOR}\n"|grep CentOS 
Так мы вывели список таких пакетов
и вперед: yum reinstall по списку)
reboot
Немного поволновавшись за систему, ушел пить чай
В результате все прошло идеально, ошибок в логах нет
И, самое главное, ключ появился в виртуальной машине. Сервер предприятия его подхватил и пользователи свободно зашли в 1с.
P.S. Бинарная совместимость клонов rhel это просто праздник...
Придала решимости мне вот эта статья
Ага, озадачился установкой системы мониторинга и развертывания

не забыть в начале установить make gcc

вторник, 6 сентября 2011 г.

1C Postgresql Backup

Так из того, что до сих пор не было сделано, это бэкап. Это плохо(
Доделал, чем с вами и делюсь)
За основу был взят скрипт отсюда, спасибо за простой и не напряжный вариант.
Единственно, пришлось немного поправить скрипты и пути, были небольшие опечатки.
файл crontab для пользователя postgres:
crontab -e -u postgres

0 8-20/2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups hourly gpi
0 2 * * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups daily gpi
0 4 1 * * /var/lib/pgsql/backups/archpgbase /var/lib/pgsql/backups monthly gpi

файл скрипта.

bash-4.1$ cat /var/lib/pgsql/backups/archpgbase
#!/bin/sh
arcdir=$1
bindir=/usr/bin
PASS=237511
USAGE= "Usage: arcdb hourly|daily|mountly [SQLhost]"
if [ "$4" = "" ]; then
SQLhost='127.0.0.1'
fi
echo "SQLhost: $SQLhost"
if ! [ -d $1 ]; then
echo $USAGE
exit 1
fi
echo "Target dir: $1"
if [ "$3" = "" ]; then
echo $USAGE
exit 1
fi
echo "Database: $3"
case $2 in
hourly)
find $arcdir/$2/$3/ -type f -ctime 1 -delete
;;
daily)
find $arcdir/$2/$3/ -type f -ctime 31 -delete
;;
monthly)
find $arcdir/$2/$3/ -type f -ctime 365 -delete
;;
*)
echo $USAGE
exit 1
;;
esac
if ! [ -e $arcdir/$2/$3 ]; then
mkdir $arcdir/$2/$3
fi
export PGPASSWORD=123456
$bindir/pg_dump -h $SQLhost -U postgres -c $3 | gzip >>$arcdir/$2/$3/`date +%y%m%d%H%M`.gz

создаем директории в /var/lib/pgsql/backups/
monthly
daily
hourly

отдаем пользователю постгресса во владениее папки
chown -R postgres /var/lib/pgsql/backups

делаем скрипт исполняемым

chmod +x /var/lib/pgsql/archpgbase

все. все просто и понятно)


Полезно!

Как раз занимаясь разборками с KVM, обнаружил следующее:
http://libc6.org/virtualization/
Помогло кое-в чем разобраться, спасибо огромное)