మీరు బహుశా ఆశ్చర్యపోవచ్చు - డాకర్ ఇక్కడ ఎందుకు ఉంది? ILO వెబ్ ఇంటర్ఫేస్లోకి లాగిన్ అవ్వడం మరియు మీ సర్వర్ని అవసరమైన విధంగా సెటప్ చేయడంలో సమస్య ఏమిటి?
నేను మళ్లీ ఇన్స్టాల్ చేయాల్సిన అవసరం లేని కొన్ని పాత అనవసరమైన సర్వర్లను వారు నాకు ఇచ్చినప్పుడు నేను ఆలోచించాను (దీనిని రీప్రొవిజన్ అంటారు). సర్వర్ కూడా విదేశాలలో ఉంది, అందుబాటులో ఉన్న ఏకైక విషయం వెబ్ ఇంటర్ఫేస్. బాగా, తదనుగుణంగా, నేను కొన్ని ఆదేశాలను అమలు చేయడానికి వర్చువల్ కన్సోల్కి వెళ్లవలసి వచ్చింది. అక్కడే మొదలైంది.
మీకు తెలిసినట్లుగా, జావా సాధారణంగా HP లేదా డెల్లో అయినా వివిధ రకాల వర్చువల్ కన్సోల్ల కోసం ఉపయోగించబడుతుంది. కనీసం అది ఎలా ఉండేది (మరియు వ్యవస్థలు చాలా పాతవి). కానీ Firefox మరియు Chrome చాలా కాలం క్రితం ఈ ఆప్లెట్లకు మద్దతు ఇవ్వడం ఆపివేసింది మరియు కొత్త IcedTea ఈ సిస్టమ్లతో పనిచేయదు. అందువలన, అనేక ఎంపికలు ఉద్భవించాయి:
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 ఇంటర్ఫేస్ పేజీకి వెళ్లి మీ వినియోగదారు పేరు మరియు పాస్వర్డ్ను నమోదు చేయండి. ఆటోస్టార్ట్లో Firefoxని ప్రారంభించండి:
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 సెషన్_కీని స్వీకరిస్తారు, ఆపై మీరు GET అభ్యర్థనలో పాస్ చేస్తారు:
HILO_USER మరియు HILO_PASS ఎన్విరాన్మెంట్ వేరియబుల్స్ నిర్వచించబడితే, curl ద్వారా 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
ఒకసారి మనం సెషన్_కీని డాకర్లో రికార్డ్ చేసిన తర్వాత, మనం 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