Доцкер контејнер за управљање ХП серверима преко ИЛО-а

Можда се питате – зашто Доцкер постоји овде? Шта је проблем са пријављивањем на веб интерфејс ИЛО-а и подешавањем вашег сервера по потреби?
То сам помислио када су ми дали неколико старих непотребних сервера које сам морао поново да инсталирам (оно што се зове репровизија). Сам сервер се налази у иностранству, једино што је доступно је веб интерфејс. Па, сходно томе, морао сам да одем на виртуелну конзолу да покренем неке команде. Ту је почело.
Као што знате, Јава се обично користи за различите врсте виртуелних конзола, било у ХП-у или Делл-у. Барем је тако било (а системи су веома стари). Али Фирефок и Цхроме су одавно престали да подржавају ове аплете, а нови ИцедТеа не ради са овим системима. Стога се појавило неколико опција:

1. Почните да правите зоолошки врт из претраживача и Јава верзија на вашој машини, ова опција више није била потребна. Нема жеље да се систем руга зарад пар команди.
2. Покрените нешто прилично старо на виртуелној машини (експериментално се показало да вам је потребна Јава 6) и преко ње конфигуришите све што вам треба.
3. Исто као и тачка 2, само у контејнеру, пошто је неколико колега наишло на исти проблем и много лакше им је пренети линк ка контејнеру на Доцкерхуб-у него слику виртуелне машине, са свим лозинкама итд.
(У ствари, дошао сам до тачке 3 тек након што сам урадио тачку 2)
Данас ћемо урадити тачку 3.

Инспирисала су ме углавном два пројекта:
1. доцкер-басеимаге-гуи
2. доцкер-фирефок-јава
У основи први пројекат доцкер-басеимаге-гуи већ садржи услужне програме и конфигурације за покретање десктоп апликација у Доцкер-у. Обично морате да дефинишете стандардне променљиве и ваша апликација ће бити доступна преко претраживача (вебсоцкет) или ВНЦ. У нашем случају, покренућемо преко Фирефока и ВНЦ-а; није функционисало преко вебсоцкета.
Прво, хајде да инсталирамо неопходне пакете - Јава 6 и ИцедТеа:

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list &&
apt-get update &&
apt-get -y upgrade &&
apt-get -y install firefox
nano curl
icedtea-6-plugin
icedtea-netx
openjdk-6-jre
openjdk-6-jre-headless
tzdata-java

Сада све што треба да урадите је да одете на страницу интерфејса ИЛО-а и унесете своје корисничко име и лозинку. Покрените Фирефок у аутоматском покретању:

RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'

Променљива окружења ХИЛО_ХОСТ садржи веб адресу нашег ИЛО интерфејса, на пример михп.екампле.цом
Да бисмо аутоматизовали пријављивање, додајмо ауторизацију. Пријављивање на ИЛО се дешава са редовним ПОСТ захтевом, као резултат тога добијате ЈСОН сессион_кеи, који затим прослеђујете у ГЕТ захтеву:
Хајде да израчунамо сессион_кеи преко цурл-а ако су дефинисане променљиве окружења ХИЛО_УСЕР и ХИЛО_ПАСС:

export HOME=/config
export HILO_HOST=${HILO_HOST%%/}
SESSION_KEY=""
data="{"method":"login","user_login":"${HILO_USER}","password":"${HILO_PASS}"}"
if [[ -n "${HILO_USER}" && -n "${HILO_PASS}" ]]; then
    SESSION_KEY=$(curl -k -X POST "${HILO_HOST}/json/login_session" -d "$data" 2>/dev/null | grep -Eo '"session_key":"[^"]+' | sed 's/"session_key":"//')
fi
echo "SESSION_KEY=$SESSION_KEY"
echo $SESSION_KEY > /session_key

Када снимимо сессион_кеи у доцкер-у, можемо покренути ВНЦ:

exec x11vnc -forever -create

Сада се једноставно повезујемо преко ВНЦ-а на порт 5900 (или било који други по вашем избору) на локалном хосту и идемо на виртуелну конзолу.
Сав код је у спремишту доцкер-ило-цлиент.
Комплетна команда за повезивање са ИЛО:

docker run -d --rm --name ilo-client -p 5900:5900 -e HILO_HOST=https://ADDRESS_OF_YOUR_HOST -e HILO_USER=SOME_USERNAME -e HILO_PASS=SOME_PASSWORD sshnaidm/docker-ilo-client

где је АДДРЕСС_ОФ_ИОУР_ХОСТ име ИЛО хоста, СОМЕ_УСЕРНАМЕ је логин и, сходно томе, СОМЕ_ПАССВОРД лозинка за ИЛО.
Након тога, једноставно покрените било који ВНЦ клијент на адресу: vnc://localhost:5900
Додаци и захтеви за повлачење су, наравно, добродошли.

Сличан пројекат постоји за повезивање на ИДРАЦ интерфејсе ДЕЛЛ машина: доцкер-идрац6.

Извор: ввв.хабр.цом

Додај коментар