12 Ноя

Соединение с несколькими БД с использованием ActiveRecord

В общем, с Ruby у меня пошло как-то получше, чем ранее с python’ом и фреймворком Yii2.
Смотрю тут всякие видеоуроки, читаю книги, уже немного фигачу всякие мелочи с использованием Sinatra и ActiveRecord.
Вот понадобилось тут из одного приложения создавать подключения к нескольким базам данных. Искал всякие варианты — ничего толком не нашел. Там вроде можно как-то конфиги указывать в database.yml, но у меня не получилось. Зато получилось вот так:
для начал нам потребуется собственно сам activerecord

в файле app.rb — основной файл приложения Sinatra, — прописываем следующее:

require 'rubygems'
require 'sinatra'
require 'sinatra/activerecord'

ActiveRecord::Base.configurations["mysql1"] = {
:adapter => "mysql2",
:host => "localhost",
:username => "username",
:password => "userpassword",
:database => "databasename",
:encoding => "utf8"
}

ActiveRecord::Base.configurations["mysql2"] = {
:adapter => "mysql2",
:host => "localhost",
:username => "username",
:password => "userpassword",
:database => "oher_databasename",
:encoding => "utf8"
}

А далее в коде при создании класса с нашей моделью прописываем вот так:

class Table1 < ActiveRecord::Base
establish_connection "mysql1"
end

class Table2 < ActiveRecord::Base
establish_connection "mysql2"
end

Вот и всё. После этого у меня приложение заработало нормально.

Немного позже напишу ещё о том, как подключиться к базе MSSQL из синатры (если, конечно, получится).

09 Окт

PHP + MSSQL

Попросили меня тут на днях сделать простенький интерфейсик для работы с базой данных одной программы по управлению доступом (СКУД). Но дело в том, что там используется база MSSQL.
Не, ну а чо, микрософт, так микрософт. Начал рыть инфу, что да как делать. В общем, нашел такую штуку как FreeTDS — это драйвер для подключения как раз-таки к нужной мне БД.
Поставил, прогеморроился полдня с ней, но так и не получилось настроить. В итоге начал искать другие варианты.
И наткнулся на одном сайте, что с php, установленной через apt-get, не очень кошерно использовать тулзы, установленные из исходников. Подсказали, что при таком варианте достаточно доустановить просто
apt-get install libsybdb5 freetds-common php5-sybase
/etc/init.d/apache2 restart

В общем, установил, рестартнул Апач, в коде пхп прописал что-то типа такого:

  try {
    $hostname = "server_ip";
    $port = 1433;
    $dbname = "DatabaseName";
    $username = "Login"; 
    $pw = "Password"; 
    $pdo = new PDO ("dblib:host=$hostname:$port;dbname=$dbname",$username,$pw);
  } catch (PDOException $e) {
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";
    exit;
  }

и всё волшебным образом заработало!

21 Апр

Настройка NRPE в Nagios на примере Debian сервера

Исходные данные:

  • Установлен Nagios
  • Установлен nagios-plugins
  • Установлен NRPE

Чтобы с помощью NRPE мониторить удаленный сервер, надо поставить на том сервере NRPE-демон, который будет запускать команды нагиоса у себя, а также установить плагины для нагиоса.

apt-get install nagios-nrpe-server
apt-get install nagios-plugins

Далее на целевом сервере идем в папку /etc/nagios и правим там файл nrpe.cfg

Выставляем

#адреса, с которых разрешено обращение к демону nrpe
allowed_hosts=<ip-адрес сервера, на котором установлен Nagios>

#опция, которая позволяет присылать аргументы
dont_blame_nrpe=1

А также почти в самом конце прописываем команды, которые будут выполняться. Напрмиер вот такую: Читать далее

21 Апр

Настройка SIP на АТС Panasonic TDE100/200 и NCP500/1000

Нашел у себя в загашниках (какое забавное слово) старый мануал по настройке SIP на панасониках, который я делал для себя, по большей части.

Сразу хочу отметить, что В панасониках бесплатно можно настроить только SIP-регистрацию на удаленной АТС, а для того, чтобы регистрировать SIP-абонентов на самом панасонике необходимо будет приобрести sip-лицензии у своего дилера.

В общем, вот так.
Ладно, собственно, сам мануал привожу в том виде, как записал, со всеми нюансами, которые есть/были у нас. Если вдруг кто это увидит и что-то станет непонятно — можно писать в комментарии.

Настройка SIP на TDE100 и NCP500

  • Необходимо сначала добавить виртуальную плату V-SIPGW (тупо перетягиванием)
  • После добавления переводим ее в OUS, потом заходим в Port Property
  • Читать далее

24 Апр

Books.ru снова радует

И снова продажа книг по свободной цене. Предыдущая акция была уже довольно давно, и не очень разнообразной, а теперь добавили больше книг хороших и разных.
Себе присмотрел несколько книг по программированию, одну по тайм-менеджменту (на всякий случай) и несколько по UNIX/Linux.