nuclight: (Default)
[personal profile] nuclight
Пока на больничном, есть свободное время, решил записать воспоминания про олимпиаду для Linux-администраторов — а то уже не всё помню. В этом году её честно назвали олимпиадой для Linux-администраторов, и я, будучи фряшником, хотя сомневался, всё-таки пошел попробовать. Попробовал очень даже неплохо :) Причем, что любопытно, очень даже неплохо из BSD-админов "попробовал" не только я: если во 2-й тур прошло 5 человек из 36 с канала #freebsd (shattered, dmn42, Jay, imax и ваш покорный слуга) — то в финал пробралось четверо из них. Четверо из десяти. По-моему, эти 40% на чисто линуксовой олимпиаде вполне подтверждают тезис о том, что BSDшники профессиональнее =) Причем дело не в том, что эти люди просто "случайно" оказались универсалами, знающими несколько платформ (и случайно завсегдатаями канала #freebsd). Они, как и я, еще и предпочитают эту систему, а лично я — так и вообще имел не так много опыта с другими системами. Мой опыт общения с линуксами в основном ограничивается SLES на вычислительном кластере родного политеха. И сусю эту предписывалось трогать как можно меньше (суппорт, мол, есть), и был этот кластер толком никому не нужен — увы, провинциальные реалии... так что мы большую часть времени занимались если не виндой и суппортом не умеющих писать на Си юзеров, то, кхм, саморазвитием (и отнюдь не по линуксовой части).

Но обо всём по порядку. Первые игры олимпиады — вопросы по теории, но это лишь отсев, а не что-то, способное действительно показать профессионалов в отрасли. Определяет практика, и первая практика на олимпиаде началась во втором туре. 25 октября нужно было починить, кроме мелочей, LDAP, Джумлу и Друпал (да, мне тоже было смешно), в виртуалках, доступ в которые был сделан через веб — типа консоль tmux. Видимо, специально затем, чтобы больше времени потратили — все ж к screen привыкли. Эта игра глючила и глючила, и довольно быстро вообще прекратилась, поскольку кто-то нашел дырку в реализации организаторами доступа к tmux через web — и пробрался из виртуалку и хост-машину, где еще и ответы лежали. Так что игру отменили, и я уже даже не помню, что там было.

Повторная игра 2-го тура была 27 октября, вот там уже был человеческий VNC. Правда, интерфейс "старт/стоп виртуальной машины" был сделан на вебе неудобно, впрочем, то мелочи (хотя у некоторых они вызвали большие нарекания). Итак, "физическая" консоль виртуалки по VNC, в виртуалке — Убунта. Тщательно сломанная (вообще это уровень уже даже не финала, а суперфинала прошлого года), настолько, что паникует при загрузке. И надо её починить — мониторинг снаружи проверяет сервисы этой машины, которые должны работать (ессно, пока на ней нет поднятой сети, всё горит красным). Сделать надо всё за 1 час, чем больше и раньше других сделано — тем выше место в таблице участников.

Вот тут начинается самое интересное. Я эту Ubuntu, как и вообще современный Линукс, видел вживую впервые в жизни. Камрад Jay описал чуть спустя то, что на этой игре было по заданиям. А у меня было интересное психологическое состояние, и многие из обсуждавшихся вещей меня удивили — я их не заметил, хотя и решил. Наверное, ближе всего будет описать это состояние, как "танк, рвущийся на прорыв через препятствия". Воля к победе, боевой дух, решимость, как её там еще?.. Короче, время пошло, взлетаем.

Итак, grub исправлен, неизвестный пароль рута обойден, система в сингле. Первым же делом набираю ls, чтобы осмотреться, и получаю болт. Странно здесь то, что ls был лишь пятым в списке проверок мониторинга, как будто он не нужен (новое поколение пользуется только mc что ли?..). Но ладно, надо поставить ему chmod +x, тот тоже обламывается, но я не стал смотреть почему, а сразу влепил chattr -i /bin/ls. Помогло, едем дальше. На машине 2 интерфейса, eth0 и eth1, после краткого разбирательства, как тут инит-скрипты пускать, заработала сеть — к счастью, адрес тут же был получен по DHCP, и типа всё ОК. Так что я не стал смотреть на второй интерфейс, а после игры с удивлением узнал, что это так хитро именованный бридж.

Адрес есть, но сеть, конечно, не работает. Иду в конфиги, громко ржу со строчки "#vsem chmoki v etom chatike :)", прямо перед ip rule ... unreach from all. Ребята отожгли. По админской привычке делать всё правильно сначала правлю конфиги, и только потом применяю эти же команды в консоли (поступаю так же с чем-то еще). Логика для production "проверь, всё ли будет корректно после ребута, этим самым ребутом" неожиданно себя оправдала немедленно — ВНЕЗАПНО машина упала в пакнику, как оказалось, по крону, там модуль ядра для этго грузился. Но это сослужило мне добрую службу: если у других из-за этого крона всё снова становилось в мониторинге красным, и приходилось делать те же действия заново, теряя время — я после ребута получил сразу готовую настроенную сеть.

