ILO کے ذریعے HP سرورز کے انتظام کے لیے ڈاکر کنٹینر

آپ شاید سوچ رہے ہوں گے - ڈوکر یہاں کیوں موجود ہے؟ ILO ویب انٹرفیس میں لاگ ان ہونے اور ضرورت کے مطابق اپنے سرور کو ترتیب دینے میں کیا مسئلہ ہے؟
میں نے یہی سوچا جب انہوں نے مجھے کچھ پرانے غیر ضروری سرورز دیے جن کو مجھے دوبارہ انسٹال کرنے کی ضرورت تھی (جسے ری پروویژن کہتے ہیں)۔ سرور خود بیرون ملک واقع ہے، دستیاب واحد چیز ویب انٹرفیس ہے۔ ٹھیک ہے، اس کے مطابق، مجھے کچھ کمانڈز چلانے کے لیے ورچوئل کنسول جانا پڑا۔ یہ وہیں سے شروع ہوا۔
جیسا کہ آپ جانتے ہیں، جاوا عام طور پر مختلف قسم کے ورچوئل کنسولز کے لیے استعمال ہوتا ہے، چاہے HP میں ہو یا ڈیل میں۔ کم از کم ایسا ہی ہوتا تھا (اور سسٹم بہت پرانے ہیں)۔ لیکن فائر فاکس اور کروم نے کافی عرصہ پہلے ان ایپلٹس کو سپورٹ کرنا بند کر دیا تھا، اور نیا IcedTea ان سسٹمز کے ساتھ کام نہیں کرتا ہے۔ لہذا، کئی اختیارات سامنے آئے:

1. اپنی مشین پر براؤزرز اور جاوا ورژنز سے چڑیا گھر بنانا شروع کریں، اس آپشن کی مزید ضرورت نہیں تھی۔ ایک دو حکموں کی خاطر نظام کا مذاق اڑانے کی خواہش نہیں ہے۔
2. ورچوئل مشین پر کافی پرانی چیز لانچ کریں (یہ تجرباتی طور پر معلوم ہوا کہ آپ کو جاوا 6 کی ضرورت ہے) اور اس کے ذریعے آپ کی ضرورت کی ہر چیز کو ترتیب دیں۔
3. پوائنٹ 2 کی طرح، صرف ایک کنٹینر میں، چونکہ کئی ساتھیوں کو ایک ہی مسئلہ کا سامنا کرنا پڑا اور انہیں تمام پاس ورڈز وغیرہ کے ساتھ، ورچوئل مشین امیج کے مقابلے ڈوکر ہب پر کسی کنٹینر میں لنک منتقل کرنا بہت آسان ہے۔
(درحقیقت، میں نے پوائنٹ 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 درخواست میں پاس کرتے ہیں:
آئیے کرل کے ذریعے سیشن_کی کا حساب لگائیں اگر 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-client.
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 لاگ ان ہے اور، اس کے مطابق، SOME_PASSWORD ILO کا پاس ورڈ ہے۔
اس کے بعد، کسی بھی VNC کلائنٹ کو ایڈریس پر لانچ کریں: vnc://localhost:5900
اضافے اور پل کی درخواستیں یقیناً خوش آئند ہیں۔

ڈیل مشینوں کے IDRAC انٹرفیس سے منسلک ہونے کے لیے اسی طرح کا پروجیکٹ موجود ہے: docker-idrac6.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں