Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Клуб юнуксоидов > Установка кластера серверов 1С под


Автор: mihanik 9.7.2009, 19:33
Это не то что бы вопрос...
Это что-то блогоподобное.
Реалити шоу!!! smile

Задумал я настроить работу кластера серверов на linux.
Буду сюда выкладывать лог своих действий.
Если вдруг что-то я буду делать не так, то вы мне подскажете?
Очень прошу.

Системные требования 1С:Предприятия 8 - Linux (только на рабочих и центральных серверах кластера)
    
Debian GNU/Linux 4.0 Intel x86
ALT Linux 2.4
ASP Linux 11
Red Hat Enterprise Linux 4 update 4
Fedora Core 6
Fedora Core 5
Fedora Core 4

Сервер баз данных PostgreSQL 

# Linux

    * Fedora Core 4
    * Fedora Core 5
    * Fedora Core 6
    * Red Hat Enterprise Linux 4 update 4
    * ASP Linux 11

Поэтому пошёл искать/скачивать ASP Linux 11.

Автор: bilbobagginz 9.7.2009, 22:01
всё конечно интересно, и круто... а когда кластеры начнутся ?

Автор: mihanik 10.7.2009, 21:27
Скоро начнутся.

Дистрибутив нашёл.

ftp://mirror.yandex.ru/asplinux/i386/11.2/aspl_11.2-dvd.iso

Автор: mihanik 11.7.2009, 21:56
Ну что ж...
11 asplinux не увидела мои диски...
Скачал 14 asplinux cobalt
Устанавливаться устанавливается, но после первой перезагрузки, когда создаётся обычный пользователь...
Короче, после создания первого пользователя каждый раз уходит в чёрный экран.
Переставлял несколько раз с одним и тем же результатом.
Когда один раз коротко нажимаешь кнопку включения компьютера, то комп потихоньку штатно выключается, а затем при включении линукс загружается только в чёрную консоль.
Запустить х-сервер так и не получилось...
Заметил, что если во время чёрного экрана (после создания первого пользователя) выключить комп нештатно (ресет), то при следующем запуске гуй грузиться, всё похоже нормально работает.
Но мне это не понравилось...
Я что-то не так делаю?
 smile 

Автор: bilbobagginz 12.7.2009, 01:07
mihanik, судя по ассортименту, дистрибутив тебе наверное подойдёт вот этот:
http://www.centos.org/

качай 5-ку, последнюю (не знаю какая она там сейчас).

эта система практически 100% компотобильна с RHEL5.

http://fedoraproject.org/wiki/AndreasBierfert/Wine#RHEL.2FCentos

т.е. это ты пока составлял инфраструктуру.

потом установи PostgreSQL, нужной для 1C версии.

а потом под готовый wine ставь свою 1С...


Автор: mihanik 12.7.2009, 02:25
bilbobagginz, спасибо за наводку!  smile 

Однако, wine мне не нужен вообще!!!
 smile 
И без него вопросов хватает...

Автор: bilbobagginz 12.7.2009, 11:15
понятно.
если тебе wine не нужен, то тогда 1C у тебя на линуксе бежать не будет.

Автор: mihanik 12.7.2009, 13:06
Цитата(bilbobagginz @  12.7.2009,  11:15 Найти цитируемый пост)
сли тебе wine не нужен, то тогда 1C у тебя на линуксе бежать не будет.


Уважаемый bilbobagginz!
Я не хочу запустить 1С под линуксом.
Я хочу запустить под линуксом, так сказать, сервер баз 1С. Сервер предприятия баз 1С. Кластер серверов 1С.
Называй как хочешь.

Т.е. 1С может работать в клиент-серверном варианте.
Клиент написан только под винду, а вот серверный вариант написан как под линукс, так и под виндовс.
Ставь что хочешь!!!


Кстати!!!
Я уже установил и более-менее настроил кластер серверов 1С под ASP Linux 11.
Сейчас провожу тест-драйв.
Немного позже, выложу алгоритм, по которому всё настроил...

Автор: mihanik 12.7.2009, 13:54
Итак...

Перепробовал несколько дистрибутивов.
Сразу и без косяков всё заработало именно под ASP Linux 11.
Под остальными постоянно какие-то косяки, пляски с бубном...
Ближе всего к цели подошёл на Fedora 11.
После того, как окончательно разберусь с запуском сервера 1С под ASP Linux 11, буду пытаться запустить его под  Fedora 11.

Итак, алгоритм.

1. Загружаемся с DVD-диска ASP Linux 11.2

2. Выбор языка установки: Russian

3. Тип установки: выборочная

4. Выбор метода назначения дискового пространства: "Использовать свободное место" (т.к. это у меня это вторая система на компе)

5. Выбор пакетов для установки: "Сервер"

6. Нажимаю кнопку "Установить" и жду, пока всё накопируется и установиться.

7. Выбираем установщик ASPLinux: 
- GRUB
- Установить в MBR

8. Выбор сетевой карты: Далее -> Далее

9. Выбор монитора: Далее

10. Выбор видеокарты: Далее

11. Выбор языка: выбрал стиль переключения раскладок. Далее

12. Установка даты и времени: Далее

13. Администирование:
- установил пароль для root
- указал данные для ещё одного пользователя

Нажал "Добавить", "Далее", "Перезагрузка"

14. Вошёл в систему под собой.

15. Система/Администрирование/Уровень безопасности
- отключить брандмауэр
- проверил, что "Настройка Selinux" в положении "Отключено".

16. Система/Администрирование/Сеть
Выбираем сетевой адаптер -> Изменить
- ip-адрес: 192.168.0.240
- маска подсети: 255.255.255.0
- шлюз по умолчанию: 192.168.0.1
на закладке DNS
- имя компьютера: asplinux
- первичный DNS: 192.168.0.1
- путь поиска в DNS: MSHOME

