د ILO له لارې د HP سرورونو اداره کولو لپاره ډاکر کانټینر

تاسو شاید حیران یاست - ولې ډاکر دلته شتون لري؟ د ILO ویب انٹرفیس ته د ننوتلو او د اړتیا سره سم ستاسو سرور تنظیم کولو کې ستونزه څه ده؟
دا هغه څه دي چې ما فکر کاوه کله چې دوی ماته یو څو زاړه غیر ضروري سرورونه راکړل چې زه یې بیا نصبولو ته اړتیا لرم (هغه څه چې د بیا رغونې په نوم یادیږي). سرور پخپله بهر کې موقعیت لري، یوازینی شی چې شتون لري د ویب انٹرفیس دی. ښه ، د دې مطابق ، زه باید د ځینې کمانډونو چلولو لپاره مجازی کنسول ته لاړ شم. له همدې ځایه پیل شو.
لکه څنګه چې تاسو پوهیږئ ، جاوا معمولا د مختلف ډوله مجازی کنسولونو لپاره کارول کیږي ، که په HP یا ډیل کې وي. لږترلږه دا څنګه وه (او سیسټمونه خورا زاړه دي). مګر فایرفوکس او کروم ډیر وخت دمخه د دې اپلیټونو ملاتړ بند کړ ، او نوی IcedTea د دې سیسټمونو سره کار نه کوي. له همدې امله، څو انتخابونه راڅرګند شول:

1. په خپل ماشین کې د براوزرونو او جاوا نسخو څخه د ژوبڼ جوړول پیل کړئ، دې اختیار ته نور اړتیا نشته. د یو څو امرونو لپاره د سیسټم مسخره کولو لپاره هیڅ لیوالتیا نشته.
2. په مجازی ماشین کې یو څه زوړ پیل کړئ (دا په تجربوي ډول ثابته شوه چې تاسو جاوا 6 ته اړتیا لرئ) او هرڅه چې تاسو ورته اړتیا لرئ تنظیم کړئ.
3. د 2 نقطې په څیر، یوازې په یوه کانټینر کې، ځکه چې ډیری همکاران ورته ستونزې سره مخ شوي او دا خورا اسانه ده چې دوی په Dockerhub کې یو کانټینر ته د یو مجازی ماشین عکس په پرتله د ټولو پاسورډونو او نورو سره یو لینک انتقال کړي.
(په حقیقت کې، زه یوازې 3 ټکي ته ورسیدم وروسته له دې چې ما 2 نقطه وکړه)
موږ به نن 3 ټکی ترسره کړو.

زه په عمده توګه د دوو پروژو څخه الهام اخلم:
1. docker-baseimage-gui
2. docker-firefox-java
په اصل کې لومړی پروژه docker-baseimage-gui دمخه په ډاکر کې د ډیسټاپ غوښتنلیکونو چلولو لپاره اسانتیاوې او تشکیلات لري. عموما تاسو اړتیا لرئ معیاري تغیرات تعریف کړئ او ستاسو غوښتنلیک به د براوزر (ویب ساکټ) یا VNC له لارې د لاسرسي وړ وي. زموږ په قضیه کې، موږ به د فایرفوکس او 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

اوس ټول هغه څه چې تاسو یې باید وکړئ د ILO انٹرفیس پاڼې ته لاړ شئ او خپل کارن نوم او پټنوم دننه کړئ. فایرفوکس په اتومات ډول پیل کړئ:

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

د HILO_HOST چاپیریال متغیر زموږ د ILO انٹرفیس ویب پته لري، د بیلګې په توګه myhp.example.com
د ننوتلو اتومات کولو لپاره، اجازه راکړئ اضافه کړئ. ILO ته ننوتل د منظم POST غوښتنې سره پیښیږي ، چې په پایله کې تاسو د JSON session_key ترلاسه کوئ ، کوم چې تاسو بیا د GET غوښتنې کې پاس کوئ:
راځئ چې د curl له لارې session_key محاسبه کړو که چیرې د HILO_USER او HILO_PASS چاپیریال تغیرات تعریف شوي وي:

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

یوځل چې موږ په ډاکر کې سیشن_کی ثبت کړو ، موږ کولی شو VNC پیل کړو:

exec x11vnc -forever -create

اوس موږ په ساده ډول په لوکل هوسټ کې د VNC له لارې 5900 پورټ (یا ستاسو د خوښې کوم بل) سره وصل شو او مجازی کنسول ته لاړ شو.
ټول کوډ په ذخیره کې دی docker-ilo- مراجعه.
د 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 د ILO کوربه نوم دی، SOME_USERNAME د ننوتلو ځای دی او په وینا، د ILO لپاره SOME_PASSWORD پټنوم.
له هغې وروسته، په ساده ډول د VNC پیرودونکي پتې ته پیل کړئ: vnc://localhost:5900
د اضافه کولو او پلولو غوښتنې، البته، ښه راغلاست دي.

ورته پروژه د DELL ماشینونو IDRAC انٹرفیسونو سره وصل کولو لپاره شتون لري: docker-idrac6.

سرچینه: www.habr.com

Add a comment