Comments 73
Задания довольно интересные, нам игра понравилась (команда Danzai!).
Мы решили SSL куда проще, всего в 2 команды:
openssl req -sha256 -newkey rsa:2048 -keyout serv.key -out serv.req -nodes
openssl x509 -req -days 730 -in serv.req -CA ca.crt -CAkey ca.key -set_serial 01 -out serv.crt
Главное не забыть поставить правильный CN. Когда сдавали задание, поле output в SSL вообще не появлялось, поэтому приходилось только догадываться, по какой причине оно не засчитывается. Все решилось правильной настройкой TLS.

Третье задание для меня было вообще не очевидным, пришлось реверсить через рефлектор.

Было несколько неприятных фактов:
1. Не ответили на письмо в техподдержку. Почти все общение происходило на фейсбуке, это как вообще называется?
2. Часто отваливался или вовсе не работал VPN. Не нужно указывать в конфиге OpenVPN параметр link-mtu 1492, минусы от уменьшения MTU этим параметром перевешивают плюсы. Я понимаю, вы хотели сделать так, чтобы у людей с PPPoE пакеты не фрагментировались, но нужно использовать mssfix и fragment для UDP (но у вас такие большие пакеты по UDP не ходили ни в одном задании, вроде). Причем, по умолчанию, mssfix настроен на 1450, т.е. TCP-пакеты не будут фрагментироваться на линках с MTU>=1450 (а это и PPPoE, и PPTP).
3. Почту так и не починили даже к концу игры. Неправильная DKIM-запись, 9 одинаковых сообщений каждый раз, неправильный ник в уведомлениях о выполнении задания.

Ну это так, мелочи. Игра была интересной, так держать!

Лоровцы, вы крутые!
Забыл упомянуть что game начал работать только через час после начала игры.
В ТОП-5 есть команда из 3-х человек, если что. Так что количество тут не решало.
Ну я в одно лицо принимал участие, так-как у команды внезапно случилась своя олимпиада на работе ;) И ничо 78 место.
Да, вначле были проблемы, это факт. Надо чаще играть и тренироваться нам самим!
Про тех поддержку — видимо пропустили, а ФБ — это на текущий момент у нас, к сожелению, единственный вариант, так как my.ya.ru закрыт. Сама пользовалась в таком формате ФБ первый раз и не могу сказать, что в восторге. Если есть альтернативы — welcome!
олимпиада для Unix-инженеров и системных администраторов.

Рискую быть заминусованным, но всё же рискну поныть.
  • Арч
  • HG
  • Btrfs

Много ли системных администраторов имеют в продакшене эти вещи? Доходило до смешного — никто, кроме одного участника команды, не знал, как пользоваться пакетным менеджером. Еще можно пожаловаться на монгу, но она всё-таки более-менее в тренде. Кто всё-таки и для кого делал это соревнование?
Много ли системных администраторов имеют в продакшене эти вещи?
R.
Много ли системных администраторов имеют в продакшене эти вещи?
Еще можно пожаловаться на монгу, но она всё-таки более-менее в тренде. Кто всё-таки и для кого делал это соревнование?

В продакшене такое едва ли можно найти, но он имеет свойство меняться, а наиболее вероятные изменения, т.е. будущие «тренды» и можно увидеть в арче — btrfs, systemd и компания.

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

И встречный вопрос к вам — как часто вы встречаетесь с новыми, незнакомыми технологиями в работе? Это тоже можно считать соревновательным элементом.
можно увидеть в арче — btrfs, systemd и компания.
Да что вы так конкретно в арч въелись? Будто CentOS 7 и Fedora не используют systemd и btrfs. Это, вроде, уже стандарт. Дебиан 8 выходит через пару месяцев, тоже с systemd по умолчанию.
В продакшене такое едва ли можно найти, но он имеет свойство меняться, а наиболее вероятные изменения, т.е. будущие «тренды» и можно увидеть в арче — btrfs, systemd и компания.

это всё понятно, дебианы-убунты-центоси уже на системд. но тем не менее, тот же btrfs эти товарищи не впаривают.

И встречный вопрос к вам — как часто вы встречаетесь с новыми, незнакомыми технологиями в работе? Это тоже можно считать соревновательным элементом.