17. Перезагружаюсь

18. Система/Администрирование/Настройка сервера/Samba
Закладка "Основной"

- Настройка/Параметры сервера/рабочая группа : mshome

- Настройка/Параметры сервера/описание : samba server

Закладка "Безопасность"
- Режим аутентификации: Пользователь
- Шифровать пароли: да
- гостевая учётная запись: nobody

19. Перезагружаюсь.

20. Приложения/"Установка/удаление программ"
в строке поиска ввожу "postgres" и ищу все установленные пакеты
далее снимаю галки со всех пакетов, которые установлены.
Т.е., как понимаю, удаляю всё, что связано с postgres

21. Перезагружаюсь.

22. Захожу в терминал: Приложения/Стандартные/Терминал

23. становлюсь суперпользователем:
     su root

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

     cd desktop

25. Устанавливаю драйвер защиты

     rpm -i aksusbd-redhat-1.8.1-2.i386.rpm

Драйвер можно скачать здесь: http://www.aladdin.ru/bitrix/redirect.php?event1=download&goto=/upload/iblock/39a/HDD_RPM_RedHat_i386.tar.zip

Автор: mihanik 12.7.2009, 14:30
Продолжаем.


26. Выключил комп, воткнул ключ защиты в USB, включил комп.

27. На рабочий стол скопировал папку postgres с изменённым дистрибутивом (взял тот дистрибутив, что есть на сайте 1С и на специальных дисках для франчайзи).

27. Опять захожу в терминал под суперпользователем
при помощи команды cd перехожу в папку с дистрибутивами

cd desktop
cd postgres
cd i386

28. устанавливаю postgres

Цитата

Установка PostgreSQL 8.1 должна производиться от лица пользователя root.

Для обеспечения работоспособности 1С:Предприятия 8.1 достаточно установить только часть из предоставляемых rpm-пакетов PostgreSQL 8.1. Например, последовательность команд для установки минимально необходимого набора rpm-пакетов для архитектуры x86-64 выглядит следующим образом:


rpm -i postgresql-libs-8.1.5-14.1C.i386.rpm
rpm -i postgresql-8.1.5-14.1C.i386.rpm
rpm -i postgresql-server-8.1.5-14.1C.i386.rpm
rpm -i postgresql-pl-8.1.5-14.1C.i386.rpm
rpm -i postgresql-contrib-8.1.5-14.1C.i386.rpm


Цитата

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

LANG=ru_RU.utf-8 /etc/init.d/postgresql start


29. Перезагружаюсь

30. На рабочий стол копирую папку дистрибутивом от сервера 1С (взял тот дистрибутив, что есть на сайте 1С и на специальных дисках для франчайзи).


31. Опять захожу в терминал под суперпользователем
при помощи команды cd перехожу в папку с дистрибутивами

32. Устанавливаю сервер 1С

Цитата

Установка 1С:Предприятия должна выполняться от лица пользователя root.

Для установки каждого из rpm-пакетов следует перейти в каталог, в котором размещаются файлы rpm и выполнить команду:

rpm -i <имя_файла_rpm>

Первым из rpm-пакетов 1С:Предприятия 8.1 всегда должен устанавливаться 1C_Enterprise-common.

Оставшиеся два rpm-пакета могут быть установлены как вместе, так и по отдельности. Порядок установки при этом значения не имеет.

Полная установка 32-битной версии 1С:Предприятия 8.1 для Linux может быть выполнена с помощью следующей последовательности команд:



rpm -i 1C_Enterprise-common-8.1.13-41.i386.rpm
rpm -i 1C_Enterprise-server-8.1.13-41.i386.rpm
rpm -i 1C_Enterprise-ws-8.1.13-41.i386.rpm

33. Перезагружаюсь.

34. Опять захожу в терминал под суперпользователем

35. Запускаю кластер серверов 1С командой

/etc/rc.d/init.d/srv1cv81 start


Автор: bilbobagginz 12.7.2009, 14:31
Цитата(mihanik @  12.7.2009,  13:06 Найти цитируемый пост)
Я хочу запустить под линуксом, так сказать, сервер баз 1С. 

всё хорочо, только FYI: 
1C бежит под линуксом в любой реинкарнации под wine.



Автор: mihanik 12.7.2009, 14:36
Цитата(bilbobagginz @  12.7.2009,  14:31 Найти цитируемый пост)
1C бежит под линуксом в любой реинкарнации под wine.


Гм...


bilbobagginz!!! 

1. Наша фирма не работает с нелицензионными программами
2. У клиента есть сервер под виндой настолько глючный, что настроить сервер баз 1С там почти не реально. Точнее, уже настроили, но так коряво...
3. Систему нужно переставлять - деньги
4. Покупать "колы" на подключение к серверу надо - деньги.

Только на одну винду с лицензиями на подключение 50 000 рублей получается... + лицензия на сервер баз 1С + моя работа...

Клиент хочет деньги сохранить.
Поэтому хочешь, как хочешь, а сервер баз нужно ставить именно под линуксом.

Добавлено через 3 минуты и 44 секунды
А теперь, знатоки, внимание вопрос!!!

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

/etc/rc.d/init.d/srv1cv81 start

Добавлено через 12 минут и 46 секунд
bilbobagginz, и ещё!

Мы оба правильно понимаем, что "1С" - это клиентская часть, а "сервер баз 1С" - это серверная часть.
Клиент не может выполнять роль сервера и наоборот.
1С" и "сервер баз 1С" работают в связке так же, как Firefox на компе пользователя и апач на компе веб-хостера...
Ну... Как-то так...
 smile 

Автор: bilbobagginz 12.7.2009, 15:22
Цитата(mihanik @  12.7.2009,  14:36 Найти цитируемый пост)
Мы оба правильно понимаем, что "1С" - это клиентская часть, а "сервер баз 1С" - это серверная часть.

нет, я возможно неправильно понимаю систему.
я думал, что "сервер баз 1C", это бинарное приложение, сетевой сервер = информационная система [написанная под винду, а под линухом бегущая через wine], 
которая использует внешние базы данных [в том числе и PostgreSQL] в качестве хранилищ, и преобразовывает их в какие-то себе нужные форматы, для клиентов. 

Если ты прав, то я узнал для себя что-то новое, то бишь что "сервер баз 1С" - это всего лишь группа генерных сервисов с какой-то специальной настройкой, которыми пользуются клиенты 1C, и никакой прослойки на уровне приложения 1C между клиентом и DB нет.
т.е.:
  • samba с какими-то специальными настройками
  • база данных postgres с какой-то специальной схемой
и всё.

насчёт:
Цитата(mihanik @  12.7.2009,  14:36 Найти цитируемый пост)
Как сделать так, чтобы при каждой загрузке не приходилось заходить под суперпользователем и запускать сервер баз командой
/etc/rc.d/init.d/srv1cv81 start

man chkconfig

Добавлено через 2 минуты и 5 секунд
Цитата(mihanik @  12.7.2009,  14:36 Найти цитируемый пост)
1. Наша фирма не работает с нелицензионными программами


Цитата(mihanik @  12.7.2009,  14:36 Найти цитируемый пост)
Поэтому хочешь, как хочешь, а сервер баз нужно ставить именно под линуксом.


ты уверен, что понимаешь что такое "wine" ?

Автор: mihanik 12.7.2009, 15:58
Цитата(bilbobagginz @  12.7.2009,  15:22 Найти цитируемый пост)
это всего лишь группа генерных сервисов с какой-то специальной настройкой, которыми пользуются клиенты 1C, и никакой прослойки на уровне приложения 1C между клиентом и DB нет.


Точно!


Цитата(bilbobagginz @  12.7.2009,  15:22 Найти цитируемый пост)
ты уверен, что понимаешь что такое "wine" ?

А зачем мне вайн?
Я вайн  использовать не хочу.  И пока не буду.
Насколько помню, чтобы использовать вайн нужно всё-таки какую-то лицензию на винду.
Ты это имел в виду?

Добавлено через 11 минут и 51 секунду
Цитата(bilbobagginz @  12.7.2009,  15:22 Найти цитируемый пост)
man chkconfig


О!
Классно!!!
Обязательно почитаю!!!
А по-русски об этом где-то реально почитать?

Автор: bilbobagginz 12.7.2009, 17:29
мне показалось, что кто-то (не я) в этой беседе подумал, что я ему рекомендую как-то нарушать закон...
Цитата(mihanik @  12.7.2009,  15:58 Найти цитируемый пост)
Насколько помню, чтобы использовать вайн нужно всё-таки какую-то лицензию на винду.

нет.
http://www.winehq.org/ - это программный слой, заменяющий windows для программ windows: он умеет делать интерпретацию вызовов win32 api в линуксовые/POSIX вызовы.
Так как написан вне зависимости от microsoft, не требует лицензионной версии windows, но если ты устанавливаешь какое-то ПО, напр. MS Office, на него тебе нужна лицензия (естественно).
Что и как хорошо бежит под wine можно посмотреть на сайте в базе данных о поддерживаемых приложениях.


Цитата(mihanik @  12.7.2009,  15:58 Найти цитируемый пост)
А по-русски об этом где-то реально почитать?

не знаю.

Автор: mihanik 12.7.2009, 22:07
Тогда не понял, к чему была фраза

Цитата(bilbobagginz @  12.7.2009,  15:22 Найти цитируемый пост)
ты уверен, что понимаешь что такое "wine" ?


Автор: mihanik 12.7.2009, 23:17
Относительно /var/lib/pgsql/data/postgresql.conf (взято с http://www.nclug.ru/content.php?article.160)

Это реально работает!!!


Цитата

параметр effective_cache_size должен принимать значение, равное как минимум половине оперативной памяти сервера в килобайтах, то есть для 8G он будет равен 524288;

Автор: mihanik 12.7.2009, 23:42
Еще тносительно /var/lib/pgsql/data/postgresql.conf

Взято с http://wiki.e-lug.ru/index.php?title=Debian5.0.0(x86)_1c_Linux-server


ОСТОРОЖНО!!!
У меня после этого postgres упал!!!


Цитата

/var/lib/data/postgresql.conf:

# память - побольше
temp_buffers = 16MB
work_mem = 16MB
maintance_work_mem = 32MB

# рекомендуют половину физической памяти
effective_cache_size = 1024MB

fsync = off
wal_buffers = 1024kB

# НАДО для нормальной работы 1С
autovacuum = on
autovacuum_naptime = 5min

# тут надо выставить немного больше оригинального значения
max_lock_per_transaction = 256
deadlock_timeout = 2s


Автор: mihanik 13.7.2009, 00:26
Цитата(mihanik @  12.7.2009,  23:42 Найти цитируемый пост)
ОСТОРОЖНО!!!
У меня после этого postgres упал!!!

Причём реально так упал... Переустанавливать пришлось...

Автор: mihanik 13.7.2009, 10:15
Итак... Сегодня проводил лабораторные испытания у себя в офисе.

Прикольно.

1. Кластер серверов у меня поднят на линуксе, как вы уже догадались, на ноуте. 
проц - пентиум 1.7
оперативы - 1.2 Гб
раздел под файловую систему линукса - 20 Гб

2. Подключал к этому импровизированному серверу 10 виндовых машин. Одновременно запускал на формирование достаточно сложные отчёты...
Всё прошло ОТЛИЧНО!!!
Правда нагрузка на процессор у ноута не опускалась ниже 97%...  smile 
Оперативка же при этом была занята не полностью. Примерно где-то на 850 Мб.  smile 

3. Отметил одну прикольную особенность (в инете об этом уже писали), кластер серверов у меня работал БЕЗ КЛЮЧА ЗАЩИТЫ!!!
Правда, из некоторых источников можно услышать, что в таком случае возможно подключение только 12-ти  клиентских машин - максимум... Но мне на это наплевать.
Пока наплевать...  smile 
Потом как-нибудь проведу испытания направленные на уточнение максимального числа одновременно подключаемых клиентских машин.

Следующим этапом испытаний будет запуск кластера серверов не под ASP, а под Fedora.

Автор: bilbobagginz 13.7.2009, 23:26
если ты прав, и весь этот твой "кластер серверов" - всего лишь набор настроек для стандартных сервисов, то эти стандартные сервисы можно перенастроить, и убрать какие-либо ограничения или ключи.
но всё-таки сдаётся мне, что есть там какой-то мета-сервис, бинарник, к которому подключаются клиенты. Иначе не стыкуется у меня ничего.


Автор: mihanik 14.7.2009, 07:11
Цитата

Кластер серверов 1С:Предприятия 8 является логическим понятием и представляет собой множество рабочих процессов, обслуживающих один и тот же набор информационных баз.


ПОдробнее тут - http://v8.1c.ru/overview/cluster.htm

Добавлено через 1 минуту и 27 секунд
В моём случае "Центральный сервер кластера" и "Сервер баз данных" - это одна и та же машина.

Автор: bilbobagginz 18.7.2009, 02:57
mihanik,
  • процессы кластера серверов:
    • ragent.exe
    • rmngr.exe
    • rphost.exe
  • хранилища данных:
    • список кластеров;
    • реестр кластера.
и после:
Особенности рабочих серверов под управлением Linux:
  • не могут взаимодействовать с СУБД Microsoft SQL Server
  • не поддерживается работа с СОМ-объектами
  • аутентификация на сервере выполняется по протоколу Kerberos
  • не доступна работа с Интернет-соединением
скорее всего программы работают из под wine

проверить это просто, посмотри если бежит процесс wine





Автор: mihanik 18.7.2009, 06:22
Цитата(bilbobagginz @  18.7.2009,  02:57 Найти цитируемый пост)
скорее всего программы работают из под wine

проверить это просто, посмотри если бежит процесс wine


По-моему не бежит...
Конечно посмотрю повнимательнее, но до этого не замечал...

У меня тут сейчас другая проблема...
Под 11-й федорой работать не хочет...

Автор: bilbobagginz 18.7.2009, 06:40
Цитата(mihanik @  18.7.2009,  06:22 Найти цитируемый пост)
Под 11-й федорой работать не хочет...

пакеты из отряда 1С надо настраивать по инструкции производителя, особенно если нет опыта.

Автор: mihanik 18.7.2009, 06:49
Цитата(bilbobagginz @  18.7.2009,  06:40 Найти цитируемый пост)
пакеты из отряда 1С надо настраивать по инструкции производителя, особенно если нет опыта.

В том-то и дело, что установка отрабатывает штатно.
postgrtesql запускается без ошибок.
Сервер 1С же запускается с ошибкой.
Такое ощущение, что ему что-то мешает.
Буду разбираться, что именно.

Пока собираю симптомы...

Добавлено через 1 минуту и 29 секунд
Действуя по инструкции производителя всё встало на asp 11.2, по той же самой инструкции на fedora 11 устанавливается, но не работает...

Автор: bilbobagginz 18.7.2009, 07:04
Цитата(mihanik @  18.7.2009,  06:49 Найти цитируемый пост)
Такое ощущение, что ему что-то мешает.
Буду разбираться, что именно.

Пока собираю симптомы...

то, что "ему что-то наверное мешает" не похоже на сбор симптомов, а на гадание на кофейной гуще.
файлы-дневники надо смотреть СРАЗУ.
сначала системные, а потом дневники приложения. а не делать "смелые предположения".

Добавлено через 3 минуты и 40 секунд
Цитата(mihanik @  18.7.2009,  06:49 Найти цитируемый пост)
Действуя по инструкции производителя всё встало на asp 11.2, по той же самой инструкции на fedora 11 устанавливается, но не работает...

всегда надо читать:
1. аппаратные требования
2. поддерживаемые оперативные системы
3. программные требования (зависимости)

 (т.е. программные зависимости, напр. скрипты пользуются какой-то программой, которая по умолчанию не устанавливается. значит эти скрипты не будут работать)

Автор: mihanik 18.7.2009, 07:27
Цитата(bilbobagginz @  18.7.2009,  07:04 Найти цитируемый пост)
1. аппаратные требования
2. поддерживаемые оперативные системы
3. программные требования (зависимости)



1. Аппаратные требования не указаны.
2. Поддерживаемые операционные системы я уже выкладывал. (Fedora 11 среди них нет)
    * Fedora Core 4
    * Fedora Core 5
    * Fedora Core 6
    * Red Hat Enterprise Linux 4 update 4
    * ASP Linux 11
3. программные требования (зависимости) не прописаны...


На ASP Linux 11 всё отлично работает, но меня она не устраивает по причине того, что мамка на компе современная и ASP Linux 11 просто не устанавливается на этот комп, если включен raid-контроллер. А без этого raid-массив не фурфчит.
Кроме того, гигабитная сетевуха не определяется.

Fedora 11 на это железо встаёт отлично.
Штатная установка сервера 1С проходит без ошибок.
А потом при запуске выдаёт следующее...

Цитата

[root@fedora mihanik]# /etc/rc.d/init.d/srv1cv81 restart
Stopping 1C:Enterprise 8.1 server: Warning: server not running!
OK
Starting 1C:Enterprise 8.1 server:   Error: service failed to start!
FAILED

[root@fedora mihanik]# /etc/rc.d/init.d/srv1cv81 restart
Stopping 1C:Enterprise 8.1 server: Warning: server not running!
OK
Starting 1C:Enterprise 8.1 server: OK
[root@fedora mihanik]# 


Т.Е. при первом запуске ошибка, при повторном запуске запускается, но не работает.
Файлы с нужными настройками не создаются.
Точнее... Файлы создаются, но  с нулевыми настройками (какой-то текст в файлах есть)... В них нет нужных данных.

Добавлено через 5 минут и 8 секунд
Тут тонкость...
При первом запуске сервера 1С файлов с настройками нет.
Сервер видит, что файлов нет, собирает какую-то информацию, создаёт файлы и запускается.

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

При первом запуске происходит ошибка, но файлы с настройками (не верными) создаются.
При повторном запуске ошибок нет, служба запускается, но сервер не работает...

По-моему при первом запуске ошибка возникает где-то на стыке сервера 1с и postgres...

Добавлено через 14 минут и 41 секунду
Создаётся файл srvribrg.lst  с пустыми настройками 



Цитата

{

{0},

{0},0}



:-(

Автор: mihanik 18.7.2009, 07:46
Цитата

srvribrg.lst - хранится на центральном сервере кластера в каталоге <рабочий каталог центрального сервера> (например, C:/Program Files/1cv81/server/srvribrg.lst) и содержит список кластеров, зарегистрированных на данном компьютере сервера 1С:Предприятия. Содержащиеся в нем данные необходимы для нормальной работы приложений, использующих данный сервер 1С:Предприятия.



В нём должно быть что-то типа

Цитата

{0,
{a5f05ab2-4e43-11dd-bf8a-080027abb90f,"Локальный кластер",1541,"rhel4",0,0,0,0},
{0},
{1,
{a727bb0a-4e43-11dd-bf8a-080027abb90f,"rhel4",1,0,1000}
},
{0},
{1,
{a7264310-4e43-11dd-bf8a-080027abb90f,"Центральный сервер",1540,"rhel4",1,
{1,
{1560,1591}
},"","tj5daRhzSSf5IxrUd1r7yA=="}
}
}
srvribrg.lst
{
{1,
{a5f05ab2-4e43-11dd-bf8a-080027abb90f,"Локальный кластер",1541,"rhel4",0,0,0,0}
},
{0},0}


Добавлено через 2 минуты и 36 секунд
Нашёл кое-что тут - http://www.1c-pro.ru/lofiversion/index.php/t12812.html

Автор: mihanik 18.7.2009, 08:18
Может, кто-то специалист в скриптах?

СЕрвер 1С инициализируется так...

Код

# chkconfig: 35 74 36
# description: Starts and stops the 1C:Enterprise daemons

#------------------------------------------------------------
# global macros. generated by install script
#------------------------------------------------------------
G_CONF_STYLE=rpm
G_VER_ARCH=i386
G_VER_MAJOR=8
G_VER_MINOR=1
G_VER_BUILD=13
G_VER_RELEASE=41
G_BINDIR="/opt/1C/v${G_VER_MAJOR}.${G_VER_MINOR}/${G_VER_ARCH}"
#------------------------------------------------------------

G_VER_SHORT=${G_VER_MAJOR}.${G_VER_MINOR}
G_TITLE="1C:Enterprise ${G_VER_SHORT} server"

#------------------------------------------------------------
# this values can be passed from outside, so perform "z-check"
#------------------------------------------------------------
[ -z "$SRV1CV8_USER"      ] && SRV1CV8_USER=usr1cv${G_VER_MAJOR}${G_VER_MINOR}
[ -z "$SRV1CV8_BINDIR"    ] && SRV1CV8_BINDIR="$G_BINDIR"
[ -z "$SRV1CV8_PIDFILE"   ] && SRV1CV8_PIDFILE="/var/run/srv1cv${G_VER_MAJOR}${G_VER_MINOR}.pid"
[ -z "$SRV1CV8_KEYTAB"    ] && SRV1CV8_KEYTAB="$SRV1CV8_BINDIR/$SRV1CV8_USER.keytab"
[ -z "$SRV1CV8_WAITSTART" ] && SRV1CV8_WAITSTART=5
[ -z "$SRV1CV8_WAITSTOP"  ] && SRV1CV8_WAITSTOP=5

#------------------------------------------------------------
# builds ragent's command line from configuration parameters
#------------------------------------------------------------
function buildCommandLine() {
    local cmdline="$SRV1CV8_BINDIR/ragent -daemon"
    [ ! -z "$SRV1CV8_PORT" ] && cmdline="$cmdline -port $SRV1CV8_PORT"
    [ ! -z "$SRV1CV8_REGPORT" ] && cmdline="$cmdline -regport $SRV1CV8_REGPORT"
    [ ! -z "$SRV1CV8_DATA" ] && cmdline="$cmdline -d \"$SRV1CV8_DATA\""
    [ ! -z "$SRV1CV8_RANGE" ] && cmdline="$cmdline -range $SRV1CV8_RANGE"
    [ ! -z "$SRV1CV8_SECLEV" ] && cmdline="$cmdline -seclev $SRV1CV8_SECLEV"
    [ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug"
    echo $cmdline
}
#------------------------------------------------------------
# checks if process with passed pid exists
#------------------------------------------------------------
function checkpid() {
    ps -p $* > /dev/null
}
#------------------------------------------------------------
# waits SRV1CV8_WAITSTOP seconds for process termination, 
# then kills it
#------------------------------------------------------------
function delayedkill() {
    local mypid=$1
    local delay=$2
    kill $mypid 2>/dev/null
    checkpid $mypid && sleep $delay || return 0
    if checkpid $mypid; then
    kill -9 $mypid
    logWarning "Process refused to die... So it was killed. May be you should increase SRV1CV8_WAITSTOP variable?";
    fi
    return 0
}
#------------------------------------------------------------
# extracts specified param from value from given command-line
#------------------------------------------------------------
function extractParam() {
    local param=$1
    shift

    local tmp=$*
    if [ ! -z "$*" ]; then
    if [ ${tmp:0:1} == "-" ]; then
        tmp=${tmp:1}
        local val=${tmp#*$param }
        # if old and new strings are equal
        # we don't have needed param in cmdline
        # so return
        [ "$val" == "$tmp" ] && return;
        val=${val%% -*}
        echo "$val"
    fi
    fi
}
#------------------------------------------------------------
# call it when something fails
#------------------------------------------------------------
function failure() {
    [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo FAILED
    return 0
}
#------------------------------------------------------------
# extracts data dir from ragent's command line or (if it's 
# empty), builds it from users's home dir
#------------------------------------------------------------
function getDataDir() {
    local cmdline=`getRagentRealCmdLine`
    local datadir="$SRV1CV8_DATA"
    [ ! -z "$cmdline" ] && datadir=`extractParam d $cmdline`

    if [ -z "$datadir" ]; then
    local line=`grep ^$SRV1CV8_USER: /etc/passwd`
    local homedir=${line#*:*:*:*:*:}
    homedir=${homedir%:*}
    datadir="$homedir/.1cv${G_VER_MAJOR}${G_VER_MINOR}/1C/1Cv${G_VER_MAJOR}${G_VER_MINOR}"
    fi

    echo $datadir
}
#------------------------------------------------------------
# returns ragent configuration debug flag
#------------------------------------------------------------
function getDebugStatus() {
    local cmdline=`getRagentRealCmdLine`
    local debugFlag="$SRV1CV8_DEBUG"
    echo "$cmdline" | grep "\-debug" >/dev/null && debugFlag="1"
    [ ! -z "$debugFlag" ] && echo $debugFlag || echo "0"
}
#------------------------------------------------------------
# returns ragent port range
#------------------------------------------------------------
function getPortRange() {
    local cmdline=`getRagentRealCmdLine`
    local range="$SRV1CV8_RANGE"
    [ ! -z "$cmdline" ] && range=`extractParam range $cmdline`
    [ ! -z "$range" ] && echo $range || echo 1560:1591
}
#------------------------------------------------------------
# returns ragent main port
#------------------------------------------------------------
function getRagentPort() {
    local cmdline=`getRagentRealCmdLine`
    local port="$SRV1CV8_PORT"
    [ ! -z "$cmdline" ] && port=`extractParam port $cmdline`
    [ ! -z "$port" ] && echo $port || echo 1540
}
#------------------------------------------------------------
# get's running ragent command-line
#------------------------------------------------------------
function getRagentRealCmdLine() {
    local cmdline=`buildCommandLine`
    local mypid=`getRagentPid "$SRV1CV8_USER" "$cmdline"`
    local result=""
    [ ! -z "$mypid" ] && result=`ps --pid $mypid -o cmd= | sed -e "s/.*-daemon//"`
    echo "$result"
}
#------------------------------------------------------------
# tries to get pid of ragent process, started by this script
#------------------------------------------------------------
function getRagentPid() {
    local user=$1
    shift

    # remove quotes in passed CMDLINE because
    # command line of process doesn't contains'em
    # even if they were passed.
    local cmdline=`echo $* | sed -e "s/\"//g"`

    ps -C ragent -opid=,user=,cmd= | while read curline; do
        local  curPID=`echo $curline | sed -e "s/ .*//"`
        local curline=`echo $curline | sed -e "s/$curPID //"`
        local  curUSR=`echo $curline | sed -e "s/ .*//"`
        local  curCMD=`echo $curline | sed -e "s/$curUSR //"`
        if [ "$curCMD" == "$cmdline" ] && [ "$curUSR" == "$user" ]; then
            echo $curPID
        fi
    done
}
#------------------------------------------------------------
# returns ragent reg port
#------------------------------------------------------------
function getRegPort() {
    local cmdline=`getRagentRealCmdLine`
    local regport="$SRV1CV8_REGPORT"
    [ ! -z "$cmdline" ] && regport=`extractParam regport $cmdline`
    [ ! -z "$regport" ] && echo $regport || echo 1541
}
#------------------------------------------------------------
# returns name of script
#------------------------------------------------------------
function getScriptName() {
    local myname=`basename $0`
    [ ${myname:0:1} = "S" -o ${myname:0:1} = "K" ] && myname=${myname:3}
    echo $myname
}
#------------------------------------------------------------
# returns ragent security level
#------------------------------------------------------------
function getSecLevel() {
    local cmdline=`getRagentRealCmdLine`
    local seclev="$SRV1CV8_SECLEV"
    [ ! -z "$cmdline" ] && seclev=`extractParam seclev $cmdline`
    [ ! -z "$seclev" ] && echo $seclev || echo 0
}
#------------------------------------------------------------
# displays useful information about ragent
#------------------------------------------------------------
function info() {
    echo "$G_TITLE info:"
    echo -n "  Data dir: " && getDataDir
    echo -n " Main port: " && getRagentPort
    echo -n "   RegPort: " && getRegPort
    echo -n "Port range: " && getPortRange
    echo -n "Debug mode: " && getDebugStatus
    echo -n "Sec. level: " && getSecLevel
    return 0
}
#------------------------------------------------------------
# check if our ragent running
#------------------------------------------------------------
function isRagentRunning() {
    local mypid=`getRagentPid $*`
    [ ! -z "$mypid" ] && checkpid "$mypid"
}
#------------------------------------------------------------
# talks to stderr, and then logs failure to stdout
#------------------------------------------------------------
function logError() {
    echo -n "  Error: " >&2
    echo $* >&2
    failure
}
#------------------------------------------------------------
# put some additional non-critical debug info to stderr
#------------------------------------------------------------
function logWarning() {
    echo -n "Warning: " >&2
    echo $* >&2
}
#------------------------------------------------------------
# restarts server
#------------------------------------------------------------
function restart() {
    stop
    start
}
#------------------------------------------------------------
# displays command-line help
#------------------------------------------------------------
function showUsage() {
    local myname=$1
    echo "Usage: $myname [-c config] start|stop|restart|status|info"
}
#------------------------------------------------------------
# starts ragent
#------------------------------------------------------------
function start() {
    echo -n "Starting $G_TITLE: "

    if [ ! -z "$SRV1CV8_DATA" ]; then
    if [ -e "$SRV1CV8_DATA" ]; then
        [ ! -d "$SRV1CV8_DATA" ] && { logError "SRV1CV8_DATA \"$SRV1CV8_DATA\" is a file, not a directory!"; return 0; }
    fi
    fi

    [ ! -f "$SRV1CV8_BINDIR/ragent" ] && { logError "ragent file does not exists!" ; return 0; }
    [ ! -x "$SRV1CV8_BINDIR/ragent" ] && { logError "ragent file is not executable!"; return 0; }

    local cmd2run=`buildCommandLine`

    if isRagentRunning "$SRV1CV8_USER" "$cmd2run"; then
    logWarning "already started!"; 
    else
        # run our process
    if [ -z "$SRV1CV8_USER" ]; then
        export KRB5_KTNAME="$SRV1CV8_KEYTAB"
        $cmd2run
    else
        su -s /bin/bash  - "$SRV1CV8_USER" -c "KRB5_KTNAME=\"$SRV1CV8_KEYTAB\" $cmd2run"
    fi

    sleep $SRV1CV8_WAITSTART # wait a bit before check
    ! isRagentRunning "$SRV1CV8_USER" "$cmd2run" && { logError "service failed to start!"; return 0; }
        
        # check if pidfile exists and remove it if neccessary
        [ -f "$SRV1CV8_PIDFILE" ] && logWarning "pid file existed on server start. it can mean that last run failed..."    
    fi

    local mypid=`getRagentPid $SRV1CV8_USER $cmd2run`
    echo ${mypid} > "$SRV1CV8_PIDFILE"

    success
    return 0
}
#------------------------------------------------------------
# displays ragent status
#------------------------------------------------------------
function status() {
    echo "$G_TITLE status:"
    echo -n "Init script: "
    if [ -f "$SRV1CV8_PIDFILE" ]; then
    echo STARTED.

    local cmd2run=`buildCommandLine`
    echo -n "     Ragent: "
    ! isRagentRunning "$SRV1CV8_USER" "$cmd2run" && echo -n "NOT "
    echo "RUNNING."
    else
    echo NOT STARTED.
    fi
    return 0
}
#------------------------------------------------------------
# stops ragent
#------------------------------------------------------------
function stop() {
    echo -n "Stopping $G_TITLE: "

    [ -f "$SRV1CV8_PIDFILE" ] && rm "$SRV1CV8_PIDFILE"

    local cmd2run=`buildCommandLine`
    if isRagentRunning "$SRV1CV8_USER" "$cmd2run"; then
    mypid=`getRagentPid $SRV1CV8_USER $cmd2run`
    if [ ! -z "$mypid" ]; then
        local childpids=`ps --ppid ${mypid} -o pid=`
        delayedkill $mypid $SRV1CV8_WAITSTOP
        for childpid in $childpids; do
        delayedkill $childpid $SRV1CV8_WAITSTOP
        done
    fi
    else
    logWarning "server not running!"
    fi

    success
    return
}
#------------------------------------------------------------
# functions says something succeded
#------------------------------------------------------------
function success() {
    [ "$BOOTUP" != "verbose" -a -z "$LSB" ] && echo OK
    return 0
}

#------------------------------------------------------------
# script's main function
#------------------------------------------------------------
function main() {
    local myname=`getScriptName`
    local dirname=`dirname $0`
    local realdir=$(cd "$dirname"; pwd)

    # check if someone passed different config throug command-line option
    local configFile=
    [ "$1" == "-c" ] && { configFile="$2"; shift 2; }

    local action=

    case $1 in
    '')
        showUsage $myname
        return 1
        ;;
    --help)
        showUsage $myname
        return 0
        ;;
    info)
        action=info
        ;;
    restart)
        action=restart
        ;;
    start)
        action=start
        ;;
    status)
        action=status
        ;;
    stop)
        action=stop
        ;;
    *)
        showUsage $myname
        return 1;
        ;;
    esac
    # check for config file existence
    if [ -z "$configFile" ]; then
    configFile="/etc/sysconfig/$myname"
    [ -e "$configFile" ] && source "$configFile"
    else
    [ -f "$configFile" ] && source "$configFile"
    fi

    $action
}

