ILO ذريعي HP سرورز کي منظم ڪرڻ لاءِ ڊڪر ڪنٽينر

توهان شايد شايد حيران ٿي رهيا آهيو - ڇو ڊڪر هتي موجود آهي؟ ILO ويب انٽرفيس ۾ لاگ ان ٿيڻ ۽ ضرورت مطابق سرور قائم ڪرڻ ۾ ڪهڙو مسئلو آهي؟
اھو اھو آھي جيڪو مون سوچيو جڏھن انھن مون کي ڪجھ پراڻا غير ضروري سرور ڏنا آھن جن کي مون کي ٻيهر انسٽال ڪرڻ جي ضرورت آھي (جنھن کي ريپروويشن سڏيو ويندو آھي). سرور پاڻ اوورسيز واقع آهي، صرف هڪ شيء موجود آهي ويب انٽرفيس. خير، ان جي مطابق، مون کي ڪجهه حڪم هلائڻ لاء ورچوئل ڪنسول ڏانهن وڃڻو هو. اهو جتي شروع ٿيو.
جئين توهان ڄاڻو ٿا، جاوا عام طور تي مختلف قسم جي مجازي ڪنسولز لاء استعمال ڪيو ويندو آهي، ڇا HP يا ڊيل ۾. گهٽ ۾ گهٽ اهو ڪيئن ٿيندو هو (۽ سسٽم تمام پراڻا آهن). پر فائر فاڪس ۽ ڪروم گهڻو وقت اڳ هنن ايپليٽ کي سپورٽ ڪرڻ بند ڪيو، ۽ نئون IcedTea انهن سسٽم سان ڪم نٿو ڪري. تنهن ڪري، ڪيترن ئي اختيارن کي سامهون آيو:

1. توھان جي مشين تي برائوزرن ۽ جاوا ورزن مان زو ٺاھڻ شروع ڪريو، ھن آپشن جي ھاڻي ضرورت ناھي. هڪ ٻن حڪمن جي خاطر سسٽم کي ٺٺولي ڪرڻ جي ڪا به خواهش ناهي.
2. ورچوئل مشين تي تمام پراڻي شيءِ لانچ ڪريو (اهو تجرباتي طور تي ثابت ٿيو ته توهان کي Java 6 جي ضرورت آهي) ۽ ان جي ذريعي توهان کي گهربل هر شيءِ ترتيب ڏيو.
3. ساڳيو نقطو 2، صرف هڪ ڪنٽينر ۾، ڇاڪاڻ ته ڪيترن ئي ساٿين کي ساڳئي مسئلي سان منهن ڏيڻو پيو ۽ انهن کي هڪ ڪنٽينر ڏانهن منتقل ڪرڻ تمام آسان آهي Dockerhub تي هڪ ورچوئل مشين جي تصوير جي ڀيٽ ۾، سڀني پاسورڊ وغيره سان.
(حقيقت ۾، مون کي صرف پوائنٽ حاصل ڪيو ويو 3 کان پوء مون پوائنٽ 2 ڪيو)
اسان اڄ پوائنٽ 3 ڪنداسين.

مون کي خاص طور تي ٻن منصوبن کان متاثر ڪيو ويو:
1. docker-baseimage-gui
2. docker-firefox-java
بنيادي طور تي پهريون منصوبو docker-baseimage-gui اڳ ۾ ئي ڊڪر ۾ ڊيسڪ ٽاپ ايپليڪيشنن کي هلائڻ لاءِ يوٽيلٽيز ۽ ترتيبن تي مشتمل آهي. عام طور تي توهان کي معياري متغيرن جي وضاحت ڪرڻ جي ضرورت آهي ۽ توهان جي ايپليڪيشن برائوزر (websocket) يا 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 ۾ لاگ ان ٿئي ٿو باقاعده پوسٽ جي درخواست سان، جنهن جي نتيجي ۾ توهان حاصل ڪيو JSON session_key، جيڪو توهان پوءِ GET درخواست ۾ پاس ڪيو:
اچو ته حساب ڪريو session_key curl ذريعي جيڪڏهن 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 لاگ ان آهي ۽، مطابق، SOME_PASSWORD ILO لاءِ پاسورڊ.
ان کان پوء، صرف ڪنهن به VNC ڪلائنٽ کي ايڊريس تي لانچ ڪريو: vnc://localhost:5900
اضافو ۽ ڇڪڻ جون درخواستون، يقينا، ڀليڪار.

DELL مشينن جي IDRAC انٽرفيس سان ڳنڍڻ لاءِ ساڳيو منصوبو موجود آهي: docker-idrac6.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو