воскресенье, 23 апреля 2017 г.



УСТАНОВКА MSSQL ЧЕРЕЗ LXC В LINUX DEBIAN JESSIE

 1. ставим службу LXC как описано тут
 2. создаем контейнер для Ubuntu версией не ниже 10.04
 lxc-create -t download -n xmssql -- -d ubuntu -r trusty -a amd64
ВНИМАНИЕ! MSSQL- ставится только на архитектуру - amd64
3. после установки вас попросят создать внутри контейнера пользователя, запускаем контейнер:
 lxc-start -n xmssql

4. так как пользователя внутри еще нет, то входим через  chroot
 lxc-attach -n xmssql

5. создаем пароль для пользователя user
 adduser user

6. добавляем пользователя user в группу sudo
 usermod user -G sudo

7. теперь правим наш конфиг контейнера /var/lib/lxc/[имя контейнера]/config - для доступа в сеть:
 # Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
 # Parameters passed to the template:
 # Template script checksum (SHA-1): 704a37e3ce689db94dd1c1a02eae680a00cb5a82
 # For additional config options, please look at lxc.container.conf(5)

 # Uncomment the following line to support nesting containers:
 #lxc.include = /usr/share/lxc/config/nesting.conf
 # (Be aware this has security implications)


 # Common configuration
 lxc.include = /usr/share/lxc/config/ubuntu.common.conf

 # Container specific configuration
 lxc.rootfs = /var/lib/lxc/xmssql/rootfs
 lxc.rootfs.backend = dir
 lxc.utsname = xmssql
 lxc.arch = amd64

 ##
 lxc.autodev = 1
 lxc.kmsg = 0

 #Количество /dev/tty
 lxc.tty = 6

 # Network configuration
 #lxc.network.type = empty
 lxc.network.type = veth
 lxc.network.flags = up
 lxc.network.link = br0
 lxc.network.veth.pair= br0-1
 lxc.network.name = eth0
 lxc.network.hwaddr = 00:AF:DF:00:88:99

 # Autostart
 lxc.start.auto = 1
 lxc.start.delay = 5
 lxc.start.order = 100

8. чтоб было понятно, в системе уже создан интерфейс br0 в который подключен только виртуальный интерфейс virt0 (uml-utilites) - поэтому мы подключаем наш мост br0-1 на br0, имя внутреннего интерфейса в боксе eth0, его мак-адрес (00:AF:DF:00:88:99) тоже указываем.
9. в боксе прописываем настройки вручную для eth0 (/var/lib/lxc/[имя контейнера]/rootfs/etc/network/interfaces), или подключаем на хосте сервер dhcp и указываем ему интерфейс br0
10. теперь стартуем наш бокс и подключаемся для установки необходимых пакетов для дальнейшей работы:
 lxc-start -n xmssql
 lxc-console -n xmssql
 $
 $ sudo apt-get update
[!]  если внешний интерфейс на хосте в правилах IPTABLES:
 ...
 nat
 -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.122.123
 ...
 или
 ...
 -A POSTROUTING -o ppp0 -j MASQUERADE
 COMMIT
  ...
 -  то у вас сеть должна работать без проблем и обновление репозитария пройдет нормально
[!!] - иначе настройте доступ контейнеру в интернет.
11. далее ставим необходимое:
 sudo apt-get install curl wget mc ssh htop iftop nmap resolvconf dnsutils aptitude
12. теперь можно выйти из консоли lxc-console
 $ exit
 ...
- выход из консоли полностью: Ctr+a и q
13. теперь подключаемся через ssh к контейнеру
 ssh user@[ip вашего контейнера]
14. все, мы в нормально настроенной Ubuntu

Локализация Ubuntu:
1. ставим неоходимые пакеты в контейнере:
 sudo apt-get install language-pack-ru
 sudo update-locale LANG=ru_RU.UTF-8
2. Перезагружаем контейнер:
 lxc-stop -n xmssql
 lxc-start -n xmssql
3. входим через ssh в контейнер и проверяем:
 sudo locale
- вы должны увидеть: 
 LANG=ru_RU.UTF-8
 LANGUAGE=
 LC_CTYPE="ru_RU.UTF-8"
 LC_NUMERIC="ru_RU.UTF-8"
 LC_TIME="ru_RU.UTF-8"
 LC_COLLATE="ru_RU.UTF-8"
 LC_MONETARY="ru_RU.UTF-8"
 LC_MESSAGES="ru_RU.UTF-8"
 LC_PAPER="ru_RU.UTF-8"
 LC_NAME="ru_RU.UTF-8"
 LC_ADDRESS="ru_RU.UTF-8"
 LC_TELEPHONE="ru_RU.UTF-8"
 LC_MEASUREMENT="ru_RU.UTF-8"
 LC_IDENTIFICATION="ru_RU.UTF-8"
 LC_ALL=

4. теперь приступим к установке MsSQL - Взято тут
 $ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
 $ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
 $ sudo apt-get update
 $ sudo apt-get install -y mssql-server
5.  после установки вас попросят настроить сервер MsSQL:
 $ sudo mssql-conf setup