#invoke function main
main $*


может, это поможет?

Так понимаю, что ragent не запускается...

Это взял из того, что фраза "service failed to start!" встречается в скрипте всего один раз в секции

Код

#------------------------------------------------------------
# starts ragent
#------------------------------------------------------------
function start() {
    echo -n "Starting $G_TITLE: "

    if [ ! -z "$SRV1CV8_DATA" ]; then
    if [ -e "$SRV1CV8_DATA" ]; then
        [ ! -d "$SRV1CV8_DATA" ] && { logError "SRV1CV8_DATA \"$SRV1CV8_DATA\" is a file, not a directory!"; return 0; }
    fi
    fi

    [ ! -f "$SRV1CV8_BINDIR/ragent" ] && { logError "ragent file does not exists!" ; return 0; }
    [ ! -x "$SRV1CV8_BINDIR/ragent" ] && { logError "ragent file is not executable!"; return 0; }

    local cmd2run=`buildCommandLine`

    if isRagentRunning "$SRV1CV8_USER" "$cmd2run"; then
    logWarning "already started!"; 
    else
        # run our process
    if [ -z "$SRV1CV8_USER" ]; then
        export KRB5_KTNAME="$SRV1CV8_KEYTAB"
        $cmd2run
    else
        su -s /bin/bash  - "$SRV1CV8_USER" -c "KRB5_KTNAME=\"$SRV1CV8_KEYTAB\" $cmd2run"
    fi

    sleep $SRV1CV8_WAITSTART # wait a bit before check
    ! isRagentRunning "$SRV1CV8_USER" "$cmd2run" && { logError "service failed to start!"; return 0; }
        
        # check if pidfile exists and remove it if neccessary
        [ -f "$SRV1CV8_PIDFILE" ] && logWarning "pid file existed on server start. it can mean that last run failed..."    
    fi

    local mypid=`getRagentPid $SRV1CV8_USER $cmd2run`
    echo ${mypid} > "$SRV1CV8_PIDFILE"

    success
    return 0
}

