ОУХБ-аар дамжуулан HP серверүүдийг удирдах зориулалттай докер контейнер

Та яагаад Докер энд байдаг юм бол гэж гайхаж байгаа байх. ОУХБ-ын вэб интерфэйс рүү нэвтэрч, шаардлагатай бол серверээ тохируулахад ямар асуудал гардаг вэ?
Дахин суулгах шаардлагатай хэд хэдэн хуучин шаардлагагүй серверүүдийг надад өгөхөд би ийм бодолтой байсан (үүнийг нөхөн сэргээх гэж нэрлэдэг). Сервер нь өөрөө гадаадад байрладаг бөгөөд цорын ганц боломжтой зүйл бол вэб интерфэйс юм. Үүний дагуу би зарим командыг ажиллуулахын тулд Виртуал консол руу очих шаардлагатай болсон. Эндээс л эхэлсэн.
Таны мэдэж байгаагаар Java нь ихэвчлэн HP эсвэл Dell-ийн янз бүрийн төрлийн виртуал консолуудад ашиглагддаг. Наад зах нь ийм байсан (мөн системүүд нь маш хуучин). Гэвч Firefox болон Chrome эдгээр апплетуудыг дэмжихээ больсон бөгөөд шинэ IcedTea нь эдгээр системтэй ажиллахгүй байна. Тиймээс хэд хэдэн сонголт гарч ирэв:

1. Өөрийн машин дээрх хөтчүүд болон Java хувилбаруудаас амьтны хүрээлэн байгуулж эхлээрэй, энэ сонголт шаардлагагүй болсон. Хэдэн тушаалын төлөө системийг шоолох хүсэл алга.
2. Виртуал машин дээр нэлээд хуучирсан зүйлийг ажиллуулаад (Танд Java 6 хэрэгтэй болох нь туршилтаар тодорхой болсон) түүгээр дамжуулан хэрэгтэй бүх зүйлээ тохируулаарай.
3. Хэд хэдэн хамт олон ижил асуудалтай тулгарсан тул 2-р цэгтэй адилхан, зөвхөн саванд байгаа тул Dockerhub дээрх контейнер руу линкийг шилжүүлэх нь виртуал машины дүрс, бүх нууц үг гэх мэтээс хамаагүй хялбар байдаг.
(Үнэндээ би 3-р цэгийг хийснийхээ дараа л 2-р оноо авсан)
Бид өнөөдөр 3-р цэгийг хийх болно.

Би голчлон хоёр төслөөс урам зориг авсан:
1. docker-baseimage-gui
2. docker-firefox-java
Үндсэндээ анхны төсөл docker-baseimage-gui Докер дээр ширээний програмуудыг ажиллуулах хэрэгслүүд болон тохиргоог аль хэдийн агуулж байна. Ерөнхийдөө та стандарт хувьсагчдыг тодорхойлох хэрэгтэй бөгөөд таны програм хөтөч (вэбсокет) эсвэл VNC-ээр дамжуулан хандах боломжтой болно. Манай тохиолдолд бид Firefox болон VNC-ээр дамжуулан эхлүүлэх болно, энэ нь вэбсокетээр ажиллаагүй.
Эхлээд шаардлагатай багцуудыг суулгацгаая - Java 6 болон IcedTea:

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

Одоо та ОУХБ-ын интерфейсийн хуудас руу орж хэрэглэгчийн нэр, нууц үгээ оруулахад л хангалттай. Firefox-г автоматаар эхлүүлэх:

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

Жишээлбэл, HILO_HOST орчны хувьсагч нь манай ОУХБ-ын интерфейсийн вэб хаягийг агуулна myhp.example.com
Нэвтрэхийг автоматжуулахын тулд зөвшөөрөл нэмье. ОУХБ-д нэвтрэх нь ердийн POST хүсэлтээр хийгддэг бөгөөд үүний үр дүнд та JSON session_key-г хүлээн авч, GET хүсэлтээр дамжуулдаг:
HILO_USER болон HILO_PASS орчны хувьсагчийг тодорхойлсон бол curl-ээр session_key-г тооцоолъё:

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

Докер дээр session_key-г тэмдэглэсний дараа бид VNC-г ажиллуулж болно:

exec x11vnc -forever -create

Одоо бид VNC-ээр дамжуулан localhost дээрх 5900 порт руу (эсвэл таны сонгосон бусад) холбогдож, виртуал консол руу очно.
Бүх код нь хадгалах газарт байна docker-ilo-үйлчлүүлэгч.
ОУХБ-тай холбогдох бүрэн тушаал:

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

Энд ADDRESS_OF_YOUR_HOST нь ОУХБ-ын хостын нэр, SOME_USERNAME нь нэвтрэх бөгөөд үүний дагуу SOME_PASSWORD нь ОУХБ-ын нууц үг юм.
Үүний дараа VNC клиентийг дараах хаягаар ажиллуулна уу. vnc://localhost:5900
Нэмэлт болон татах хүсэлтийг мэдээж тавтай морилно уу.

DELL машинуудын IDRAC интерфейстэй холбогдох ижил төстэй төсөл байдаг: docker-idrac6.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх