ILO के माध्यम से HP सर्वर के प्रबंधन के लिए डॉकर कंटेनर

आप शायद सोच रहे होंगे - डॉकर यहाँ क्यों मौजूद हैं? ILO वेब इंटरफ़ेस में लॉग इन करने और आवश्यकतानुसार अपना सर्वर सेट करने में क्या समस्या है?
मैंने यही सोचा था जब उन्होंने मुझे कुछ पुराने अनावश्यक सर्वर दिए थे जिन्हें मुझे पुनः स्थापित करने की आवश्यकता थी (जिसे पुन: प्रावधान कहा जाता है)। सर्वर स्वयं विदेश में स्थित है, केवल वेब इंटरफ़ेस ही उपलब्ध है। खैर, तदनुसार, मुझे कुछ कमांड चलाने के लिए वर्चुअल कंसोल पर जाना पड़ा। यहीं से इसकी शुरुआत हुई.
जैसा कि आप जानते हैं, जावा का उपयोग आमतौर पर विभिन्न प्रकार के वर्चुअल कंसोल के लिए किया जाता है, चाहे वह एचपी में हो या डेल में। कम से कम पहले तो ऐसा ही होता था (और सिस्टम बहुत पुराने हैं)। लेकिन फ़ायरफ़ॉक्स और क्रोम ने बहुत समय पहले इन एप्लेट्स का समर्थन करना बंद कर दिया था, और नया आइस्डटी इन सिस्टमों के साथ काम नहीं करता है। इसलिए, कई विकल्प सामने आए:

1. अपनी मशीन पर ब्राउज़र और जावा संस्करणों से एक चिड़ियाघर का निर्माण शुरू करें, इस विकल्प की अब आवश्यकता नहीं थी। कुछ आदेशों के लिए सिस्टम का मज़ाक उड़ाने की कोई इच्छा नहीं है।
2. वर्चुअल मशीन पर कुछ काफी पुराना लॉन्च करें (यह प्रयोगात्मक रूप से पता चला कि आपको जावा 6 की आवश्यकता है) और इसके माध्यम से आपको जो कुछ भी चाहिए उसे कॉन्फ़िगर करें।
3. बिंदु 2 के समान, केवल एक कंटेनर में, क्योंकि कई सहयोगियों को एक ही समस्या का सामना करना पड़ा और उन्हें सभी पासवर्ड आदि के साथ वर्चुअल मशीन छवि की तुलना में डॉकरहब पर एक कंटेनर में एक लिंक स्थानांतरित करना बहुत आसान है।
(वास्तव में, मैं बिंदु 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 इंटरफ़ेस का वेब पता शामिल है myhp.example.com
लॉगिन को स्वचालित करने के लिए, आइए प्राधिकरण जोड़ें। ILO में लॉगिन एक नियमित POST अनुरोध के साथ होता है, जिसके परिणामस्वरूप आपको एक JSON session_key प्राप्त होती है, जिसे आप GET अनुरोध में पास करते हैं:
यदि HILO_USER और HILO_PASS पर्यावरण चर परिभाषित हैं तो आइए कर्ल के माध्यम से session_key की गणना करें:

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

अब हम बस वीएनसी के माध्यम से लोकलहोस्ट पर पोर्ट 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 लॉगिन है और, तदनुसार, SOME_PASSWORD ILO के लिए पासवर्ड है।
उसके बाद, बस किसी भी VNC क्लाइंट को इस पते पर लॉन्च करें: vnc://localhost:5900
निस्संदेह, परिवर्धन और पुल अनुरोधों का स्वागत है।

DELL मशीनों के IDRAC इंटरफेस से जुड़ने के लिए एक समान परियोजना मौजूद है: docker-idrac6.

स्रोत: www.habr.com

एक टिप्पणी जोड़ें