естественно, не всю жизнь апач ставлю. я с этим и не спорю.
тот же btrfs эти товарищи не впаривают

В последнем обновлении Oracle Linux включили официальную поддержку для неё.
Соревнование включало в себя не только проверку знания совокупности технологий, но и умение быстро разобраться в незнакомой ситуации и нагуглить решение.
Спасибо, получилось интересно.
С HG был хинт :) Удяляем файл, делаем коммит. Но game находит его в какой-то ревизии. Переименовываем /root/repo и создаем пустую директорию. Копируем в пустую /root/repo единственный файл 2.osm, далее:

cd /root/repo
hg init
hg add 2.osm
hg commit 
hg serve
Соглашусь, в целом весьма интересный экспириенс, несмотря на косяки с vpn и прочими пакостями.

Вот задание с HG нас выморозило всех больше. Участвовали с другом вдвоём, на это задание затратили 7 часов. При том, что сделали его изначально минут за 10… Вот неужели нельзя было продумать более детальный выхлоп game? Вот сказал бы он нам: «эй, слоупоки, с вашим впн и каналом с мту 900 идите-ка лесом, слишком долго реп качается и задание по таймауту провалено...». Уже где-то за час до завершения нас осенило всё-таки написать в саппорт («может косяк-то всё-таки не с нашей стороны?»). Благо в течение 40 минут получили первый ответ с запросом уточнения данных по команде и ip, далее в логах вижу движуху по HG, ещё минут через 10 ответ вида: меркуриал настроен правильно, но слишком долго занимает проверка. Благо у друга где-то у клиента стоял какой-то сервак с некоторыми ресурсами, пришлось переносить туда имидж, разворачивать его, запускать репозиторий уже там и пройти всё-таки эту проверку, но уже скатившись до 30 места. Всё было бы проще, будь нормальный output по проходимым заданиям.
Anyway всё было интересно и забавно, несмотря на то, что постоянно дёргали по работе, не давая сосредоточиться на прохождении заданий)
Для тех, кто в танке, поясните, пожалуйста, что нужно делать с dnAnalytics-то этой? Качать с codeplex дллки и подсовывать куда-то там?
Сам контест очень понравился! Ощутил себя в шкуре семиклассника на олимпиаде по математике для старшеклассников: 4 часа стопроцентной концентрации над трудными задачами, которые никак не поддаются
Оно после этого должно вместо Error :( что-то другое возвращать по http? Просто game уже не работает — проверить не могу
Там ещё и запросы правильные должны быть. Error говорит, если запрос не опознан.
Да, там есть две функции, которые требуют эту библиотеку. Одна комплексные числа считает, а другая в степень возводит, что ли, не помню.
В проведении олимпиады с захватом рабочего времени на центральной территории РФ был какой-то тайный умысел или просто недалёкий человек время выбирал?

Это, наверное самая большая проблема.

Арч… не знаю где мне это пригодится, но было прикольно по изучать новую для себя систему. Почему не funtoo?

Про «Strange protocol»: конечно круто придумали, но «нормальный» администратор сначала ищет готовые, стандартные, работающие решения (если изначально не указано иное), а потом уже занимается разбором почему стандартное решение не взлетело и наконец пишет что-то.

По «Binary»: ИМХО описанное решение уж как-то совсем не для администратора. Можно же взять тот же .NET Reflector и посмотреть, какие сборки нужны приложению, какие из них есть в установленном mono.

По «MariaDB Tuning»: а вот тут описали красивое решение. Есть более простое «в лоб» — увеличиваем query cache. У game всего несколько вариантов запросов — в конце концов запрос отрабатывает за требуемое время ;)

По «SSL»: прикольно конечно, что commonName надо правильное значение писать, но когда VPN рвётся и это значение меняется… Получается ну очень далёкая от реальной практики задача…
Соглашусь относительно времени проведения — всё-таки задания такие, над которыми стоит подумать, но и работать нужно же :)
я лично сказал начальству, что планирую заниматься повышением опыта путём участия в данном мероприятии, что было встречено с пониманием и одобрением.

к слову конкурс продолжался до часа ночи, после работы вполне себе можно было поучаствовать для интереса. а если хочется чего-то большего, чем участие — будьте добры, найдите время, хоть отгул на этот день берите.
Так и отпустят 8 спецов из отдела, половину из которых некому замещать в один день в отгул ;)
Если Вас так легко отпускают в любое время — видимо работы мало. Если при этом ещё хорошо платят — я Вам искренне завидую.
Ну у всех по-разному. У меня команда онлайновая. Один участник вообще из другого города. Все в момент проведения конкурса были на работе.
Всё равно всем не угодишь в общем.
Ну у всех по-разному.

Вот и я о том же.
А соревнование, это когда участники в равных условиях ;)
При чём тут пояса?
Если бы хоть один отборочный сделали в выходной день.
1. Никто не «ноет» мы тут делимся впечатлениями и пожеланиями
2. Этапа отборочных то два. Один в рабочий день, другой в выходной — многим удобнее было. Это просто пожелание по организации.
3. Вы какой-то злой… не стоит свою злость в Интернете выплёскивать — её здесь и так хватает ;)
Я тупо проспал половину :) товарищ по команде мой работал до 10 вечера, но тем не менее, мы таки успели выполнить все задания :) я больше мучался с запуском виртуалки под параллелс, в итоге плюнул и поставил вмварь. Ось незнакомая, да, было интересно.
Очень понравилось задание про strange protocol, наша команда самая первая по времени его решила даже.
Правда реализация на С++, с которым я лет 10 назад имел дело, но разобрался относительно быстро www.mafet.ru/strange_protocol.cpp
Пример нашёл тут github.com/r-lyeh/moon9/tree/master/deps/io/enet/demo

Не понравилось задание про монгодб — я не понял её философию.
И кстати SSL делал тоже нестандартно, взял набор скриптов /usr/share/doc/openvpn/examples/easy-rsa/2.0/ стёр все, сделал ./build-ca, затем заменил сгенерённые файлы на файлы из задания и сделал ./build-key-server. Правда сначала пытался просто ./build-key делать, а ещё было не понятно, какой host вызывается по https.

Ещё кстати я писал в ТП на тему архитектуры виртуалки, мне почему-то никто не ответил. В итоге провозился около с разворотом виртуалки, т.к. у меня не было физической тачки, чтоб поставить virtualbox, были только виртуальные. В итоге сконвертировал в формат esx и запустил там.
Я с SSL сделал еще проще, тупо поставил гуй xca, импортировал ca и сгенерил серт для сервера, с хостом вроде очевидно там.
В случае кстати с починкой MySQL можно решить по другому. Пользуемся тем что метаданные таблицы хранятся в отдельном файле. Создаем таблицу как указано. Останавливаем MySQL. Далее копируем data2.frm в data.frm ставим права на чтение запись mysql далее включаем MySQL вуаля, таблица читается. Насчет индексов по умолчанию mysql пишет в /tmp который смонтирован в tmpfs т.е. в память. По этой причине и добавлен в my.cnf исправленный строка tmpdir = '/var/tmp'. Без нее будет возникать ошибка недостаточно места для записи. Как бы про такое тоже писать надо так-как у вас получается типа, а все просто.

Насчет ssl кстати говоря провал. Так-как правильнее было все же бы по имени сделать. К примеру привязать к имени машины. А так если у вас динамический пул ip, порвалось соединение пролюбили ssl.
Во, я тоже перконой восстанавливал. Сначала отключал tablespace и не прокатило. Видимо не в той последовательности делал.