6.  указываем пароль не менее 8 символов и должны быть хоть одна большая буква и 2-3 цифры
7. теперь установка mssql-tools - Взято тут:
 $ sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
 $ sudo curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
 $ sudo apt-get update
 $ sudo apt-get install mssql-tools unixodbc-dev
8. для удобства работы пробросим  симлики в /usr/local/bin
 $ sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin/sqlcmd
9.  все, можно начинать работать с сервером MsSQL.

[!] По поводу подключения читать Тут

[!] Дополнительно, настройки сервера и нюансы связанные с работой и настройкой сервера SQL вы можете прочитать ТУТ

Готовый сервер можно использовать как для 1С так и для других производственных задач...


суббота, 21 января 2017 г.

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

Внимание тем кто сюда попал, в этом блоге далее буду периодически писать разные решения по проблемам OS Debian, но программные решения я вынес в новый блог:
https://vixdevelop.blogspot.ru
Добро пожаловать! :-)

суббота, 10 января 2015 г.

Debian или как спасти себя от ошибок! Делаем backup конфигурационных файлов...

Когда я еще начинал свое изучение системы Linux, я очено много раз ошибался при настройке системы и вся беда была в том, что я не подумал вовремя сохранить перед редактированием оригинальный файл конфигурации, думаю я не один такой.. :) После этого я создал себе скрипт для регулярных backup всего каталога /etc с фиксированием даты его сохранения и когда у меня очередной раз "забыл как там было" или "не получилось", то открываем архив последнего backup и вуаля... полегчало. :)

и еще совет начинающим.. в каталоге /etc создайте каталог например /script и храните все такие скрипты там.. Знаю, точнее догадываюсь, что скажут гуру, но поверьте оно того стоит. Ведь при архивации вашего каталога /etc  запакуются и ваши скрипты в той версии которая была тогда и если вдруг понадобится посмотреть, а как я раньше это делал - пожалуйста в архиве.. Место хранения архивов на ваше усмотрение, у меня выделенный раздел или просто в /home/backup/etc.
И еще! После каждых изменений в конфигурационных файлах запускайте скрипт архивации каталога /etc ... Для упрощения запуска сделайте в /usr/local/bin ссылку на этот скрипт в /etc/scripts/bak-etc.sh
Тогда не надо будет указывать каждый раз полный путь к скрипту..
Сам скрипт ниже:

#!/bin/bash
##
mdate=`date +%d%m%y_%H.%M`
cd /home/backup/etc;
tar -cf etc-$mdate.tar /etc;
gzip -9 etc-$mdate.tar;
cd
exit 0

И удачи всем вам.. :)

Пересоединение ppp0 или как упростить себе жизнь.. :)

Пишу скрипт на bash который за меня смотрит сеть и если что не так на сервере то ее "поднимает". Комментарии в скрипте..
По поводу работы скрипта, если сеть лежит, то скрипт переподключает сетевой интерфейс eth0 после чего пытается поднять РРР0. Критерий проверки сайт гугла .. :)
для работы скрипта ставим его в crontab так:

############# reconnect-pppoe
*/1 * * * * root /etc/scripts/test-net.sh > /dev/null 

 Сам скрипт:

#!/bin/sh
#########################
scriptlog=/var/log/syslog
provider="dsl-provider"
test_host="google.com"

## pppoe reconnect
reconnect() {
## reconnect eth0
    poff -a
    sleep 5
    ifdown eth0
    sleep 15
    ifup eth0
    sleep 15
## reconnect ppp0
    pon "$provider"
    sleep 15
# если необходимо перестартовать службы то пишем тут...
/etc/init.d/bind9 restart
/etc/init.d/openvpn restart
};

test_ppp0=`ifconfig|grep ppp0|tail -n 1|wc -m`

if [ "$test_ppp0" != 0 ];
    then 
        ping -s 5 -A -c 5 "$test_host" > /dev/null  && exit
        echo `date` "нет опроса хоста в сети интернет, пересоединяюсь..." >>$scriptlog
        reconnect
    else
        echo `date` "нет интерфейса ppp0, пересоединяюсь..." >>$scriptlog
        reconnect
fi

exit  0


Периодически буду тут свои скрипты писать.. Мож кому и помогут. :)

понедельник, 10 декабря 2012 г.

Debian & intel GM965/GL960 Integrated Graphics Controller

Я являюсь "счастливым" обладателем интегрированного видеоадаптера GM965/GL960 Integrated Graphics Controller, а так как я пользуюсь только системой Linux на своем ноутбуке, то крайне болезненно принимаю некоторые глюки этого поделия когда приходится например обновлять ПО, в данный момент установил ядро версии 3.6.9, и начались странности..
периодически при непонятных но вычисляемых обстоятельствах ноут уходит в черный экран, при этом все продолжает работать, но изображение недоступно насмерть..
прикол в том что вызывает такое странное поведение именно тяжелые программы, например все от mozilla, иногда libreoffice, было и от virtualbox..
при очередном таком глюке, вслепую перешел в консоль и сделал dmesg|tail > err.txt
после перезагрузки увидел это:

[drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
[drm:i915_reset] *ERROR* Failed to reset chip.
.. гм..
сделал запрос на модуль: modinfo i915

parm:           invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to dri-devel@lists.freedesktop.org, if your machine needs it. It will then be included in an upcoming module version. (int)
parm:           modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int)
parm:           fbpercrtc:int
parm:           panel_ignore_lid:Override lid status (0=autodetect [default], 1=lid open, -1=lid closed) (int)
parm:           powersave:Enable powersavings, fbc, downclocking, etc. (default: true) (int)
parm:           semaphores:Use semaphores for inter-ring sync (default: -1 (use per-chip defaults)) (int)
parm:           i915_enable_rc6:Enable power-saving render C-state 6. Different stages can be selected via bitmask values (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. default: -1 (use per-chip default) (int)
parm:           i915_enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
parm:           lvds_downclock:Use panel (LVDS/eDP) downclocking for power savings (default: false) (int)
parm:           lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
parm:           lvds_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int)
parm:           vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int)
parm:           reset:Attempt GPU resets (default: true) (bool)
parm:           enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
parm:           i915_enable_ppgtt:Enable PPGTT (default: true) (int)
............. из всего этого богатства опций самые интересные:
1. lvds_channel_mode:
2. reset
3. enable_hangcheck
4. modeset:
немного "поигравшись" получил стабильное решение только так:
добавляем или создаем в /etc/modprobe/i915kms.conf
 options i915 modeset=1
 options i915 enable_hangcheck=1
 options i915 reset=0
 options lvds_channel_mode=1
.. обязательно качаем самую последнюю версию libdrm-intel1
качаем тут: http://intellinuxgraphics.org/download.html
нас интересует : http://cgit.freedesktop.org/mesa/drm/
тянем что-то типа  libdrm-2.4.40.tar.gz
распаковываем где нибудь..
в распакованном каталоге делаем autogen.sh
следом configure.sh
если просит чего, доустанавливаем...
после делаем make -j3 (компиляция в 3 потока, у кого мощнее можно больше по числу ядер процессора)
следом ставим пакет если его нет : apt-get install checkinstall
теперь в каталоге даем команду: checkinstall -D
отвечаем утвердительно, и везде названия вместо libdrm меняем на libdrm-intel1
затем запускаем сборку deb пакета нажимая enter ..
теперь ставим пакет, тем самым обновляемся в данном случае до libdrm-intel1-2.4.40
советую также обновить xserver-xorg-video-intel  до версии 2.2.15.0-3 из backports
.. после этого черный экран у меня перестал появляться..
я специально тут написал, так как заметил, что весь интернет обсуждает эту проблему, но к сожалению мало кто дает решение этого..

вторник, 4 сентября 2012 г.

Настройка печати через USB-сервер AgeStar LB3 или как заставить печатать?

Не совсем наверно тут в тему то, что я напишу.. :)
..но потратив кучу времени на изучение этого можно сказать "девайса" и наткнувшись на разного рода форумы, чудом удалось узнать его возможности...
http://www.age-star.ru/catalog/adapter/show/58/
И так, позиционируется как USB Server AgeStar LB3
, предоставленное ПО к нему исключительно для Windows, к тому же полное отсутствие автоматизации при запуске.. ( в новой версии оно появилось, но так ужасно реализовано.. ) и есть одно скрытое но.. аппаратные возможности у него не такие уж и плохие.. :)
как выяснилось может принимать протоколы LPR, а значит можно теоретически печатать на него напрямую.. :) Что собственно я и сделал..
и так.. сначала мы присвоим ему как в инструкции ipaddres, например 10.10.10.5, через замудренное ПО установим активными все его USB порты.. или те которые предполагаются для использования принтеров..
..к сожалению запуск через wine не проверял.. но думаю все возможно..
если нет такой возможности, можно через http://адрес устройства.. и там прописать его ip
 теперь самое интересное.. ПО которое к нему идет - не нужно..
подключаем принтер, и делаем tcp-ip порт - стандартный.. указываем заданный ip и в настройках порта устанавливаем как протокол LPR и номер очереди например 1(это номер порта USB на устройстве)...
Все! .. можно печатать!.. :)
для наглядности  это настройки порта для Windows:
 
Для линукс выбираем способ подключения LPR и в строке подключения указываем согласно рекомендации:
lpd://ip-address-or-hostname/queue?option=value
или если в примере выше то:
lpd://10.10.5.1/queue?option=1 
..Вуаля.. :)


воскресенье, 2 сентября 2012 г.

Linux Deban & Canon LBP3010 - 3050

Возникла потребность в установке принтера очень "любимой" фирмы Canon... принтер из серии LBP30xx а конкретно - LBP3010. .. как обычно после нескольких экспериментов и поисков на просторах интернета выкладываю конечный результат в виде тарболла с автоматической установкой. Конкретно устанавливался на версии Debian Squeeze. В создании скрипта установки использованы материалы предоставленные разработчиками фирмы Canon для Ubuntu... качать тут: http://download.qbpro.ru/download/pkg/printers/lbp-x/LBP3010-install.tar.gz

P.S. - люди, не покупайте Canon.. не стоит он своих денег.. :\