Много граблей или как я ставил Sams 1.0.1. на openSuse 10.3 (Работает)

snace аватар

Уважаемые форумчане!
Возможно, кому-то эти сведения пригодятся при установке самса.
Буду описывать по ходу возникших трудностей.

Конфигурация системы
ОС OpenSuSe 10.3
Squid 2.6 Stable
MySQL 5.0.45
Sams 1.0.1

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

Грабли вторые: База логов сквида в упор не хотела создаваться, пока я руками не подправил файлик /etc/sams.conf, где прописал явно пароли на MySQL бызы.

Дальше было веселее: решил выбрать тип авторизации ncsa.

Думал все будет ок, ага щаззз - грабли третьи: в openSuse НЕТУ ФАЙЛА htpasswd, который отвечает за генерацию файла /etc/squid/ncsa.sams. Проблема решилась путем создания симлинка с файла /usr/bin/htpasswd2 на каталоги /usr/bin/htpasswd, /usr/sbin/htpasswd и /etc/squid/htpasswd.
Кстати, на этом этапе не забудьте прописать в конфиге сквида следующие строки:

auth_param basic program /usr/sbin/ncsa_auth /etc/squid/ncsa.sams (обязательно иначе не заработает авторизация)
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 minutes (поставил такое значение, так как думал, что здесь возникают следующие грабли)
auth_param basic casesensitive off

Грабли следующие: Все заработало, но не считает статистику. Здесь мне помог участник форума nix_kot (большое ему спасибо). Нужно было раскоментить строчки в сквиде /var/log/squid/access.log (Sams создаст pipe access.log и начнет считать трафик).

Грабли последние и самые коварные: Перезапустил систему и о чудо, Сквид перестал авторизовать пользователей - мучался часа четыре, выпил 2 литра пива... НАШЕЛ, ЭВРИКА. Кто-нибудь заглядывал в Сусе в /etc/rc.d после установки SAMS'a? Так вот, господа, от нашего самца там обязательно должно быть три процесса: samsf, samsdaemon и samsd, в последнем нужно руками закоментить вот эту строчку
#. /etc/init.d/functions
и переправить вот этот кусок (привожу уже исправленный вариант)
start()
{
echo -n "Starting samsd: "
startproc "$EXE"
RETVAL=$?
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
echo
}
потом сделать следующие команды, для того, чтобы ваша суся подцепила эти три процесса в автозагрузку:
insserv samsd
insserv samsdaemon
insserv samsf

После перезапуска у меня все заработало. Удачи всем, надеюсь этот пост будет полезен.

snace аватар

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

Отформатировал и выложил историю хождения по граблям в wiki:
http://sams.nixdev.net/wiki/OpenSuse10.3

ps: Исправленный init-скрипт с удовольствием выложу на сайт и включу в contrib.

--
NixDev - Open Source solutions for life

Если кто-нибудь предоставит мне init скрипт для SAMS под SLES я его положу на nixdev.net и в дистрибутив в contrib.
Иначе людям раз за разом придется писать велосипеды или искать по форумам.
--
NixDev - Open Source solutions for life

snace аватар

To Nix_kot

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

Приведу свой sams.conf (может кому пригодится)

[client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=
MYSQLVERSION=4.0
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/usr/local/squid/etc_dummy
SQUIDLOGDIR=/usr/local/squid/var/logs
SAMSPATH=/usr/local
SQUIDPATH=/usr/local/squid/sbin
SQUIDGUARDLOGPATH=/var/log
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
SHUTDOWNCOMMAND=echo

Squid установлен из исходников в /usr/local/squid
Sams в /usr/local/share/sams
SQUIDROOTDIR по идее должен указывать на каталог где лежит конфиг сквида, у меня несколько иначе, что связано с особенностями конфигурации аутентификации.

А вот такой скрипт я использую для запуска samsdaemon:

#!/bin/sh
#
# chkconfig: 345 87 08
# description: Squid Account Management System (SAMS)
#
### BEGIN INIT INFO
# Provides: samsd
# Required-Start:
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: start samsdaemon (SAMS)
### END INIT INFO
SAMSPATH=`cat /etc/sams.conf | grep SAMSPATH | tr "SAMSPATH=" "\0"`
EXE=$SAMSPATH/bin/samsdaemon
PIDFILE=/var/run/samsdaemon.pid
. /etc/rc.status
rc_reset
case "$1" in
start)
echo -n "Starting samsd: "
checkproc ${EXE}
case $? in
0) echo -n "Warning: samsdaemon is already running.";;
1) echo -n "Warning: ${PIDFILE} exists.";;
esac
startproc -s -l /var/log/sams.log -p ${PIDFILE} ${EXE}
rc_status -v
;;
stop)
echo -n "Shutting down samsd: "
checkproc -p ${PIDFILE} ${EXE} || echo -n "Warning: samsdaemon is not running."
killproc -p ${PIDFILE} ${EXE}
rc_status -v
;;
restart)
stop
start
rc_status
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
rc_exit