Автор: ZeeLax 18.7.2009, 08:24
Прошу, конечно, прощения, но, по-моему, установка 1С не настолько божественное действо, чтобы позволить нарушать правила форума. Тема странная - местами напоминает бардак, местами - что-то дельное.

M
ZeeLax
Пока переношу в клуб. Если так будет дальше - в мусорку.

Автор: ZeeLax 18.7.2009, 08:25
Этой теме самое место в разделе "Клуб юнуксоидов" smile 

Модератор: Тема перенесена

Автор: bilbobagginz 18.7.2009, 08:32
Цитата(mihanik @  18.7.2009,  08:18 Найти цитируемый пост)
Может, кто-то специалист в скриптах?

я слышал, что эти скрипты написали в фирме 1C.
у вас же всё лицензионное - обратитесь к ним в поддержку.

Автор: mihanik 18.7.2009, 08:35
Цитата(ZeeLax @  18.7.2009,  08:24 Найти цитируемый пост)
установка 1С не настолько божественное действо

Возможно...
Но на мою машину с fedora 11, действуя по описанию производителя, не устанавливается.

Цитата(bilbobagginz @  18.7.2009,  08:32 Найти цитируемый пост)
я слышал, что эти скрипты написали в фирме 1C.
у вас же всё лицензионное - обратитесь к ним в поддержку.

Угу...
Обращался.
Дупель пусто.
Что-то мне не очень в этом отношении политика 1С нравиться...
Их детище на линуксах 2-3 летней давности работает, а на современных дистрибутивах работать отказывается.

Автор: mihanik 6.8.2009, 19:20
 smile 

Проблема решена!

Нужно было просто-напросто прописать в линуксовом файле hosts следующее

127.0.0.1  сетевое_имя_машины ...

Т.е в моём случае прописать , что 

127.0.0.1   asplinux localhost localhost.localdomain localhost4 localhost4.localdomain4


Вот и всё...
  smile 
Тема решена.

Автор: ZeeLax 7.8.2009, 08:37
mihanik, а это вы откуда узнали?

Автор: mihanik 7.8.2009, 17:12
Цитата(ZeeLax @  7.8.2009,  08:37 Найти цитируемый пост)
mihanik, а это вы откуда узнали? 


Стал искать способ заставить сервер 1С вести лог (технологический журнал).
Нашёл.
Заставил сообщать обо всех ошибках.
Запустил сервер 1с.
Он вылетел с ошибкой.
Я проанализировал технологический журнал и увидел, что сервером для запуска используется не localhost, а сетевое имя компа.
Я предположил, что просто имя компа не разрешается.
Добавил в файл hosts описание того, что 

Цитата(mihanik @  6.8.2009,  19:20 Найти цитируемый пост)
127.0.0.1   asplinux localhost localhost.localdomain localhost4 localhost4.localdomain4


Удалил все файлы с настройками.
Запустил сервер 1с.
Он удачно запустился.

Всё.

Чтобы повторить эксперимент, я всё нафиг снёс для того, чтобы потом , переустановил федору 11.
Сразу сделал нужные настройки.
Сервер 1С запустился.

Эксперимент повторён дважды с одним и тем же результатом.
Что и требовалось доказать.
 smile 

Автор: ZeeLax 8.8.2009, 08:18
Нужно не лениться и читать логи smile
Цитата(mihanik @  7.8.2009,  20:12 Найти цитируемый пост)
Что и требовалось доказать.


Автор: ZeeLax 8.8.2009, 08:18
Нужно не лениться и читать логи.
Цитата(mihanik @  7.8.2009,  20:12 Найти цитируемый пост)
Что и требовалось доказать.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)