Компания
499,46
рейтинг
18 декабря 2012 в 11:12

Разработка → Отчёт с Олимпиады по Linux + задания с ответами

7 декабря прошел финальный тур Олимпиады по GNU/Linux среди студентов и молодых специалистов. Вот топик с анонсом: первый тур проводился дистанционно, второй — очно в Москве. Ниже отчёт и примеры заданий заочного и очного туров.


Геннадий Мазуров занял первое место.

Победители:
  • I место — Геннадий Мазуров
  • II место — Бова Боваев
  • III место — Вячеслав Карпухин


Отчёт


Мы уже далеко не первый год проводим Олимпиады по системному администрированию, но в этот раз события развивались несколько стремительнее, чем обычно. После топика с анонсом мы поймали хабраэффект, который, в частности, выразился в том, что формат из межвузовского очень быстро перерос в международный. Часть претендентов просилась участвовать вне конкурса – из интереса. Мы решили никого не ограничивать, и допустили к участию в первом туре всех желающих. По нашим подсчетам примерно 60% участников пришло с Хабра, остальные узнавали про олимпиаду в социальных сетях, а также из объявлений в университетах. Многие звали друзей.

Из-за того, что было много участников не из Москвы, нам пришлось на ходу менять даты второго тура (не все успевали приехать) и некоторые правила. Возникли также разночтения в трактовке, кто такие “молодые специалисты”. Мы ориентировались на людей, закончивших ВУЗы 1-3 года назад (то есть примерно до 25 лет), но нечетко это проговорили. Я прошу прощения у всех участников, которые из-за этого могли ощутить некоторую скомканность организации. Второй раз на эти грабли не наступим.

Мы намерено упростили задания первого тура, чтобы не возник отпугивающий эффект, как это было год назад, когда до финала добрались только 12 человек. В этом году на второй тур мы отобрали 30 лучших участников, из них к нам 7 декабря смогли приехать 22 человека. Зато, по мнению нашего победителя, Геннадия Мазурова, который уже принимал участие в нашей олимпиаде 2 года назад, на этот раз во втором туре задания были существенно сложнее, чем ранее.

Геннадий вышел вперёд с большим отрывом. В первом туре можно было набрать максимум 30 баллов, во втором – 70. Победитель набрал по итогам двух туров 80 баллов (в среднем у участников было по 45 баллов). Геннадий живет в Москве, он закончил МГТУ им Баумана и уже работает. Второе место завоевал Бова Боваев (66 баллов), который, можно сказать, пробился к нам на финал: его допустили участвовать в первом туре вне конкурса, а потом уже разобрались с наличием-отсутствием у него высшего образования. Бова родом из Элисты (Калмыкии), заканчивает университет и сейчас также живет в Москве. Третье место занял Вячеслав Карпухин из Уфы (63 балла).

О формате проведения второго тура участники могли догадаться: мы всячески давали понять, что наш финал будет похож на экзамены RedHat. Готовиться можно было по Exam Objectives на сайте RedHat. Но в отличие от экзаменов RedHat мы разрешали пользоваться интернетом. Во втором туре было 20 заданий с разными баллами, которые нужно было выполнить за 4 с половиной часа. После подведения итогов мы разослали всем финалистам правильные варианты решения для заданий второго тура.

Всех приехавших к нам в гости во время проверки работ развлекли экскурсией по офису и одному из наших дата-центров. После олимпиады несколько участников выразили желание у нас работать, и сейчас мы рассматриваем их резюме. Но появления большого количества новых сотрудников после Олимпиады мы не ждем — высокие результаты, как правило, показывают те, кто уже где-то работает: понятно, что наличие практического опыта дает большое преимущество. Наша Олимпиада, скорее, ориентирована на других людей: на тех, кто пришел, попробовал и понял, что есть ещё чему учиться — и решил совершенствоваться. На одной из прошлых Олимпиад у нас был участник, студент Бауманки, занявший далеко не призовое место. Но в очередной год он снова участвовал и завоевал первое место – хорошо прокачался.

Кстати, всех, кто в первом туре набрал более 60%, мы готовы рассматривать как соискателей без входного технического собеседования.



Задания первого тура с ответами


UPD: скачать PDF

Выборочные задания второго тура, вызвавшие наибольшие затруднения


Исходная ситуация: в вашем распоряжении находятся 2 виртуальные машины с установленной CentOS 6.3 x64, расположенные в одном VLAN. Имена машин — node1 и node2. SELinux на момент проверки выполнения заданий должен работать в режиме targeted enforcing. Перед проверкой заданий машины будут перезагружены.

