قد تتساءل - لماذا يوجد عامل الميناء هنا؟ ما هي مشكلة الانتقال إلى واجهة الويب الخاصة بمنظمة العمل الدولية وإعداد الخادم الخاص بك كما ينبغي؟
لذلك اعتقدت عندما أعطوني اثنين من الخوادم القديمة غير الضرورية التي اضطررت إلى إعادة تثبيت (ما يسمى reprovision). يوجد الخادم نفسه عبر المحيط ، الشيء الوحيد المتاح هو واجهة الويب. حسنًا ، وفقًا لذلك ، اضطررت للذهاب إلى Virtual Console لتنفيذ بعض الأوامر. هذا هو المكان الذي بدأت فيه.
كما تعلمون ، بالنسبة لأنواع مختلفة من لوحات المفاتيح الافتراضية ، عادةً ما يتم استخدام Java ، الموجودة في HP ، في Dell. في أي حال ، كانت دقيقة للغاية (والأنظمة قديمة جدا). لكن Firefox و Chrome توقفتا منذ فترة طويلة عن دعم هذه التطبيقات ، ولا يعمل IcedTea الجديد مع هذه الأنظمة. لذلك ، تم تحديد العديد من الخيارات:
- لبدء إنشاء حديقة للحيوانات من المتصفحات وإصدارات Java على جهازك ، اختفى هذا الخيار على الفور. لا توجد رغبة في الاستهزاء بالنظام لعدد من الفرق.
- شغّل شيئًا قديمًا على الجهاز الظاهري (تم اكتشافه تجريبياً أن هناك حاجة إلى Java 6) وتكوين كل ما تحتاجه من خلاله.
- مثل النقطة 2 ، فقط في الحاوية ، حيث واجه العديد من الزملاء نفس المشكلة ومن الأسهل كثيرًا تمرير رابط إلى الحاوية على dockerhub بدلاً من صورة الجهاز الظاهري ، مع كل كلمات المرور ، إلخ.
(في الواقع ، وصلت إلى النقطة 3 فقط بعد أن قدمت النقطة 2)
النقطة 3 سنفعله اليوم.
لقد استلهمت بشكل رئيسي من مشروعين:
- عامل ميناء-baseimage واجهة المستخدم الرسومية
- عامل ميناء، فايرفوكس، جافا
من حيث المبدأ ، يحتوي أول
مشروع لـ doer-baseimage-gui بالفعل على أدوات مساعدة وتكوينات لتشغيل تطبيقات سطح المكتب في docker. عادةً ما تحتاج إلى تحديد المتغيرات القياسية وسيتم الوصول إلى التطبيق الخاص بك من خلال متصفح (websocket) أو VNC. في حالتنا ، سنعمل عبر Firefox و VNC ، ومن خلال websocket لم تنجح.
أولاً ، قم بتثبيت الحزم اللازمة - 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
الآن يبقى أن نذهب إلى صفحة واجهة منظمة العمل الدولية والقيادة في اسم المستخدم وكلمة المرور الخاصة بك. نبدأ Firefox في تشغيل تلقائي:
RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' && \ bash -c 'echo "firefox \${HILO_HOST}">> ~/.xinitrc' && \ bash -c 'chmod 755 ~/.xinitrc'
يحتوي متغير البيئة HILO_HOST على عنوان الويب لواجهة منظمة العمل الدولية الخاصة بنا ، على سبيل المثال
myhp.example.com .
لأتمتة الإدخال ، دعنا نلغي التفويض. يتم تنفيذ تسجيل الدخول إلى منظمة العمل الدولية من خلال طلب POST منتظم ، ونتيجة لذلك تحصل على JSON session_key ، والتي تقوم بعد ذلك بتمرير طلب GET.
حساب 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
بعد أن سجلنا session_key في عامل الميناء ، يمكننا بدء VNC:
exec x11vnc -forever -create
الآن فقط اتصل عبر VNC إلى المنفذ 5900 (أو أي شيء آخر من اختيارك) على المضيف المحلي وانتقل إلى وحدة التحكم الافتراضية.
كل الشفرة موجودة في مستودع
docker-ilo-client .
الأمر الكامل للاتصال بمنظمة العمل الدولية:
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 هو اسم مضيف منظمة العمل الدولية ، SOME_USERNAME هو اسم المستخدم ، وبالتالي فإن SOME_PASSWORD هي كلمة مرور منظمة العمل الدولية.
بعد ذلك ، ابدأ تشغيل أي عميل VNC على العنوان:
vnc://localhost:5900
الإضافات وطلبات السحب هي موضع ترحيب ، بالطبع.
يوجد مشروع مماثل للاتصال بواجهات IDRAC لأجهزة DELL:
docker-idrac6 .