SLES 9 SP3
squid 2.5STABLE14
SAMS 1.0

| MYSQLHOSTNAME=localhost
| MYSQLUSER=root
| MYSQLPASSWORD=

а не дурно ли рута использовать? для работы с самс!

___________________________________________________
FreeBSD 6.1
sams-1.0.1
squid-2.6.STABLE18
rejik-3.2.1
Авторизация: NCSA+IP

snace аватар

To Necrobard

>Нет такого файла. Есть /var/log/squid/access.log
>он имеется в виду?

Совершенно верно, ошибся в пути. Имеется в виду /var/log/squid/access.log

Отвечаю на второй вопрос:

Раскоменчивать путь нужно до логов сквида в squid.conf. А именно вот этот сегмент:

#Default:
cache_dir ufs /var/cache/squid 2000 64 256

# TAG: cache_access_log
# Logs the client request activity. Contains an entry for
# every HTTP and ICP queries received. To disable, enter "none".
#
#Default:
cache_access_log /var/log/squid/access.log

# TAG: cache_log
# Cache logging file. This is where general information about
# your cache's behavior goes. You can increase the amount of data
# logged to this file with the "debug_options" tag below.
#
#Default:
cache_log /var/log/squid/cache.log

# TAG: cache_store_log
# Logs the activities of the storage manager. Shows which
# objects are ejected from the cache, and which objects are
# saved and for how long. To disable, enter "none". There are
# not really utilities to analyze this data, so you can safely
# disable it.
#
#Default:
cache_store_log /var/log/squid/store.log

И тогда наступит счастье. По крайней мере у меня наступило (задумчиво почесывая репу).

Вопрос третий: Рабочий sams.conf прилагаю

[client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=root
MYSQLPASSWORD=
MYSQLVERSION=5.0
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/etc/squid
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEDIR=/var/spool/squid
SAMSPATH=/usr/local
SQUIDPATH=/usr/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/var/db/squidguard
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
LDAPSERVER=servername_or_ipadress
LDAPBASEDN=your.domain
LDAPUSER=DomainAdministrator
LDAPUSERPASSWD=passwd
LDAPUSERSGROUP=Users
REJIKPATH=/usr/local/rejik
SHUTDOWNCOMMAND=shutdown -h now
CACHENUM=0

Удачи!!!

Ковыряю тоже в suse 10.3 только авторизация ntlm

Спасибо большое про initproc - сам бы еще некоторое время копался (последняя итерация была - заменил на команду start_daemon, но она вела себя странно.)

А вот по это подробнее можно:

>Грабли следующие: Все заработало, но не считает статистику. Здесь мне помог >участник форума nix_kot (большое ему спасибо). Нужно было раскоментить строчки >в сквиде /var/log/access.log (Sams создаст pipe access.log и начнет считать трафик).

Нет такого файла. Есть /var/log/squid/access.log
он имеется в виду?
И все равно тогда непонятно, что именно и где "раскомментить"? В /etc/sams.conf есть опция SQUIDCACHEFILE. access.log Называется странно, но access.log там был прописан, и я пока поправил ее до полного пути /var/log/squid/access.log .. уж не знаю, правильно ли - в доке ничего кроме того, что тут указывается "Имя файла логов SQUID" не сказано.

Если уж на то пошло, можно заодно сюда рабочий файл sams.conf ? (ну, без пароля, конечно)

Очень правильный ответ. Сам настраивал SAMS на SLES 9 SP3 и на SLES 10 SP1 (ntlm и ip аутентификация). В основном все делается по документации, не считая определенных моментов, когда оказывает влияние идеология самой операционки. В частности действительно стартовый скрипт приходится переделывать.

В общем мое мнение: если знаком с ОС на которую ставишь SAMS затруднений быть не должно. Во всяком случае есть форум, где всегда можно получить помощь.

snace аватар

Можно выложить, но в принципе подробнее вряд ли опишешь, потому что в основном все делается по документации. Я описал лишь конкретные отличия, с которыми столкнулся в openSuSE 10.3. Старую базу логов я подцеплять не стал, создал новую, так как скрипт апдейта базы настолько коряв, что пару раз зацепил рабочие базы (пробовал запускать из папки с самцом, из админки не запускал).

Спасибо, может опишете это немного поподробнее? выложим в раздел документации

>> Грабли вторые: База логов сквида в упор не хотела создаваться,
>> пока я руками не подправил файлик /etc/sams.conf, где прописал явно пароли на MySQL бызы.

Это и нужно делать руками, автоматом в sams.conf ничего не прописывается. Про это даже написано в документации

>> в openSuse НЕТУ ФАЙЛА htpasswd
Это интересно

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

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".