7. Создайте на node1 каталог /pub. Корневая файловая система, которой принадлежит каталог /pub, должна быть смонтирована с опциями по умолчанию. Каталог /pub предназначен для совместной работы пользователей user1 и user2. Необходимо, чтобы каждый из них мог создавать в /pub файлы, а другой пользователь мог их редактировать. Остальные пользователи не должны иметь доступа в данный каталог.

Ответ
Это задание про SETGID directory, которые используются для организации совместной работы пользователей. Правильно это задание выполнили только 2 участника.

mkdir /pub
chown root:grp1 /pub
chmod u=rwx,g=rws,o= /pub


SETGID (s) обеспечивает, что все файлы и каталоги, которые создаются внутри /pub, имеют ту же группу, что и /pub, т.е. grp1.
Далее надо было удостовериться, что для пользователей grp1 параметр umask=0002, чтобы по умолчанию вновь создаваемые объекты разрешали группе писать g=rwx.


11. На node1 предоставьте каталог /d01 и его подкаталоги в общий доступ по NFS только на чтение для всех адресов сети. Убедитесь, что содержимое всех каталогов доступно с узла node2.

С этим заданием никто из участников на 100% не справился.

Ответ
Первая хитрость заключалась в том, что /d01 содержит точки монтирования других файловых систем, которые по умолчанию не экспортируются. Поэтому предпочтительный вариант решения – добавить в /etc/exports отдельные записи для /d01, /d01/public и /d01/private.

Еще один вариант – использовать при экспорте /d01 опцию nohide, однако в реальной жизни ее следует использовать с осторожностью (man 5 exports)

Вторая хитрость, которая поджидала на пути, это запись:
rpcbind:ALL
в /etc/hosts.deny на node2.


Также надо было не забыть включить автозапуск служб:
chkconfig nfs on


и открыть порты NFS в файрволле. В принципе, достаточно было разрешить все подключения, т.к. в других заданиях ограничения не накладываются:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -j ACCEPT


15. На node2 используйте часть неразмеченного пространства диска размером 2ГБ и подключите его по протоколу iSCSI к node1. На узле node1 это пространство должно быть доступно в виде блочного устройства.

С этим заданием справился только один участник.

Ответ
Сделать средствами LVM логический том размером 2Гб (но можно, конечно, было сделать просто раздел на диске). Уставить на node2 пакет scsi-target-utils. Добавить в /etc/tgt/targets.conf:
<target iqn.2012-12.bla-bla-bla:target0>
    backing-store /dev/newvg/iscsi-vol
</target>


Перезапустить службу tgtd и активировать ее автозагрузку:

service tgtd restart
chkconfig tgtd on


Открыть порт iscsi-target 3260/tcp с помощью iptables.
На node1 убедиться, что установлен пакет iscsi-initiator-utils, обнаружить target:
iscsiadm -m discovery -t st -p 10.1.x.2:3260
Starting iscsid: [ OK ]
10.1.x.2:3260,1 iqn.2012-12.com.example:server.target0


Проверить, что доступен новый диск:
fdisk –l


17. На node2 установите и настройте web-сервер с двумя виртуальными сайтами — www.example.com и www.test.net. Сайт www.example.com должен быть доступен при обращении к серверу по 8088 порту, а www.test.net — по 8088 и 443. web-сервер должен автоматически запускаться при старте системы.

Это задание вызвало много затруднений, видимо, из-за зависимости от настроек SELinux. Про SSL в задании прямо не оговаривалось, но мы заложились на очевидность такого требования.

Ответ
Нужно было установить пакеты httpd и mod_ssl. В конфиге /etc/httpd/conf/httpd.conf исправить:
Listen 8088
NameVirtualHost *:8088


Конфигурация virtual hosts в минималистичном варианте может быть такой (можно там же в httpd.conf):
<VirtualHost *:8088>
    ServerName www.example.com
</VirtualHost>
<VirtualHost *:8088>
    ServerName www.test.net
</VirtualHost>



По SSL-части нужно было изменить в /etc/httpd/conf.d/ssl.conf:
Listen 443
<VirtualHost *:443>
ServerName www.test.net:443


Остальное по умолчанию.
Поскольку SELinux работает в режиме targeted enforcing, apache не может использовать порт 8088, этого порта нет среди разрешенных для него политикой:

semanage port -l | grep -w http_port_t
http_port_t tcp 8080, 80, 443, 488, 8008, 8009, 8443


добавляем для контекста http_port_t еще один разрешенный порт (утилита semanage входит в пакет policycoreutils-python, его нужно было установить):

semanage port -a -t http_port_t -p tcp 8088


После этих действий можно запустить apache и установить автозагрузку:
service httpd start
chkconfig httpd on


Также необходимо было открыть порты 8088 и 443 с помощью iptables.


Следующая олимпиада


В следующем году будет очередная Олимпиада по системному администрированию. Я с удовольствием выслушаю ваши пожелания и обратную связь по этой. Из возможных изюминок следующего года — скорее всего это будут уже не разрозненные задачи, а этапы создания одного решения, каждый из которых дополняет остальные.
Автор: @adubskiy
КРОК
рейтинг 499,46

Комментарии (30)

  • +35
    Процитирую комментарий из паблика Вконтакте:
    «задания первого тура с ответами» в docx, WTF?
    • +7
      И ещё написание GNU\Linux через обратный слэш. WTF?
    • +1
      а ещё на олимпиадных компьютерах, которые вы видите на фотографии, стоит windows xp =)

      большие компании — они такие, что ж поделаешь.

      хотя, возможно что windows там стоял из-за необходимости подключаться к серверу vmware.
    • +1
      а теперь и вовсе — файл не доступен для скачивания, шикарно…
  • +1
    а почему такие сложности вызвал iSCSI? неужели я тот единственный, кто сделал? или там какие-то неочевидные проблемы возникали?
  • +2
    Задания олимпиады по Linux в docx, серьезно?
    UPD: слоупок я.
  • +6
    Пользуясь случаем, спрошу. Народ, вы используете selinux?
    • +6
      Нет.
    • +2
      Нет.
      Если его использовать, то необходим один или два целых специалиста занимающихся только селинуксом :)
    • 0
      SELinux требуется на экзаменах Red Hat.
    • 0
      нет.
    • 0
      нет
  • +1
    Там в ответах видимо закралась ошибка (15 вопрос)
    У файлов file1 и file2

    видимо file1 и file3
    • 0
      И 27 и 28 вопросы одинаковы. 28-й видимо следует поправить, судя по ответу.
      • +1
        А я вот поучаствовать так и не смог. получил в пятницу добро на прохождение, но так и не смог залогиниться :( Сейчас почитал вопросы, думаю первый тур бы я прошёл, но за то понятно теперь что учить активнее.
  • 0
    Где можно посмотреть остальные фотографии с мероприятия?
  • 0
    Я что, один 100% в первом туре набрал?
  • 0
    Огромное спасибо за SETGID!
  • +1
    Мне, оценивающего себя как power user, как-то странно стало, что приведённые в топике вопросы вызвали какие-то затруднения у аж участников олимпиады. Это примерно, как если бы какие-то пловцы на Олимпиаде не смогли бы проплыть 200м, и затонули на середине дистанции, ну кроме Фелпса, который не доплыл бы всего 5 метров до финиша.
    • 0
      Главная проблема была не решить эти задания-они простые, сложность заключалась в том что люди не могли залогинится для прохождения.Во всяком случае наш сотрудник, решивший участвовать так и не смог этого сделать и судя по заданиям он бы справился очень быстро :). Так что прошли те кто прошел…
      • +1
        вероятно, ваш сотрудник вешает вам лапшу на уши. да, технические проблемы были, причём у большинства участников. они были решены. я точно так же поначалу не мог залогиниться, но в итоге всё сделал относительно хорошо.
  • 0
    Старый я видимо для олимпиады, простенькие вопросы показались. То то дело вопросы были от HP как то =)
    simadmin.ru
    • 0
      Захватывающая реклама.

      • 0
        Согласен что реклама, но действительно ведь захватывающая =)
        • 0
          Чесслово понравилось, игру прошёл за 20 минут, причём 14 минут выбирал девчонок с кем буду встречаться, никак не мог понять что от меня хотят.
  • +1
    >>> Из-за того, что было много участников не из Москвы

    А вот и зря, что концентрируетесь исключительно на тех, кто живёт рядом с МСК. Очень много отличных Linux-спецов живет в пределах СНГ, но не в Москве. Пока что не составляет труда для них приехать и поучаствовать. :) Жалею, что не знал о вашей олимпиаде. :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка