Как я описывал в предыдущих терзаниях по поводу настройки X-соединения с Windows машины к CentOS серверу, Xdmcp не является безопасным, в связи с чем его использование довольно ограничено использованием в открытых сетях, в связи с чем приходится изыскивать другие пути общения со своим удаленным сервером через X-соединение.
Но X-терминальное соединение, можно инкапсулировать в протокол ssl, путем проброса соединения к клиентской части X-терминала, через протокол сеансового уровня SSH. Для этого ранее использовалась бесплатная программа putty, позволяющая устанавливать ssh соединение с удаленными машинами, а ноне данный клиент включен в поставку Xming сервера. Для чего при установке севера Xming на нашей клиентской Windows машине, в разделе выбора компонентов, выберем пункт Normal Putty Link SSH client. После установки произведем настройку нашего Unix-сервера под управление CentOS:
Настроиваем логин: K Menu -> System -> Login Screen
Во вкладке Remote, меню Style выставляем Same as Local
Во вкладке Security, ставим галку Allow local system administrator login
После этого запускаем сервер Xming на стороне виндовой машины и настраиваем подключение, запустив программу XLaunch: Multiple Window -> Start a program -> в Run Remote выбираем Using PuTTY и прописываем логин информацию к CentOS серверу через SSH -> Additional parametrs можем оставить пустыми, либо прописать свойства терминала Х и ssh соединения -> Готово
После нажатия Готово к нам вылетит окно стандартного текстового терминала юниксового сервера xterm, в котором мы можем запускать любые приложения, также как и в окне ssh сессии, с тем условием, что в случае запуска гуевых приложений, предназначенных для работы в X-окружении, в ssh сессии мы бы получили сообщение об ошибке, а в данном случае это приложение будет запущено на нашем виндовом рабочем столе. Для этого набираем любое юниксовое приложение:
# xeyes &
или
# blackjack &
Амперсенд нужен для того чтобы приложение запускалось в фоновом режиме и не вылетало когда мы снова начинаем работать в терминальной сессии.
Благодаря этому способу можно например поиграться на винде, в несвойственные ей игрушки, вроде маджонга или блэкджека. Но при работе естественно следует помнить, что такой вариант работы является одним из нестабильных и находящихся в прямой зависимости от установленного соединения, ибо при любом обрыве связи или затыке, все наши приложения радостно вылетят, посему подобной схемой рекомендовано пользоваться все таки в пределах собственной локальной сети, для упрощения администрирования удаленных серверов, находящихся в соседней комнате, или другом этаже.
В процессе настройки в какой то момент в логах появилось неприятное сообщение о том, что пакеты дропаются стороной CentOS сервера, что вылечилось добавлением в файл X-сервера Xming виндусовой машины C:\Program Files\Xming\X0.hosts строчки, содержащей IP адрес нашего CentOS сервера. Но это скорее исключение из правил, ибо все работает и без этого.
Возникла некая необходимость управлять сервером шуршащим под CentOS, из винюка, причем не абы как, а через X-терминал. Поковырявшись, решили делать через Xming- бесплатный продукт, который можно скачать в инете в версии 6.9.0.31, на данный момент. За версию 7.5 дяди хочут бабла в размере 10 евриков, так что нам этот вариант не катит.
Собственно все достаточно просто. Напишу так, ибо так пишут все, хотя не фига я не считаю, что все так просто, ибо все мануалы в инете похожи как братья близнецы и ни по одному из них у меня ничего не заработало, так что в итоге я провозился полдня пытаясь настроить хоть что нибудь.
Схема работы простая: есть юниксовый сервер UNIX-Server под управлением CentOS на котором крутится X-клиент/сервер; есть виндовая машинка Win-XP на которой поднимается X-сервер Xming с помощью которого мы подключаемся к клиентской части UNIX-Server и по идее должны получить картинку с X-терминалом на рабочем столе виндовой машины.
Для начала скачиваем и устанавливаем на нашу Win-XP рабочую станцию X-сервер Xming, откуда нить с инетовского зеркала, благо их предостаточно разбросано по инету. После установки пробуем настроить работу через Xdmcp. Это специфический незашифрованный протокол, используемый для аутентификации и подключения Х-сервера к Х-клиенту. Поскольку он не является закрытым, то его не рекомендуется использовать в открытых сетях, но это ограничение убирается при использовании сторонних средств шифрования. Ибо это наше первое знакомство, то не будем запариваться на безопасность и попробуем хотя бы запустить данный сервис.
Для этого на UNIX-Server открываем файло /usr/share/config/kdm/kdmrc и в разделе [Xdmcp] проверяем, чтобы активность равенства Enable=true
После этого добавляем в файлы следующие поля:
/etc/gdm/custom.conf
[xdmcp]
Enable=true
/etc/X11/fs/config
# no-listen = tcp
Настроиваем логин: K Menu -> System -> Login Screen
Во вкладке Remote, меню Style выставляем Same as Local
Во вкладке Security, ставим галку Allow local system administrator login
Перегружаем Х-сервер # /etc/rc.d/init.d/xfs restart
после чего переходим к настройке виндового сервера. Запускаем приложение XLaunch, в котором выбираем One Window -> Open session via XDMCP -> в Connect to host прописываем IP адрес UNIX-Server и ставим галку Use indirect connect (народ пишет, что её надо снять но в нашем случае заработало только с ней) -> можем оставить пустыми, либо прописать свойства терминала Х, например в Remote font server наш IP UNIX-Server, а в Additional parametrs for Xming строку инициализации десктопа без кавычек “-screen 0 800×600″ -> Готово
Если все настроили правильно, то на выходе получаем консоль с приглашением нашего X-терминала.
Продолжая разборки с CentOS пришел к тому что возникла необходимость засунуть движок сервис-деска в автозагрузку, чтобы он поднимался автоматом при старте системы.
Собственно в CentOS процесс загрузки работает по принципу System V и расписан в файле /etc/inittab, точнее расписано то как процесс INIT отрабатывает уровни загрузки. В системе фалы загрузки находятся в каталоге /etc/rc.d и носят названия rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, и rc6.d. Пользователи могут размещать файлы в этих каталогах которые будут контролировать запуск сервисов в системе.В свою очередь эти фалы линкуются на каталог /etc/rc.d/init.d и содержащиеся в них скрипты запуска процессов. В этой связи для запуска сервиса необходимо создать полноценный файл запуска сервиса в /etc/init.d, после чего задать символический линк на него из папки соответствующей тому уровню запуска, на котором необходимо стартовать данный сервис. Файлик запуска сервиса будет выглядеть следующим образом, хотя можно расписать все пару строк просто строкой запуска сервиса:
# Get function from functions library
. /etc/init.d/functions
# Start the service FOO
start() {
initlog -c “echo -n Starting FOO server: ”
/path/to/FOO &
### Create the lock file ###
touch /var/lock/subsys/FOO
success $”FOO server startup”
echo
}
# Restart the service FOO
stop() {
initlog -c “echo -n Stopping FOO server: ”
killproc FOO
### Now, delete the lock file ###
rm -f /var/lock/subsys/FOO
echo
}
### main logic ###
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status FOO
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart|reload|status}”
exit 1
esac
exit 0
Если нет желания заморачиваться с написанием скрипта, то можно добавить строку инициализации запуска сервиса в файл /etc/rc.local. Это файл будет отработан в самом конце загрузки системы, но перед выдачей меню логина.
Для добавления сервисов находящихся в попдапках rc0.d – rc6.d в автозагрузку в системе есть специальная утилита chkconfig, с помощью которой можно добавлять или исключать сервисы.
# chkconfig -l service_name # просмотреть уровни автозагрузки сервиса # chkconfig –level 34 service_name on|off|reset # вкключить или выключить сервис на 3 и 4 уровнях # chkconfig –del service_ name # удалить службу # chkconfig service_name on|off # включить или выключить службу на всех уровнях
ну и есессно главная команда: # man chkconfig
Помимо этого можно воспользоваться утилитой ntsysv , для редактирования всех уровней или задач редактирования для определенного уровня: # ntsysv –level 34
Разбираясь, накануне, с настройкой IP адреса в CentOS обнаружил интересную фичу по объединению нескольких интерфейсов в один виртуальный, тем самым повышая скорость передачи данных и создавая функционал отказоустойчивости, с помощью модуля ядра bonding.
Для этого необходимо создать bonding интерфейс, путем создания файла /etc/sysconfig/network-scripts/ifcfg-bond<N> , где N номер объединяемого интерфейса. Содержимое файла аналогично содержимому файла описания настроек обычно интерфейса, с той разницей что директива DEVICE= должна содержать поле bond<N>, где N номер интерфейса.
Пример файла выглядит следующим образом: DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
После того как файлы будут созданы, можно объединять интерфейсы путем добавления директив MASTER= и SLAVE= , так что за исключением этих полей оба файла должны выглядеть идентично. Например для интерфейсов eth0 и eth1файлы конфигурации будут выглядеть следующим образом: DEVICE=eth<N>
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
Для того чтобы слияние интерфейсов работало, необходимо чтобы модуль bonding был загружен в ядро, для чего необходимо проверить, чтобы в файле /etc/modules.conf присутствовала строка: alias bond<N> bonding
где N номер интерфейса, и для каждого сконфигурированного интерфейса должна присутствовать своя запись.
Настраивал себе систему в VmWare Player, после чего перенесли её на ESX Server, ну и по пути возникла необходимость, из дома, сменить на системе IP адрес и повесить дополнительный алиас на интерфейс. Поскольку настраивал центосину до этого исключительно из окошек Х, пришлось немного поморщить голову, но после прочтения официального мануала, все оказалось проще некуда.
Смена IP производится следующим образом:
Открываем файлец /etc/sysconfig/network-scripts/ifcfg-eth0 и смотрим что мы в нем имеем:
Собственно как понятно из файла- IP адрес он цепляет от DHCP сервера, хотя мне казалось что я его задавал лапками, поэтому отрубаем DHCP и меняем настройки на:
После перезагрузки машины или рестарта сетевых служб, с помощью команды service network restart , система переподхватит новый IP адрес.
Теперь по поводу алиасов- там же где мы правили файло с сетевыми настройками, создаем файлик ifcfg-<if-name>:<alias-value> Единственно что надо учесть тот момент что алиас не может цеплять свой адрес по DHCP, поэтому следует задавать статический адрес, для чего создаем файл /etc/sysconfig/network-scripts/ifcfg-eth0:0 и в него прописываем следующие строки:
Если нужно добавить пул алиасов, скажем от 192.168.10.1 до 192.168.10.200, то сделать это можно либо создав 200 конфигурационных файлов для алиаса, либо описав весь пул адресов, для чего создадим файл /etc/sysconfig/network-scripts/ifcfg-eth0-range0 и внесем в него следующие строки:
IPADDR_START= 192.168.10.1 # первый IP в пуле
IPADDR_END= 192.168.10.200 # последний IP в пуле
NETMASK=255.255.255.255
CLONENUM_START=1 # число <alias-value> с которого будет начинаться пул
NO_ALIASROUTING=yes
Начинаем с того что ставим бесплатный клон RHEL под названием . Качаем с офф.сайта CentOS-5 ISOs и устанавливаем на машину, там все просто, не думаю что может вызвать какие то проблемы. После этого этого идем: K Menu -> Software Updater и апгрейдим систему до наиболее актуального состояния. Надо отметить, что это займет определенное время, в зависимости от производительности машины и величины интернет канала. После этого машину нужно будет перегрузить.
После этого с ManageEngine скачиваем SupportCenter (http://www.manageengine.com/products/support-center/download.html) естественно для Linux. Кладем наше богатство в папку /tmp и устанавливаем путем который я описывал ранее в установке приложений для Linux систем:
Последняя команда вызовет диалог установки приложения.
Путь установки: /root/AdventNet/ME/SupportCenter
Выбираем тип установки FreeEdition, который дает возможность завести один технический аккаунт и сколько угодно много аккаунтов клиентов. Порт веб-сервера выберем произвольный, например 4896, и в качестве используемого СУБД – MySQL.
Установка закончена, теперь необходимо запустить сервер:
# cd /root/ManageEngine/ServiceDesk/bin/
# sh run.sh
Процесс запуска занимает несколько минут, после чего мы можем через бродилку обратиться к серверу: http://localhost:4896
Логин для входа в администраторский раздел:
Username : administrator
Password : administrator
Мы сразу же попадаем в раздел администрирования, где запускается мастер настройки системы там мы расставляем галочки по мере необходимости тех или иных опионов нашего сервис деска, а также настраиваем внешнее подключение к сервису: Organization Settings -> Settings, там мы выставляем настройки контактов и адреса сервера.
Нарисовалась у меня задача на плантациях: необходимо организовать службу технической поддержки. Делать нечего, приступаем. После месяца рисования схем и переписки с клиентами- поставщиками, обрисовали примерную схему работы, расписали что-кому- куда и как, после чего пришел черед организации самого портала, опосредством которого клиенты смогут закидывать наших инженеров своими тикетами.
После недели гугления получился небольшой списочек из 4-5 кандидатов на звание самого – самого, естественно что меня интересовали бесплатные и условно бесплатные движки. Перепробовав весь список и даже больше, ибо на Hostgatore, как оказалось в состав предлагаемых движков доступных через Fantastico de Luxe помимо множества бордов, CMS и магазинов, также входит 7 различных систем Service Desk, правда все они оказались этакими кастрированными версиями для организации службы поддержки, быстро и на коленке. Наиболее меня впечатлила система osTicket, на её базе вполне можно организовать простенький сервис деск исключительно для общения со службой поддержки через сайт. Но я искал более продуманную систему, поэтому поразмысли остановился на системе SupportCenter Plus от компании ManageEngine.
Система доступна в вариантах под Windows и под Linux, и представляет огромный функционал: почтовые ответы с использованием внешних почтовых систем, базу знаний, интеграцию с форумами, центральное управление учетными записями, каталог продукции, синхронизация БД, интеграция с AD и Outlook, генерацию отчетов. На сайте компании ManageEngine доступны два ознакомительных варианта: 30-ти дневный trial (двух версий Standard и Professional), а также так называемый Free Edition, дающий возможность управления 25 аккаунтами и функционал Standard Edition.
Система устанавливается на RedHat Linux 7.x и Debian 3.0, а также Windows 2000 Prof и XP, Server 2000/2003. В установочном комплекте идет движок БД MySQL, а также поддержка MS SQL 2000/2005 и большинства серверов SQL.
По стоимости получается: от 500 бачинcких за двух технарей в Standard Edition и от $1000 за двух инженеров в Professional Edition.