суббота, 21 декабря 2013 г.

Unable to open pty: No such file or directory (OpenVZ)

Добрый день!

Возникла такая проблема, во время логина в VPS на OpenVZ выдало такое сообщение:
enter into CT 8210799 failed
Unable to open pty: No such file or directory

Есть много способов решения этой проблемы, вот например несколько из них:

Первый способ:

# vzctl exec 1111 /sbin/MAKEDEV pty
# vzctl exec 1111 /sbin/MAKEDEV tty

# vzctl enter 1111

среда, 11 декабря 2013 г.

Майним PrimeCoint (XMP) на Ubuntu/Debian

Добрый день!

Решил попробовать помайнить PrimeCoin (курс http://www.cryptocoincharts.info/#jump-xpm-btc), что такое PrimeCoin смотрим тут. Пользуюсь пулом ypool.net . Задался вопросом: как же их майнить на Linux? Так как судя по сайту клиент есть только под Windows. Нашел на гитхабе Linux клиент: тыц. Маленькая заметка, как установить:

1. Установим нужные пакеты:
# sudo apt-get install build-essential libssl-dev openssl git libgmp3-dev

вторник, 26 ноября 2013 г.

Лицензированный Sublime Text 3 (Ubuntu)

Добрый день!

Понадобилось установить Sublime Text 3, но есть одна проблема - надоедливое напоминание о приобретении лицензии. Решение нашлось быстро.

Переходишь в каталог с установленным саблаймом:
# cd /opt/sublime_text

Устанавливаешь vim:
# sudo apt-get install vim

Долгое подключение к ssh (CentOS 6)

Добрый день!

При логине по ssh на сервер с CentOS 6.0 появилась такая неприятная проблема, очень долго жду приглашение на ввод пароля.

time ssh root@1.1.1.1
root@1.1.1.1's password: 

real 0m22.289s

ISPmanager ошибка Fatal error / Invalid license

Добрый день!

Столкнулся с проблемой, что при переходе на панель управления сервером ISPmanager отдается пустота или надпись Fatal error / Invalid license.

Проблема с лицензией ISP.

ISPmanager 4:
Скачаем файл лицензии:
# wget -O /usr/local/ispmgr/etc/ispmgr.lic "http://lic.ispsystem.com/ispmgr.lic?ip=ip.ip.ip.ip"

Убьем процессы ispmgr:
# killall ispmgr

ISPmanager 5:
# /usr/local/mgr5/sbin/licctl list
old_ispmgr.lic  bad format
ispmgr.lic      bad format
# cd /usr/local/mgr5/etc/
# rm -f old_ispmgr.lic ispmgr.lic ispmgr.lic.lock
# /usr/local/mgr5/sbin/licctl list
# killall -9 core
# /usr/local/mgr5/sbin/licctl fetch ispmgr

И зайдем опять по адресу панели. Теперь проблема решена.

понедельник, 11 ноября 2013 г.

Установка DKIM в ISPmanager (Debian)

Добрый день.

Появилась такая проблема - письма отправленные сервера попадают в спам. По большей части проблема была в некорректной SPF и PTR записях (сделанных не мной). Но я решил дополнить еще и DKIM записью.

Вот краткая заметка, как я это делал.


1. Заходим в панель управления сервером и переходи на вкладку "Возможности", устанавливаем "OpenDKIM - фильтр DKIM". Если не получается через панель, устанавливаем вручную:
Debian/Ubuntu:
# sudo apt-get install opendkim

четверг, 7 ноября 2013 г.

TASK ERROR: VM is locked (backup) Proxmox

Добрый день!

Сутра заметил, что 2 виртуальных машины KVM в Proxmox'е выключены. Посмотрел лог и увидел такое сообщение TASK ERROR: VM is locked (backup).


Решается это довольно просто.
Заходим через консоль на сервер и выполняем:
# qm unlock <vmid>
Теперь можно спокойно стартануть виртуальную машину.

вторник, 29 октября 2013 г.

Отправка почты на Gmail (Debian, Exim4)

Добрый день!

Настраивая новый сервер для нового проекта, наткнулся на такую ситуацию, что не отправляется почта на Gmail. Сервер EX40-SSD от Hetzner.de. В данной краткой заметке я опишу, как я решил данную проблему. Свой домен я заменил на example.com.
На сервере установлен Debian Wheezy, ISPmanager Lite. В качестве MTA выступает Exim4.

Тестирование

Тестировал отправку почты с помощью утилиты mail:
# mail -s "Test message" qqw1mb0@gmail.com
Введем тело письма: Test mail
И нажмем клавиши: Ctrl+D.

Ошибка

Сама ошибка в exim4:
# tail /var/log/exim4/mainlog

2013-10-29 16:42:37 1VbCNI-0003uR-TB <= root@example.com U=root P=local S=474 from <root@example.com> for qqw1mb0@gmail.com
2013-10-29 16:42:37 1VbCNI-0003uR-TB ** qqw1mb0@gmail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [2a00:1450:4001:c02::1a]: 550-5.7.1 [2a01:4f8:200:64ee::2      16] Our system has detected that this\n550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records\n550-5.7.1 and authentication. Please review\n550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more\n550 5.7.1 information. j42si19319297eew.194 - gsmtp
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd <= <> R=1VbCNI-0003uR-TB U=Debian-exim P=local S=1700 from <> for root@example.com
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd ** root@example.com R=unknown_users: Unknown user
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd Frozen (delivery error message)
2013-10-29 16:42:37 1VbCNI-0003uR-TB Completed

вторник, 22 октября 2013 г.

Защита от DNS Amplification attack (BIND)

Добрый день!

Существует такой вид DDOS, как DNS Amplification attack. В этой заметке я опишу, как защититься от него на примере BIND. Данная заметка актуальна для Debian 5/6/7, Ubuntu 10.04/12.04 и CentOS 5.4-6.4 - на этих системах я тестировал лично.

среда, 16 октября 2013 г.

Первое знакомство с libvirt на Ubuntu 13.04

Добрый день.

Так как я попал на КИТ от Яндекса, первое домашнее задание связано с libvirt и я решил посмотреть, что это вообще такое, до того, как получу задание и вот моя краткая заметка по установке и созданию ВМ, через GUI и CLI. Все происходит на системе Ubuntu 13.04.

четверг, 10 октября 2013 г.

Курсы Информационных Технологий (КИТ) от Яндекса - 4-ый набор. Тестовые задания

Добрый день!

Сразу как увидел новость о четвертом наборе на КИТ от Яндекса, сразу подал заявку после небольшого ожидания прислали письмо с доступами к внутренней системе Яндекса. Там я увидел 5 заданий. В данной заметке покажу, как я решил эти задания. Решал я их с помощью (Perl 5.14, Python 2.7, Bash 4.2). Есть много способов решения этих заданий, но тут именно те, до которых додумался я. 

Решать задания можно было на таких языках: Java 6/7, Python 2.7/3.2, Delphi, Free pascal, Perl 5.14, GNU bash 4.2, GNU c (4.6), GNU c x32 (4.6), GNU c++0x x32 (4.6), GNU c++ x32 (4.6), GNU c++0x (4.6), GNU c++ (4.6).

воскресенье, 29 сентября 2013 г.

CentOS 6.2 (LAMP, nginx, memcached, percona, sendmail, dovecot, dkim-milter, iptables)

Добрый день.

Поставили передо мной задачу:
Настроить LAMP + nginx.
Создать виртуальный хост test.example.com и в index.php поместить вывод функции phpinfo.
Сделать, что бы выводился IP-адрес клиента.
Средствами nginx сделать перенаправление любых ссылок на главную страницу, настроить кеширование статики.
Установить memcached и настроить хранение php-сессий в нем.
Установить Percona server и оптимизировать настройки под характеристики сервера.
Настроить DKIM.
Все это выполнить на CentOS 6.2. Это мой первый опыт общение с RPM системами.
Вот моя небольшая заметка по этому всему.

суббота, 28 сентября 2013 г.

Установка OpenVZ в Debian 6 Squeeze

Добрый день!

Мне понадобилось разобраться с OpenVZ и в данной заметке я опишу, как установить сие чудо на Debian 6 Squeeze.

Debian Squeeze OpenVZ состоит из модифицированного ядра Linux и пользовательских утилит, полностью автоматизированная и виртуализированная система для сервера, разработанная компанией SWsoft. Создатели заявляют, что накладные расходы на виртуализацию очень малы, и падение производительности состовляет 1-2%, по сравнению с обычными физическими серверами.

Ядро OpenVZ, пакеты vzctl и vzquota доступны в репозитории Debian 6 Squeeze, мы можем их найти.
# aptitude search linux-image-openvz vzctl vzquota

Теперь установим эти пакеты:
# aptitude install linux-image-openvz-amd64 vzctl vzquota

После установи перезагрузим сервер.

Теперь убедимся, что мы загрузились с нужным ядром:

четверг, 19 сентября 2013 г.

Основные команды для обнаружения виновника нагрузки OpenVZ контейнеров

Добрый день!

Сегодня отвечал на тестовый вопрос для одной конторы и был такой вопрос: На OpenVZ ноде LA достигает 300. Как понять причину повышения нагрузки? Напишите команды для анализа проблемы и вероятные причины начиная с самой вероятной.

Решил провести синтетический тест. Так как у меня есть десктопный компьютер с Proxmox на борту, который включает в себя KVM и OpenVZ. Я создал 3 OpenVZ контейнера с Debian 6 на борту.

На каждом из контейнеров я запустил по 10 процессов cpuburn (утилита для синтетической нагрузки процессора).

суббота, 14 сентября 2013 г.

Конвертация толстых (thick) дисков в тонкие (thin) ESXi 5.1

Добрый день.

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

1. Подключаемся к ESXi серверу по SSH (как включить SSH на ESXi 5.1).
2. Перейдем в папку /vmfs/volumes:
# cd /vmfs/volumes

Запуск SSH доступа к ESXi 5.1

Добрый день!

Понадобилось подключиться к ESXi серверу по SSH, однако оказалось, что по умолчанию данный сервис отключен. В этой краткой заметке я опишу как это сделать.

1. Подключаемся к серверу с помощью vSphere Client.
2. Переходим на вкладку Configuration -> Security Profile.

3. Нажимаем на Properties в разделе Services выделяем сервис SSH и нажимаем Options.

4. Нажимаем кнопку Start и закрываем все окна нажимая ОК.

Все, теперь мы можем подключиться по SSH к серверу ESXi.

Установка и первоначальная настройка Active Directory на Windows Server 2012

Добрый день.

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

1. Немного теории

Active Directory (далее AD) - служба каталогов корпорации Microsoft для ОС семейства WindowsNT. AD позволяет администраторам использовать групповые политики для обеспечения единообразия настройки пользовательской рабочей среды, разворачивать ПО на множестве компьютеров через групповые политики посредством System Center Configuration Manager, устанавливать и обновлять ОС. AD хранит данные и настройки среды в централизованной базе данных. Сети AD могут быть различного размера: от нескольких десятков до нескольких миллионов объектов.

четверг, 12 сентября 2013 г.

пятница, 6 сентября 2013 г.

JetBrains PyCharm 2.7 IDE (Python) вечная лицензия

Добрый день.

Так как я в свободное время осваиваю Python и для этого использую JetBrains PyCharm 2.7 IDE я хотел бы поделиться с вами способом, как активировать ее за бесплатно. Лично я считаю, что все продукты JetBrains это эталонные IDE и рекомендую для использования всем.

Для начала вы можете воспользоваться trial версией на 30 дней, однако к концу этого срока перед стартом IDE начинают появляться такие сообщения:

Был найден способ, удалить файл: ~/.PyCharm20/config/eval/PyCharm2.evaluation.key для Linux систем и C:\Users\username\PyCharm20\config\eval\PyCharm2.evaluation.key для Windows систем, однако этот вариант не прокатил и IDE закрывалась с сообщением, что не обнаружен ключ.



Сначала я расстроился, но потом вспомнил про замечательную вещь, а именно самый большой поисковой гигант в Китае: http://baidu.com/ . Он меня уже не раз спасал, когда нужно было найти что-то платное за бесплатно. Так как в Китае нет таких проблем с правообладателями. Всем советую, хоть все общение и на китайском, но интуитивно понятно, как получить необходимое.

С помощью этого поисковика быстро было найдено решение на одном из китайских форумах: http://tieba.baidu.com/p/2304878563.

Смысл в том, что когда вас предупредят о истечении trial версии нажать на кнопку Enter License и ввести такие данные:
User name: EMBRACE
License key: 14203-12042010
0000107Iq75C621P7X1SFnpJDivKnX
6zcwYOYaGK3euO3ehd1MiTT"2!Jny8
bff9VcTSJk7sRDLqKRVz1XGKbMqw3G
И сразу видим замечательное сообщение: Entitled for free updates and upgrades until Апрель 12, 2112 , жмем OK и согласимся с лицензией.

UPD (из комментариев):
для всех новых версий продуктов JetBrains укажите сервер лицензии http://idea.lanyus.com/ и ок
Проверено на PyCharm 5.0.1, PhpStorm 10.0.1, Clion 1.2.1


Посмотрим информацию о продукте: Help -> About и видим:

Все! Теперь мы можем спокойно пользоваться данным продуктом до 2112 года. Удачи в освоении Python!

четверг, 5 сентября 2013 г.

Debian Squeeze и MongoDB 2.0+

Добрый день.

Сегодня встала задача, на один из серверов установить MongoDB версии 2.0+. Вот и небольшая заметка, по этому не хитрому делу.

Для начала проверим, какая версия есть в репозиториях:
# apt-cache show mongodb

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

пятница, 16 августа 2013 г.

"Отличное" обновление от Microsoft для Windows 7 x64

Добрый день.

Во вторник (13.08.2013) Microsoft выпустила новое обновление безопасности, которое включало восемь апдейтов, устраняющих в общей сложности 23 уязвимости в различных продуктах компании. Но как оказалось, многие пользователи, получившие заплатки через систему автоматических обновлений Automatic Update, столкнулись с серьезными сбоями в работе своих систем.

Владельцы компьютеров с Windows 7 (64-bit) жалуются на появление "синих экранов смерти" и невозможность запуска программ/игр. Наблюдаются и другие странности в работе компьютеров.

Microsoft признала наличие проблем с апдейтами KB 2876063, KB 2859537, KB 2873872, KB 2843638, KB 2843639 и KB 2868846

Источник на новость. 

Сегодня мне в руки попался такой ноутбук, все решилось довольно просто, удалением одного единственного патча, а именно KB2859537. Делается это так:

Нажимаем клавиши Win + R и вводим: cmd

В появившейся командной строке вводим:
wusa.exe /uninstall /kb:2859537 

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

Как же хорошо, что я пересел на Ubuntu на своем ноутбуке.

среда, 7 августа 2013 г.

Установка SaltStack на Debian/Ubuntu и несколько примеров

Добрый день.

Сегодня я напишу первую, вводную часть о прекрасном ПО SaltStack, что же это такое? Грубо говоря, это способ асинхронного запуска команд на любом количестве серверов в неблокируемом режиме. Так же с его помощью можно сконфигурировать сервер, развернуть проект на сервере. Не скромно говоря - это серьезный соперник для Chef, Puppet, Fabric. Обладает очень хорошей документацией, очень активно развивается (топ 10 по числу разработчиков на GitHub  2012 году). При всем при этом, это Open Source проект.

Сразу скажу, что бы не было непоняток:
Salt-master - Сервер который управляет клиентами salt-minion'ами.

среда, 31 июля 2013 г.

Linux Journal и немного Python

Добрый день.

Не так давно я приобрел годовую подписку на журнал Linux Journal. Пишут очень интересно, советую всем. Вместе с подпиской мне стали доступны все электронные версии журнала начиная с апреля 2005-го года. И я хотел бы с вами поделиться. Но было пару проблем:

1. Когда я скачивал их, то сначала не подумал и задал имена файлов в формате: ljмесяцгод.pdf, примерно: lj042005.pdf - это оказалось не удобно, так как номера шли совсем не по порядку.

2. Не охота переписывать вручную название выпусков, тем и прочего (к сожалению LJ далеко не с самого начала стали подписывать PDF версии, видно в списке.

Решил исправить эти проблемы с помощью Python.

понедельник, 29 июля 2013 г.

Установка Proxmox 3 на Debian 7 Wheezy

Добрый день.

Сегодня мне понадобилось установить Proxmox 3 на Debian 7 Wheezy в принципе установка не сильно отличается, от установки Proxmox 2 на Debian Squeeze, но есть и небольшие отличия и подводные камни. В этой заметке я опишу, как я все же установил Proxmox 3.

Расписывать как установить Debian Wheezy я не буду, так как там все понятно и тривильно, в данной заметке мой сервер будет получать IP-адрес: 192.168.1.180, а имя хоста у меня будет: asidorov.ntbsoft.com. Я буду пользоваться командой sudo, так как работать из под root'a - плохой тон.

1. Настройка и установка

Для начала нам необходимо отредактировать файл /etc/hosts:
# sudo nano /etc/hosts

Добавляем:
192.168.1.180  asidorov.ntbsoft.com asidorov

Добавим PVE репозитории в /etc/apt/sources.list:
# sudo nano /etc/apt/sources.list

Допишем:
deb http://download.proxmox.com/debian wheezy pve

Теперь нужно получить ключ для репозитория:
# wget  http://download.proxmox.com/debian/key.asc
# sudo apt-key add key.asc

Обновим список доступных пакетов и обновим все ПО:
# sudo apt-get update && sudo apt-get upgrade

Установим ядро Proxmox VE:
# sudo apt-get install pve-firmware pve-kernel-2.6.32-22-pve

Так же доставим хедер для этого ядра:
# sudo apt-get install pve-headers-2.6.32-22-pve

Теперь перезагрузим систему и загрузимся с нашего нового ядра: 2.6.32-22-pve

После перезагрузки проверим правильное ли мы ядро выбрали:
# uname -a

вывод должен быть примерно таким:
Linux 2.6.32-22-pve ...

Удалим ядро 3.2.0, что бы не загрузиться случайно с него:
# sudo apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64

И обновим загрузчик:
# sudo update-grub

Установим пакеты, необходимые для корректной работы Proxmox'a:
# sudo aptitude install proxmox-ve-2.6.32 ntp ssh lvm2 postfix ksm-control-daemon vzprocps open-iscsi bootlogd

Здесь специально использовал aptitude, так как когда попытался установить с помощью apt-get появилась проблема, описанная в пункте 2.2. Так как в Debian, aptitude лучше обрабатывает зависимости, то проблем не возникло.

Нужно настроить сетевой интерфейс, для этого перейдем в панель управления (https://asidorov.ntbsoft.com:8006) и приведем настройки интерфейса vmbr0 к такому виду:

2. Возможные проблемы во время установки

2.1 Во время dist-upgrade мне выдало что нету некоторых firmware:
W: Possible missing firmware /lib/firmware/tigon/tg3_tso5.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3_tso.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3
ну что ж, решим эту проблему:
# sudo nano /etc/apt/sources.list

добавляем к списку возможных пакетов: non-free приведя к такому виду:
deb http://ftp.ua.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.ua.debian.org/debian/wheezy main contrib non-free
Обновим список доступных пакетов и установим firmware:
# sudo apt-get update
# sudo apt-get install firmware-linux-nonfree

2.2 Во время установки необходимых для proxmox пакетов, я получил примерно такой вывод:
dpkg: error processing proxmox-ve-2.6.32 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 pve-cluster
 redhat-cluster-pve
 fence-agents-pve
 libpve-access-control
 clvm
 libpve-storage-perl
 qemu-server
 resource-agents-pve
 pve-manager
 vzctl
 proxmox-ve-2.6.32
E: Sub-process /usr/bin/dpkg returned an error code (1)

Не ставятся пакеты ругаясь на зависимости.... ну что же мне помогло такое решение этой проблемы:
# cd /var/lib/dpkg/info
и выполнить:
sudo rm pve-cluster.*
sudo rm redhat-cluster-pve.*
sudo rm fence-agents-pve.*
sudo rm libpve-access-control.*
sudo rm clvm.*
sudo rm libpve-storage-perl.*
sudo rm qemu-server.*
sudo rm resource-agents-pve.*
sudo rm pve-manager.*
sudo rm vzctl.*
sudo rm proxmox-ve-2.6.32.*

Вообщем удалить все пре/пост-инсталяционные скрипты, MD5 суммы пакетов и файллисты для всех пакетов, которые не смогли установиться. Теперь можно их установить:
# sudo apt-get -f install

2.3 Так же почему то не была доступна Веб-панель управления, но после перезапуска pveproxy панель стала доступна:
# sudo service pveproxy restart

2.4 После того, как Веб-панель стала доступна, я не смог авторизироваться как root, получая сообщение о не успешной авторизации, исправил это перезапуском pvedaemon:
# sudo service pvedaemon restart

2.5 Во время создания виртуальной машины я получил ошибку:
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
TASK ERROR: start failed: command '/usr/bin/kvm -id 100 ...
Как я смог понять, проблема заключается в том, что не включена поддержка виртуализации VT-x/AMD-x, проверить, поддерживает ли вообще ваш процессор данные технологии можно с помощью команды:
# egrep '(vmx|kvm)' --color=always /proc/cpuinfo

Если ничего не будет выведено, то у меня плохие для вас новости, вы не сможете работать с Proxmox, если же вывод есть, а Proxmox возвращает нам такие ошибки, то нужно включить поддержку виртуализации в BIOS'e.

А так же нужно включить модуль ядра:
# sudo modprobe kvm-intel

3 Возможные проблемы:


1. [....] Starting pve cluster filesystem : pve-cluster[main] crit: Unable to get local IP address  (warning).
Тут просто надо закомментировать строку в файле /etc/hosts, где задан IPv6 адрес для сервера, так как это баг в Proxmox под Debian.

2. Если после установки ядра, у вас по умолчанию загружается старое ядро, а не pve.
# sudo update-grub
# sudo nano /etc/default/grub 
Ищем секцию с ядром от Proxmox (pve) и изменяем значение GRUB_DEFAUL=значение pve ядра.
# sudo update-grub
# sudo reboot


Полезные ссылки:

В принципе это копипаст официальной доки, с маленькими добавлениями: тыц

четверг, 18 июля 2013 г.

Донастройка системы Дебет Плюс V12 для корректной работы с справочниками

Добрый день.

В одной из заметок я описывал, как настроить удаленную базу данных для системы Дебет Плюс V12. Однако я не знал, что модуль "Справочники" так же нужно хранить на сервере. В этой заметке я исправил этот недочет, тут я опишу как подключить хранилище справочников с помощью Samba, так как клиенты используют Windows.

Установим samba:
# sudo apt-get install samba

Теперь отредактируем настройки, и расшарим папки JDebet и base, которые находятся там же в установочном архиве системы Дебет Плюс.
# sudo nano /etc/samba/smb.conf

И добавляем такие записи:
[JDebet]
path = /home/user/DebetPlusV12/JDebet
guest ok = yes
read only = no
case sensitive = no

[base]
path = /home/user/DebetPlusV12/base
guest ok = yes
read only = no
case sensitive = no

Теперь нужно подключить эти папки и изменить немного настройки:
Нажать правой кнопкой мыши на "База MySQL" и выбрать пункт "Настройка соединений" и привести к такому виду:
Где 10.8.0.6 - IP-адрес сервера.

Далее выбираем пункт "Администрирование" и перейдем на вкладку "Администрирование" находясь на этой вкладке нужно нажать на кнопку "Настройки" и выбрать пункт "Параметры запуска"

В поле "Пароль для изменения настроек" нужно ввести "150301" и нажать кнопку "Принять" после этого привести поле "Путь к JDebet" к такому виду и нажать кнопку "Сохранить".

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

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

Миграция Zimbra 7.2.0 (Ubuntu 10.04) на Zimbra 8.0.4 (Ubuntu 12.04)

Добрый день.

Данная заметка является продолжением предыдущей по установке Zimbra 8.0.4 на Ubuntu 12.04. В данной заметке я распишу как мигрировать почту (файлы, письма, подключенные ящики и прочее) с Zimbra 7.2.0 на Zimbra 8.0.4. Сразу оговорюсь, что я не буду использовать стандартные утилиты, так как это слишком долго и муторно. Я же буду использовать триальную версию замечательного плагина для Zimbra: ZeXtras SUITE.

1. Установка ZeXtras SUITE на оба сервера

Данную утилиту нужно установить как на сервер с Zimbra 7.2.0 так и на сервер с Zimbra 8.0.4. Установка аналогичная, поэтому я покажу установку только на Zimbra 8.0.4.

Скачаем саму программу:
# wget http://www.zextras.com/download/zextras_suite-latest.tgz

Разархивируем полученный архив:
# tar xvfz zextras_suite-latest.tgz

Перейдем в полученный каталог:
# cd zextras_suite-1.8.8/

Запустим установку ZeXtras:
# sudo ./install.sh all

Установщик обнаружит установленную версию Zimbra и запросит вас ввести подтверждение с лицензионным соглашением:
Do you agree with the terms of the software license agreement? [N] 
Введем Y и нажмем Enter.

На запрос Press any key to continue.... слушаемся и жмем любую клавишу.

На запрос ZeXtras Suite Core will now be installed. Proceed? [Y] жмем Enter.
Теперь нас спросят остановить ли почтовый демон? (Do you wish to stop the Zimbra Web Application (mailboxd)? [Y] ) почему бы и нет? жмем Y и Enter.
Далее последует запрос: The ZeXtras Suite Zimblet will now be installed. Proceed? [Y]  соглашаемся и жмем Enter. После чего начнется установка зимлета. И установка ZeXtras Suite закончилась!

2. Экспортируем данные из Zimbra 7.2.0

Теперь перейдем в панель управления Zimbra 7.2.0 так как мы будем экспортировать данные из нее. Перейдем на вкладку ZxBackup.
Найдем в правом нижнем углу кнопку Export Backup и нажмем ее. После чего появится окно Export Wizard, где на первой странице необходимо указать куда произвести бекап, я решил экспоритровать в каталог: /opt/zimbra/backup и нажмем кнопку Далее.
На второй вкладке необходимо выбрать каике домены нужно экспортировать (в моем тестовом примере это ntbsoft.com и zimbra5.ntbsoft.com), я выберу все нажав на кнопку "Select All > > "
На последней третьей вкладке будет подведен итог, что мы хотим экспортировать, а так же можно указать e-mail куда будет отправлено сообщение по началу и завершения экспорта.
Я же оставлю пустым, так как буду следить за этим через вкладку ZxNotifications.
Судя по уведомлению экспорт успешно завершился. Теперь нам надо перенести бекап на новый сервер.

3. Перенос бэкапа на новый сервер

Подключимся через консоль (сервер со старой зимброй) и перейдем в каталог /opt/zimbra/backup:
# cd /opt/zimbra/backup

Синхронизируем содержимое каталога /opt/zimbra/backup с заранее созданным каталогом /home/wimbo/backup на новом сервере:
# sudo rsync -avz * wimbo@zimbra7.ntbsoft.com:/home/wimbo/backup/

Когда все данные синхронизируются мы получим такое сообщение:

4. Импорт данных в Zimbra 8.0.4

Теперь зайдем через консоль на новый сервер (где установлена Zimbra 8.0.4):
Скопируем файлы в каталог /opt/zimbra/backup
# sudo cp -r /home/wimbo/backup/* /opt/zimbra/backup/

Создадим каталог zextras в каталоге /opt/zimbra/backup/:
# sudo mkdir /opt/zimbra/backup/zextras

Теперь поменяем владельца:
# sudo chown -R zimbra.zimbra /opt/zimbra/backup/*

Подготовительные работы закончились, теперь перейдем в панель управления Zimbra 8.0.4 на вкладку ZxBackup и нажмем кнопку Import Backup
На первой странице Import Wizard укажем директорию куда мы сохранили бэкап: /opt/zimbra/backup
И нажмем кнопку Далее. На второй страницы выберем все домены, которые хотим импортировать:
Жмем Далее. На четвертой страницы выберем все почтовые ящики которые хотим импортировать:
После нажатия кнопки Далее попадем на последнюю страницу Import Wizard'a, где можно увидеть итоговую информацию и указать e-mail для отправки отчета.

В принципе вот и все мигрирование, однако у меня была такая странная вещь, что я смог импортировать разве что раза с 10го. Хотя делал все каждый раз аналогично.

Так как программа сама по себе платная и дается всего 30 дней для триала, ее можно либо купить, довольно дешего, либо же удалить:
# cd ~/zextras_suite-1.8.8
# sudo ./install -u all

И радуемся почте на новом сервере.

Установка и настройка Zimbra 8.0.4 на Ubuntu 12.04

Добрый день.

Понадобилось установить почтовый сервер, для конторы в которой я работаю, так сложилось исторически, что в конторе используют Zimbra на Ubuntu 12.04 по этому и решил написать данную заметку об установке. Так же в конторе используется централизованная аутентификация пользователей через Active Directory на Windows Server 2003.

Теоретическая часть:
Zimbra Server - программный продукт для автоматизации совместной деятельности рабочих групп. Использует несколько СПО-проектов. Он раскрывает SOAP-интерфейс программирования приложений во всей его функциональности и также является IMAP- и POP3-сервером. Сервер доступен на платформах Linux (Red Hat Enterprise, Fedora, Ubuntu, Debian, Mandriva, SUSE Linux) и Mac OS X.

Некоторые возможности Zimbra:
Глобальная книга адресов - видны все сотрудники предприятия, у кого есть почтовый ящик в домене.
Календарь и Ежедневник - можно планировать задачи и делать напоминания о них.
Документы - можно хранить, просматривать и редактировать прямо в обозревателе (браузере).

В моем распоряжении находится домен: ntbsoft.com. Сервер Zimbra будет висеть на домене: zimbra4.ntbsoft.com.
Обязательное условие для корректной работы Zimbra Server является корректные А и MX записи на DNS сервере.

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

1.1 Настройка сети

Зададим статический IP, так как все получается по DHCP, что бы наш сервер случайно не поменял IP-адрес.
Проверим, адрес который получает сервер по DHCP:
# ifconfig
Сервер получил IP-адрес: 192.168.1.179

Отредактируем файл: /etc/network/interfaces
# sudo nano /etc/network/interfaces

Приведем его к такому виду:
где address - IP-адрес сервера;
netmask - маска подсети;
gateway - шлюз по умолчанию;
dns-nameserver - DNS-сервер.
Сохраним и закроем файл.

Перезапустим сеть:
# sudo /etc/init.d/networking restart
И проверим работоспособностью сети с помощью утилиты ping:
# ping ya.ru

1.2 Добавление нужных записей на DNS сервер (Windows Server 2003):

Я подключаюсь к серверу с помощью утилиты mstsc. Откроем панель управления DNS:
Start -> Administrative Tools -> DNS
Перейдем к управлению доменом ntbsoft.com. Нажмем правой кнопкой мыши на свободном пространстве и выберем New Host (A) ...:
После чего откроется окно New Host, заполним его и поставим галочку Create associated pointer (PTR) record, нажмем кнопку Add Host:
Появится сообщение об успешном добавлении записи:
Однако для того, что бы можно было пересылать почту необходимо добавить так же MX запись. Правой кнопкой на свободном пространстве и выберем New Mail Exchanger (MX) ...:
Заполним все поля в соответствующем окне New Resource Record и нажмем ОК:
DNS-записи успешно добавлены.

1.3 Установим зависимости

# sudo apt-get install libgmp3c2 - библиотека для выполнения арифметических операций любой точности;
# sudo apt-get install libperl5.14 - перл для корректного выполнения программ со встроенным Perl-интерпретатором;
# sudo apt-get install sysstat - набор утилит для измерения производительности системы;
# sudo apt-get install sqlite3 - база данных SQLite3;
# sudo apt-get install pax - для работы со страницами памяти.

1.4 Скачаем установщик Zimbra с официального сайта

# cd ~
# wget http://files2.zimbra.com/downloads/8.0.4_GA/zcs-8.0.4_GA_5737.UBUNTU12_64.20130524120036.tgz
Распакуем архив:
# tar xfvz zcs-8.0.4_GA_5737.UBUNTU12_64.20130524120036.tgz

И перейдем в разархивированный каталог:
# cd zcs-8.0.4_GA_5737.UBUNTU12_64.20130524120036

2. Установка

Запустим из под root скрипт установки:
# sudo ./install.sh

Нас дважды спросят согласны ли мы с лицензией:
Do you agree with the terms of the software license agreement? [N]
Тут надо написать: Y и нажать Enter.

Установщик проверит все ли зависимости удольвлетворены:
В секции Checking for installable packages будут отображены все пакеты, которые идут с Zimbra и которые можно установить, я решил установить все, кроме zimbra-proxy, вы же решайте сами:
Соглашаемся введя Y и нажав Enter на запрос The system will be modified. Continue? [N]
Начнется установка пакетов. После установки пакетов появится меню:
Здесь нам надо всего лишь установить пароль администратор, для этого на запрос  Address unconfigured (**) items (? - help) введем цифру "3" и нажмем Enter. Появится меню Store configuration  тут введем цифру "4" и нажмем Enter.

На запрос ввода пароля зададим нужный нам пароль, у меня: password
Теперь введем букву "r" и нажмем Enter. Появится главное меню с информационным сообщением: *** CONFIGURATION COMPLETE - press 'a' to apply
И на запрос Select from menu, or press 'a' to apply config (? -help) введем букву "a" и нажмем Enter.
На запрос Save configuration data to a file? [Yes] введем yes и нажмем Enter.
Будет выведена строка Save config in file: [/opt/zimbra/config.9020] тут можно ввести в какой файл сохранить конфигурацию или оставить файл по умолчанию и нажать просто Enter.
На запрос The system will be modified - continue? [No] введем yes и нажмем Enter.

Начнется установка Zimbra. Установщик спросит уведомлять ли вас о работе Zimbra сервера, ну что же, согласимся введя Yes и нажав Enter.
Zimbra установлена!

Теперь давайте проверим, все ли сервисы запущены. Для начала сменим текущего пользователя на zimbra:
# sudo su zimbra
И запустим саму проверку:
# zmcontrol status

Вывод должен быть таким:
Если же какой-то из сервисов не запущен, воспользуемся командой:
# zmcontrol start

3. Настройка Zimbra

Перейдем по адресу https://zimbra4.ntbsoft.com:7071/zimbraAdmin/
Попадем на окно авторизации:
Административная учетная запись по умолчанию: admin, а пароль тот, который был задан во время установки, у меня password.
После успешного логина попадем в саму Zimbra:
Тут можно произвести большую часть настроек, однако по умолчанию Zimbra не доступна по http только по https, давайте исправим это.

Сменим текущего пользователя на zimbra:
# sudo su zimbra

Доступность панели можно настроить с помощью утилиты zmtlsctl у нее есть несколько режимов. Нам же нужна доступность как по http так и по https, для этого используется параметр both:
# zmtlsctl both

Теперь надо перезапустить демон mailboxd:
# zmmailboxdctl stop
# zmmailboxdctl start

Теперь Zimbra доступна как по http так и по https.

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

Рисуем простую графику с помощью Python 3(turtle)

Добрый день.

Начал изучать Python и увидел замечательную встроенную библиотеку turtle (черепашка), в которой можно рисовать простые рисунки, работа с ней очень похожа на то, как можно рисовать в Paint.

Хочу привести пару примеров, того что можно нарисовать, с небольшим пояснением.

Были использованы такие методы как:
turtle.color(color) - Задаем цвет курсора color ;
turtle.penup() - Поднимаем курсор, что бы при перемещении курсора не происходило рисование линий;
turtle.pendown() - Опускаем курсор, что бы при перемещении курсора происходило рисование линий;
turtle.goto(x, y) - Перейти в точку с координатами x и y;
turtle.circle(radius) - Нарисовать круг с радиусом = radius;
turtle.right(degrees) - Повернуть курсор на право на degrees градусов;
turtle.left(degrees) - Повернуть курсор на лево на degrees градусов;
turtle.forward(length) - Нарисовать линий длиной = length;
turtle.done() - Этим методом должны завершаться все программы использующие turtle.

Для начала нарисуем символ олимпиады, вот что мы получим в конце:
Алгоритм рисования довольно прост:

  1.  Задаем цвет, которым будем рисовать;
  2.  Поднимаем черепашку (курсор), что бы во время перехода не рисовались линии;
  3.  Переходим на интересующие нас координаты x и y;
  4.  Опускаем черепашку (курсор);
  5.  Рисуем круг с радиусом 45.


И так выполняем для каждого круга. Вот небольшой исходный код программы:
import turtle # Импортируем библиотеку turtle

turtle.color("blue") # Устанавливаем цвет черепашки
turtle.penup() # Поднимаем курсор
turtle.goto(-110, -25) # Переходим по нужным координатам
turtle.pendown() # Опускаем курсор
turtle.circle(45) # Рисуем круг с радиусом 45

turtle.color("black")
turtle.penup()
turtle.goto(0, -25)
turtle.pendown()
turtle.circle(45)

turtle.color("red")
turtle.penup()
turtle.goto(110, -25)
turtle.pendown()
turtle.circle(45)

turtle.color("yellow")
turtle.penup()
turtle.goto(-55, -75)
turtle.pendown()
turtle.circle(45)

turtle.color("green")
turtle.penup()
turtle.goto(55, -75)
turtle.pendown()
turtle.circle(45)

turtle.color("black")
turtle.penup()
turtle.goto(0, 80)
turtle.pendown()
turtle.write("Olympic Symbol") # Вместо еще одного круга выводим надпись "Olympic Symbol"

turtle.done()


Теперь нарисуем домик (я очень плохо рисую, кстати :) ):
Тут я использовал еще несколько новых функций:
import turtle

turtle.penup()
turtle.goto(35, 35)
turtle.right(90) # Повернуть курсор на 90 градусов вправо
turtle.pendown()
turtle.forward(70) # Пройти вперед расстояние 70, если курсор опущен, то будет нарисована линия по пути слоедования

turtle.right(90)
turtle.forward(70)

turtle.right(90)
turtle.forward(70)

turtle.right(90)
turtle.forward(70)

turtle.penup()
turtle.goto(45, 35)
turtle.right(225)
turtle.pendown()
turtle.forward(70)

turtle.left(90)
turtle.forward(70)

turtle.left(135) # Повернуть курсор влево на 135 градусов
turtle.forward(100)

turtle.done()


Ссылки:
Обожаю Python за его мега крутую документацию, вот по turtle: тыц

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

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

Добрый день.

Сегодня пробуя подключиться к удаленному рабочему столу с помощью mstsc в Windows 7, я неожиданно получил сообщение об ошибке: "Для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола" (к сожалению скриншот не подумал сделать).

Как выяснилось это довольно частая проблема для клиентских компьютеров с Windows. Для решения этой проблемы необходимо выполнить:

Нажмите Win+R и введите команду: regedit

Этой командой мы запускаем Редактор реестра.

В редакторе реестра необходимо пройти по пути: HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> и на пункт MSLicensing нажать правой кнопкой и выбрать пункт "Удалить" и на вопрос ответить утвердительно:

Теперь попробуем подключиться снова с помощью mstsc и у нас все работает.

среда, 19 июня 2013 г.

Дебет Плюс V12 с удаленной базой данных MySQL в VPN сети


Добрый день.
В прошлой статье мы настроили сеть между сервером и клиентами по VPN. Теперь же установим сервер баз данных - MySQL и настроем его на работу с системой Дебет Плюс V12.

Так же продолжение: Донастройка системы Дебет Плюс V12 для корректной работы с справочниками.

Наши пользователи смогут работать с Дебет Плюс, а вся информация будет храниться на удаленном сервере.

1.  Установка mysql

Обновим список достпуных пакетов:
# sudo apt-get update

Установим MySQL сервер:
# sudo apt-get install mysql-server -y

Во время установки нам предложат установить пароль для root пользователя MySQL:

Теперь нам необходимо настроить MySQL так, что бы он был доступен по VPN сети:
Правим /etc/mysql/my.cnf:
# sudo nano /etc/mysql/my.cnf

Ищем строку bind-address = 127.0.0.1
и заменяем 127.0.0.1 на нужный нам IP-адрес, в нашем случае это 10.8.0.1 (IP-адрес OpenVPN сервера).

Перезапустим сервер MySQL:
# sudo /etc/init.d/mysql restart

Далее нам необходимо скачать систему Дебет Плюс V12, что бы создать базу данных:

Скачиваем систему для Linux (я положил его на свой аккаунт Dropbox, однако можно скачать и с официального сайта: http://debet.kiev.ua):
# wget https://dl.dropboxusercontent.com/u/65786771/DebetPlusV12x64_12.0.84_20121228.tar.gz

Разархивируем:
# tar xvf DebetPlusV12x64_12.0.84_20121228.tar.gz

Перейдем в нужный катало:
# cd DebetPlusV12/base/org2

Зайдем на сервер MySQL под root пользователем:
# mysql -uroot -p

Далее нам необходимо импортировать базу данных Дебет Плюс (тут указывается относительный путь, так как мы логинились в MySQL из каталога: DebetPlusV12/base/org2, если же мы логинимся из другой директории необходимо указать полный путь к файлу dpbase.arh):
mysql> source dpbase.arh

Будет создано окало 1000 таблиц необходимые для работы Дебет Плюс V12.

Однако для корректной работы Дебет Плюс V12 нужна еще одна база, создадим ее:
mysql> CREATE DATABASE `dpadmin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Теперь нам необходимо создать пользователя базы данных - DPADMIN и разрешить ему доступ с любого компьютера к базам данных - dpbase и dpadmin:
mysql> GRANT ALL PRIVILEGES ON dpbase.* TO "DPADMIN"@"%" IDENTIFIED BY "secret" WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON dpadmin.* TO "DPADMIN"@"%" IDENTIFIED BY "secret" WITH GRANT OPTION;

Запомните пароль (secret) он может быть любым, но должен быть одинаковым в обеих командах.


2. Настройка клиентов

Скачиваем Дебет Плюс V12: тыц

Устанавливаем, установка очень простая.
Запускаем DebetPlusV12.exe.

И нажмем правой кнопкой мыши на "База MySQL" и выберем пункт "Настройка соединения".

Появится окно:

Тут нас все устраивает по умолчанию кроме пунктов:
Сервер базы данных: куда мы впишем IP-адрес нашего MySQL ( и OpenVPN сервера) - 10.8.0.1.
И установим галочку "Настройки в базе данных".
Согласимся с изменения нажав "Готово".

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

На что мы получим сообщение об ошибке, так и должно быть.
Жмем "ОК".

Далее появится следующее окно "Подключение к СУБД"
Пользователь: DPADMIN - его мы создали ранее на MySQL сервере.
Пароль: secret - его мы задали во время создания пользователя.

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

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

Однако если не произвести дальнейшие манипуляции, то каждый раз заходя в систему Дебет Плюс V12 мы будем получать запрос на ввод пароля для пользователя базы данных DPADMIN.
Давайте исправим этот недостаток.

Нажмем на пункт "Администрирование".

На вкладке "Администрирование" нажмем на пункт "Пользователи".

Откроется окно "Администрирование". Сначала нажмем на плюсик напротив "Пользователи системы", там будет только один пользователь: DPADMIN.
Установим галочку "Сменить пароль" и заполним поле "Пароль для подключения к БД", сюда введем secret - пароль, который мы вводили ранее. Далее нажмем "Сохранить" и "Закрыть".

Все! теперь мы можем спокойно работать с системой Дебет Плюс V12.


Ссылки:
Основная мысль отсюда: тыц