تاسو شاید حیران یاست - ولې ډاکر دلته شتون لري؟ د ILO ویب انٹرفیس ته د ننوتلو او د اړتیا سره سم ستاسو سرور تنظیم کولو کې ستونزه څه ده؟
دا هغه څه دي چې ما فکر کاوه کله چې دوی ماته یو څو زاړه غیر ضروري سرورونه راکړل چې زه یې بیا نصبولو ته اړتیا لرم (هغه څه چې د بیا رغونې په نوم یادیږي). سرور پخپله بهر کې موقعیت لري، یوازینی شی چې شتون لري د ویب انٹرفیس دی. ښه ، د دې مطابق ، زه باید د ځینې کمانډونو چلولو لپاره مجازی کنسول ته لاړ شم. له همدې ځایه پیل شو.
لکه څنګه چې تاسو پوهیږئ ، جاوا معمولا د مختلف ډوله مجازی کنسولونو لپاره کارول کیږي ، که په HP یا ډیل کې وي. لږترلږه دا څنګه وه (او سیسټمونه خورا زاړه دي). مګر فایرفوکس او کروم ډیر وخت دمخه د دې اپلیټونو ملاتړ بند کړ ، او نوی IcedTea د دې سیسټمونو سره کار نه کوي. له همدې امله، څو انتخابونه راڅرګند شول:
1. په خپل ماشین کې د براوزرونو او جاوا نسخو څخه د ژوبڼ جوړول پیل کړئ، دې اختیار ته نور اړتیا نشته. د یو څو امرونو لپاره د سیسټم مسخره کولو لپاره هیڅ لیوالتیا نشته.
2. په مجازی ماشین کې یو څه زوړ پیل کړئ (دا په تجربوي ډول ثابته شوه چې تاسو جاوا 6 ته اړتیا لرئ) او هرڅه چې تاسو ورته اړتیا لرئ تنظیم کړئ.
3. د 2 نقطې په څیر، یوازې په یوه کانټینر کې، ځکه چې ډیری همکاران ورته ستونزې سره مخ شوي او دا خورا اسانه ده چې دوی په Dockerhub کې یو کانټینر ته د یو مجازی ماشین عکس په پرتله د ټولو پاسورډونو او نورو سره یو لینک انتقال کړي.
(په حقیقت کې، زه یوازې 3 ټکي ته ورسیدم وروسته له دې چې ما 2 نقطه وکړه)
موږ به نن 3 ټکی ترسره کړو.
زه په عمده توګه د دوو پروژو څخه الهام اخلم:
1.
2.
په اصل کې لومړی پروژه
لومړی، راځئ چې اړین کڅوړې نصب کړو - 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 انٹرفیس ویب پته لري، د بیلګې په توګه
د ننوتلو اتومات کولو لپاره، اجازه راکړئ اضافه کړئ. 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 پورټ (یا ستاسو د خوښې کوم بل) سره وصل شو او مجازی کنسول ته لاړ شو.
ټول کوډ په ذخیره کې دی
د 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 انٹرفیسونو سره وصل کولو لپاره شتون لري:
سرچینه: www.habr.com