Перкону с наскоку не нашел как принести pacman'ом и пришлось собирать из исходников. А там неправильный Makefile был: какую-то статическую либу пытался подключить как динамическую.
Я дропнул базу, создал таблицу заново. Загасил мускл и подпихнул ibd.
Затем ALTER TABLE data DISCARD TABLESPACE; ALTER TABLE data IMPORT TABLESPACE;
И это игра? За вычетом написания своего сервера и расковыривания .net — скучно. Плюс, почему arch, а не debian?
Это же для администраторов. Там цель вернуть в рабочее состояние, а не заниматься написательством кода. Arch чтоб было сложнее :)
Именно для сисадминов скучно. Какие-то мелкие бытовые неудобства без интриги и драмы.
Мне скучно не было :) как и на прошлом соревновании, я почерпнул инфу для общего развития. После прошлого конкурса активно использую tmux, например.
Мне показалось, что это была олимпиада по pacman и systemd, иногда большая часть времени в выполнении заданий тратилась именно на них.
wut? Для pacman только и нужно было что ключи -Sy для установки пакетов. С GPG ключами (если пользовался yum/apt) тоже не проблема разобраться быстро.
systemd лично мне нужен был только в задании с MariaDB, в остальных случаях прокатывало просто пустить демона.
Не знаю, я просто отрубил проверку подписей и не парился. С системд тоже не заморачивался, screen и хардкорный запуск. Максимум на это системное барахло потрачено 10 минут.
У меня для Strange protocol код получился почти один в один с предложенным в статье :) Но еще пришлось добавить `if not event: continue`

А в Binary сервер упорно хотел узнать размер /dev/random («sz /dev/random»), на что программа резонно отвечала «Error :(» и общение с проверками прекращалось. Пришлось заменить /dev/random файликом с нулевым размером, тогда пошло дальше.
Не знаю что я делал не так, но без этого не получилось сделать.
хм, очень странно, я тоже смотрел дампы, у меня ругалось на совсем другое. Может вы как-то не так запустили образ?
Нет, я вот на фейсбуке отписал уже: действительно разница есть запускать через mono или через wine c .net внутри. mono на «sz /dev/random» выдает 0, а wine — Error
Binary еще можно было по strace посмотреть, явно видно попытку загрузить библиотеку и ее отсутствие. А дальше вперед в гугл.

Strange protocol выел больше всего мозга, Я сначала пытался проанализировать пакет и найти закономерность и только спустя часа 4 нагуглил библиотеку ENet, программить пришлось на C.

В итоге наша команда на 22 месте. Реально был шанс на место 15-е, но Strange Protocol >_<
:) что 15-е, что 22-е все-равно не в десятке. Так что стоит ли так убиваться? :)
Та какая разница какое место?) я половину проспал, но сделал сам 7 заданий за 6 часов, коллега доделал остальные. Главное же все сделать кмк :) количество человек в командах неравное, это не футбол :)))
Забавно, что мы первые по самой сложной задаче) Этого я не ожидал. Да мне и задача не показалась сложной — гугл сильно помог вовремя.
Мне забавно было было, когда я схатился за первое задание — HG и внезапно увидел там себя
# grep -c Self-Perfection /root/repo/2.osm
253

Потом хватаюсь за Mongo, а там опять какие-то геоданные с подозрительным упоминанием osm_id. Стало ещё веселее.

Ну и вообще с удовольствием сыграли.
Спасибо, очень понравилось :)
В задачке про Strange Protocol нагуглился-написался такой костыль, но не прошел проверки. Вдруг кому пригодится :)
ncat -l 13000 --keep-open --udp --exec "/bin/cat"
Недостаточно просто пересылать 1в1 пакет обратно, надо ещё с тонкостями протокола enet ужиться.
Теперь я это понимаю, но когда читал задание — пошел не в ту степь, оказывается
Насчет производительности MongoDB:

Сделали всё точно также, как написано в статье: первый запрос отрабатывал 11 секунд на моей машине. Тест не прошли. :(
А у нас с HG была похожая фигня (писал выше). Долго мучались, уже перед самым завершением развернули на другой машине в другом географически месте, и прошли. Вам сочувствую :(
  • Для Strange Protocol в pyenet есть test_server.py, достаточно было изменить порт и запустить, самому ничего писать не потребовалось.
  • Когда делал MariaDB repair, то создал отдельную БД с таблицей и взял .frm для предоставленного .ibd чтобы не рисковать потерей времени если с discard tablespace что-то пойдет не так.
Есть у кого-то свободное место в команде? Создать новую не хочу, потому что не будет кого пригласить в ней :(
Only those users with full accounts are able to leave comments. Log in, please.
Information
Founded

23 October 1997

Location

Россия

Employees

over 10,000 employees

Registered

9 August 2008

Habr blog