Docker gámur til að stjórna HP netþjónum í gegnum ILO

Þú gætir líklega verið að velta fyrir þér - hvers vegna er Docker til hér? Hvað er vandamálið við að skrá þig inn á ILO vefviðmótið og setja upp netþjóninn þinn eftir þörfum?
Það var það sem ég hugsaði þegar þeir gáfu mér nokkra gamla óþarfa netþjóna sem ég þurfti að setja upp aftur (það sem kallast endurúthlutun). Miðlarinn sjálfur er staðsettur erlendis, það eina sem er í boði er vefviðmótið. Jæja, í samræmi við það, ég þurfti að fara í sýndarborðið til að keyra nokkrar skipanir. Þar byrjaði þetta.
Eins og þú veist er Java venjulega notað fyrir ýmis konar sýndarleikjatölvur, hvort sem það er í HP eða Dell. Þannig var það allavega (og kerfin eru mjög gömul). En Firefox og Chrome hættu að styðja þessi smáforrit fyrir löngu síðan og nýja IcedTea virkar ekki með þessum kerfum. Þess vegna komu upp nokkrir möguleikar:

1. Byrjaðu að smíða dýragarð úr vöfrum og Java útgáfum á vélinni þinni, þennan valkost var ekki lengur þörf. Það er engin löngun til að hæðast að kerfinu vegna nokkurra skipana.
2. Ræstu eitthvað frekar gamalt á sýndarvélina (það kom í ljós með tilraunum að þú þarft Java 6) og stilltu allt sem þú þarft í gegnum hana.
3. Sama og lið 2, aðeins í gámi, þar sem nokkrir samstarfsmenn lentu í sama vandamáli og það er miklu auðveldara að flytja þeim tengil á gám á Dockerhub heldur en sýndarvélamynd, með öllum lykilorðum o.s.frv.
(Reyndar komst ég bara í punkt 3 eftir að ég gerði punkt 2)
Við gerum lið 3 í dag.

Ég var aðallega innblásin af tveimur verkefnum:
1. docker-baseimage-gui
2. docker-firefox-java
Í rauninni fyrsta verkefnið docker-baseimage-gui inniheldur nú þegar tól og stillingar til að keyra skrifborðsforrit í Docker. Venjulega þarftu að skilgreina staðlaðar breytur og forritið þitt verður aðgengilegt í gegnum vafra (websocket) eða VNC. Í okkar tilviki munum við ræsa í gegnum Firefox og VNC; það virkaði ekki í gegnum nettengi.
Fyrst skulum við setja upp nauðsynlega pakka - Java 6 og 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

Nú er allt sem þú þarft að gera er að fara á ILO viðmótssíðuna og slá inn notandanafn og lykilorð. Ræstu Firefox í sjálfvirkri ræsingu:

RUN bash -c 'echo "exec openbox-session &" >> ~/.xinitrc' &&
bash -c 'echo "firefox ${HILO_HOST}">> ~/.xinitrc' &&
bash -c 'chmod 755 ~/.xinitrc'

Umhverfisbreytan HILO_HOST inniheldur til dæmis veffang ILO viðmótsins okkar myhp.example.com
Til að gera innskráningu sjálfvirkan, skulum við bæta við heimild. Innskráning á ILO á sér stað með venjulegri POST beiðni, þar af leiðandi færðu JSON session_key sem þú sendir síðan GET beiðni:
Við skulum reikna session_key með curl ef HILO_USER og HILO_PASS umhverfisbreyturnar eru skilgreindar:

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

Þegar við höfum skráð session_key í docker getum við keyrt VNC:

exec x11vnc -forever -create

Nú tengjum við einfaldlega í gegnum VNC við port 5900 (eða annað að eigin vali) á localhost og förum í sýndarborðið.
Allur kóði er í geymslunni docker-ilo-viðskiptavinur.
Full skipun til að tengjast 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

þar sem ADDRESS_OF_YOUR_HOST er ILO gestgjafanafnið, SOME_USERNAME er innskráningin og, í samræmi við það, SOME_PASSWORD lykilorðið fyrir ILO.
Eftir það skaltu einfaldlega ræsa hvaða VNC viðskiptavin sem er á heimilisfangið: vnc://localhost:5900
Viðbætur og dráttarbeiðnir eru að sjálfsögðu vel þegnar.

Svipað verkefni er til fyrir tengingu við IDRAC tengi DELL véla: docker-idrac6.

Heimild: www.habr.com

Bæta við athugasemd