Далее sshd. Что с ним? А вручную? Ах либы. Не глядя, херачу ldconfig с нужными параметрами, и всё заводится. Потом удивлялся, что у других разбирательство заняло энное время.

Это "херачу не глядя, и после кувалды всё работает" было еще не раз. Например, еще до первой паники, ползая в поисках по конфигам, наткнулся на сохраненные правила iptables и просто вычистил их, не читая. В итоге у меня отдельный пункт в мониторинге поднялся сразу же с сетью, без траты на него времени. Так было и в других местах. Просто делаешь так, как должно быть, не глядя на то, как было.

Правда, под конец это горячее напряжение начинает давать сбои. Я очень много времени убил на проблему с DNS. Что ж такое-то, в tcpdump запросы вижу, ответа от сервера не вижу. Попробовал другие за пределами сети — да, NAT есть, даже ya.ru по IP-шнику, резольвленному на домашней машине (вручную набрал), пингуется. А от любого внешнего сервера нет ответов. Что же это, в Яндексе зафайрволили ответы именно DNS?.. Вспоминаю по первому туру про ebtables, и вот тут — нервы — несколько раз жму ebtables -list, не понимая, что ж ему надо-то. Хотя, конечно, я на этом всего полминуты потерял, дальше убил нахуй правило — всё, работает.

А там нервы неспроста, интрига, болельщики беснуются, ирц орет хайлайтами — мол, ты постоянно с 10 на 11 место летаешь. Мне сравнительно пофиг, я дальше ломанулся посмотреть lighthttpd, посчитав (наивно), что там где-то в конфиге ошибка, и за 5 минут, никогда с ним не работав, я могу успеть. Увы, нет, я успел оценить только то, что с конфигом всё в порядке, как тут VNC-соединение закрылось — время истекло. Пришла пора расслабляться и унимать мандраж — в последние секунды идущий передо мной игрок опять намудрил, и я остался на 10 месте.

Дальше был, гм, цирк, связанный с не вполне корректным, на мой взгляд, подходом к отбору. Я и человек на 9 месте апелляций не подавали, потому что мы были уже, как говорится, "фдисятке и ниибёт". На что там подавать? Что я взялся не за то из заданий, хотя мог бы починить? Так это моя проблема, всё честно. А вот люди на 11 и 12 месте апелляции подали, и их удовлетворили. Дескать, мониторинг кривой, всё такое. В итоге мы поменялись местами. И даже в логе трансляции нас поменяли местами, хотя уж там-то не результаты, там всё должно быть так, как было на момент окончания игры. У меня где-то даже копия валялась сохраненная, но фиг бы уж с ним... В клубе олимпиады предлагал просто в таких спорных вопросах взять всех, кто сделал более 60%, в соответствии с критериями прошлых туров. Это бы как раз 12 человек и вышло. Там вообще хоть что-то сделать из 36 человек смогло только 14, вполне честный отбор был бы, мне кажется.

Талисман FreeBSD, принесший мне удачу
Но ладно. Через несколько дней ноября Яндекс внезапно спрашивает меня почтой, что вот, 1 человек отказался, а другой по каким-то техпричинам не может, и вы проходите. Окей, 10 число, чемодан-аэропорт-Москва. Сама олимпиада 11 числа, и туда я взял болельщицу — быть живым талисманом FreeBSD для всех нас фряшников там ;) Мои несколько фоток с телефона тут.

Начало, кофе, рассаживают за ноуты. Опять убунта. И где тут что?.. Разочаровал и VNC-клиент — строки обрезал, что-то еще было. Но разбираться с десктопом, простите, времени нет. А оно потом мешало и нерабочим ^C например — жмешь, а тишина, приходится останавливать виртуалку и заново, из-за банального tcpdump. Во втором-то туре все из дому работали, в комфортных условиях. У кого-то с ^C всё было нормально, но разбираться... очередной косяк организаторов, в общем.

Впрочем, в самом финале это еще была фигня. Была там CentOS, которую я еще более не видел (и еще бы не видел), чем убунту. И что-то совсем жуткое с GRUB и initrd. Что-то из параметров я нагуглил (инетом пользоваться разрешалось), и смог понять, что косяк на самом initramfs. Дальше меня не хватило, и весь час долбился как рыба об стену. Впрочем, не только я — хоть что-то сделать из десятки смогли только 2 человека (см. трансляцию), причем организаторам пришлось дать дополнительные полчаса, тогда к ним добавился еще один, починивший более половины, и еще двое размочили счет.

Не везло организаторам в этом году — то задания сложные, то еще что... Поскольку для суперфинала нужно было 5 человек, то после обеда и экскурсии по офису Яндекса для выбора еще двух участников устроили жеребьевку и викторину. Попали я и rvs, причем мои ощущения в первые моменты были скорее отрицательные — "опять я на это попал". В общем-то было от чего, потому что — опять! — нужно было чинить виртуалку. Снова grub, снова поднять сеть, и так далее. Далее задания конечно были другие, но всё же, видимо, от них просто. все устали — даже победитель сделал еще только 2 задания, кроме самого базового пинга. Несмотря на то, что нам перед началом дали подсказку — дескать, там где-то в виртуалке заныкан бэкап части того, что нужно.

На этот раз загрузка ядра была сломана не так основательно, и вскоре в систему я попал. Там корень в read-only, и похоже я был в чруте. Или нет? Мозг как-то не хотел выяснять. Я был злой на то, что мне по каждому чиху приходилось перезагружать виртуалку, поскольку не работал банальный ^C (при этом в stty всё было в порядке). Уж не знаю, что там было, VNC-клиент ли виноват, но даже tcpdump посмотреть — и всё, приехали, снова ребут... У других всё было в порядке. Вот так сижу на нервах и пытаюсь понять, что же.

А вскоре после начала наш живой талисман FreeBSD (болельщица то есть) принёс мне бубен (кстати, очень мило было) — это был один из подарков, который Яндекс вручал всем участникам. И вот я, злой, беру этот бубен в руки и начинаю в него бить. Зал заржал. Фраза в официальном посте Яндекса "Во время финала игроки чинили серверы, и помогали им настоящие админские бубны" была явно про этот момент :) Это несколько расслабило нервы, и я поднял сеть просто наживую, без конфигов. И попал в тройку победителей. Конечно, ковырялся дальше, но уже ничего не починил, как, впрочем, и все остальные, кроме победителя. Думаю, скорее это следует списывать на задания и обстановку (устали уже все).

Далее экскурсия в датацентр Яндекса, награждение и фуршет с пивом, в общем, ничего интересного.

Что можно сказать по итогу — в отличие от прошлого года, по этой олимпиаде уже вполне можно судить о положении дел в отрасли, её результаты показывают уже что-то реальное — всё стало гораздо ближе к практике. На прошлой было три теоретических теста (1 тур, 2 тур, финал), пусть и разных по форме, и лишь одна игра с практикой — суперфинал. В этой — только первый тур с отсевом по теории, но вот все 3 практики были однообразные — "починить упавший сервер за 1 час".

Поскольку победителям прошлых лет запрещено участвовать в следующих олимпиадах, могу свободно высказать предположения, как можно было бы её еще улучшить. Например, в финале можно было бы не чинить сервер, а настраивать что-то с нуля. А в суперфинале — оттюнить медленно работающий сервер (привет, хайлоад). Или, там, разобраться с тем, почему в боевых условиях не работает поделие криворукого программера (это классическое бодание админов и программеров, вошедшее в байки и мемы, бывает даже в самом Яндексе). Одна беда — это требует больше времени, а в программе финального дня еще экскурсия в ДЦ Яндекса, затягивающаяся по московским пробкам... Может быть, стоило бы объединить финал и суперфинал, чтоб уместилось, но, наверное, это будет противоречить правилам, которых хочет придерживаться Яндекс...

Date: 2012-01-13 06:39 pm (UTC)
From: [identity profile] jay-is-here.livejournal.com
Да, три раза чинить сломаные виртуалки утомляет. Для разнообразия установка и настройка новых сервисов вполне вариант.

По поводу поднятия сервисов руками - в следующий раз виртуалки, скорее всего, будут перезагружать по окончанию времени. Соответственно, приниматься в расчет будут показания мониторинга после перезагрузки. Так что, в следующий раз придется не просто поднимать сервисы руками, а еще и в rc.local их прописывать ;)

Экскурсию в ДЦ я очень хотел пропустить уже в этом году, но повелся за толпой и потом жалел об этом. Лучше бы остался в офисе и потрындел со знакомыми.

Date: 2012-01-13 08:11 pm (UTC)
From: [identity profile] vrusinov.livejournal.com
:)

Мне в убунтах было очень лень и некогда с upstart разбираться, у меня почти все через rc.local было сделано.

Date: 2012-01-13 09:18 pm (UTC)
From: [identity profile] ghrar.livejournal.com
предложения - самое то!) в суперфинал - тюнинг однозначно). с нуля строить интересно, но граблей в этом меньше, чем в тюнинге продуктива, имхо.

Date: 2012-01-15 06:23 am (UTC)
From: [identity profile] victor-sudakov.livejournal.com
Рад за тебя, рад за Томск. Больше всего рад тому, что есть еще компании, в которых знание Unix востребовано. Печально глядеть на нынешних молодых IT-шников, которые кроме Windows ничего не знают и даже бравируют этим, и главное - их работодателей это устраивает.

Date: 2012-01-26 02:51 am (UTC)
From: [identity profile] ps1kodel1k.livejournal.com
Ну, с наступившим днем рождения

Date: 2012-01-26 07:23 am (UTC)
From: [identity profile] l2tp.livejournal.com
С днем рождения!

Date: 2012-01-26 10:44 pm (UTC)
From: [identity profile] nuclight.livejournal.com
Спасибо :) Кстати тебя тоже :)

Date: 2012-11-20 12:07 pm (UTC)
From: [identity profile] pr0xy-fclm.livejournal.com
Интересно читать было) Поздравляю))

February 2017

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
262728    

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 3rd, 2025 04:01 pm
Powered by Dreamwidth Studios