XMT orqali HP serverlarini boshqarish uchun docker konteyneri

Ehtimol siz hayron bo'lishingiz mumkin - nima uchun Docker bu erda? XMT veb-interfeysiga kirish va serveringizni to'g'ri sozlashda qanday muammo bor?
Shunday qilib, ular menga bir nechta eski keraksiz serverlarni berishganda, men qayta o'rnatishim kerak deb o'yladim (qayta ishlab chiqarish deb ataladi). Serverlarning o'zi chet elda, mavjud bo'lgan yagona narsa bu veb-interfeys. Shunga ko'ra, men ba'zi buyruqlarni bajarish uchun Virtual konsolga borishim kerak edi. Bu erda boshlangan.
Ma'lumki, har xil turdagi virtual konsollar uchun Java odatda HP va Dellda qo'llaniladi. Har holda, bu aniq bo'lgan (va tizimlar juda eski). Ammo Firefox va Chrome uzoq vaqtdan beri ushbu appletlarni qo'llab-quvvatlashni to'xtatdilar va yangi IcedTea bu tizimlar bilan ishlamaydi. Shunday qilib, bir nechta variant bor edi:

1. Mashinangizdagi brauzerlar va Java versiyalaridan hayvonot bog'i qurishni boshlang, bu imkoniyat darhol yo'qoldi. Bir nechta buyruqlar uchun tizimni masxara qilish istagi yo'q.
2. Virtual mashinada ancha eski narsani ishga tushiring (eksperimental ravishda Java 6 kerakligi ma'lum bo'ldi) va u orqali kerak bo'lgan hamma narsani sozlang.
3. 2-band bilan bir xil, faqat konteynerda, chunki bir nechta hamkasblar bir xil muammoga duch kelishdi va ularga dockerhub-dagi konteynerga havolani yuborish barcha parollarga ega virtual mashina tasviridan ko'ra osonroqdir.
(Aslida, men 3-bandni bajarganimdan keyin 2-bandga erishdim)
3-bandni biz bugun qilamiz.

Meni asosan ikkita loyiha ilhomlantirdi:
1. docker-baseimage-gui
2. docker-firefox-java
Umuman olganda, birinchi loyiha docker-baseimage-gui allaqachon docker-da ish stoli ilovalarini ishga tushirish uchun yordamchi dasturlar va konfiguratsiyalarni o'z ichiga oladi. Odatda siz standart o'zgaruvchilarni belgilashingiz kerak va sizning ilovangizga brauzer (websocket) yoki VNC orqali kirish mumkin bo'ladi. Bizning holatda, biz Firefox va VNC orqali ishlaymiz, u websocket orqali ishlamadi.
Birinchidan, kerakli paketlarni o'rnating - Java 6 va 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

Endi XMT interfeys sahifasiga o'tish va foydalanuvchi nomingiz va parolingizni kiritish qoladi. Firefox-ni avtomatik ishga tushirishda ishga tushiring:

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

HILO_HOST muhit o'zgaruvchisi, masalan, XMT interfeysimizning veb-manzilini o'z ichiga oladi myhp.example.com
Kirishni avtomatlashtirish uchun avtorizatsiyani mustahkamlaymiz. XMTga kirish odatiy POST so'rovi bilan amalga oshiriladi, natijada siz JSON session_keyni olasiz, keyin uni GET so'roviga yuborasiz:
HILO_USER va HILO_PASS muhit oʻzgaruvchilari aniqlangan boʻlsa, curl orqali session_keyni hisoblang:

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

Docker-da session_key-ni yozib olganimizdan so'ng, biz VNC-ni ishga tushirishimiz mumkin:

exec x11vnc -forever -create

Endi biz VNC orqali localhost-dagi 5900 portiga (yoki siz tanlagan boshqa har qanday) ulanamiz va virtual konsolga o'tamiz.
Barcha kodlar omborda docker-ilo-mijoz.
XMTga ulanish uchun to'liq buyruq:

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

bu yerda ADDRESS_OF_YOUR_HOST XMT host nomi, SOME_USERNAME login va shunga mos ravishda SOME_PASSWORD XMT parolidir.
Shundan so'ng, istalgan VNC mijozini quyidagi manzilga ishga tushiring: vnc://localhost:5900
Qo'shimchalar va tortishish so'rovlari, albatta, qabul qilinadi.

Shunga o'xshash loyiha DELL mashinalarining IDRAC interfeyslariga ulanish uchun mavjud: docker-idrac6.

Manba: www.habr.com

a Izoh qo'shish