Котаны, такая вот политика в конторе для тех кто меняет специализацию — найти замену. Собственно для нового админа хостинга (линукс, plesk, openvz) решено сделать что-то типа задания.. в тестовом окружении.
типа настроить овз, сконфигурить таблесы и етс.

Кто-нить практиковал подобное для оценки навыков людей? Поделитесь идеями, чем можно озадачить еще для проверки? Небольшой скриптинг на баше?

Tagged with →  

13 Responses to поиск админа : линукс, plesk, openvz

  1. Gibno:

    Ты и есть тот самый «старый» админ? Сделай два-три задания из реальной жизни, какие проблемы/задачки приходится решать на этой конкретной должности. А-ля «упал плеск — выяснить причину и починить», предварительно подготовив «сломанный» сервис. Но без искусственных усложнений, real-life сценарий.

  2. AynMega:

    Да, я надоеллся делать «все». plesk еще ниразу не падал при мне.. 🙂 тьфу тьфу.

    Увы. Человек на вырост будет, скорее всего в процессе работы будет все. Так сказать нужно оценить потенциал.

    по овз тоже нужно, т.к. будет еще поддержка инфраструктуры.

  3. Gibno:

    ты сейчас делаешь «всё» и не можешь придумать, как оценить потенциал соискателя? Т.е. ты не деалаешь ничего? Тогда спрашивай про модель OSI, это всегда работает!

  4. AynMega:

    вопрос был больше про опыт подобного, а то вон админу бд не особо было время на разговоры. Она дала девушке оракловые тесты и все 😀 И получилось вполне предсказуемо.

    Выглядело это примерно, так:
    1) приходит девушка, разговаривает с техническим директором.
    2) после этого её сажают за тесты, я бы от такого точно ах**л.
    3) мы вам перезвоним.

    В итоге поняли что это bad idea. И след собеседование уже было оракл дизайнер е? а анси скл?

    через месяц её посадили за тесты и она чуть лучше первой сдала их (но все равно не сдала для pass).

    У кодеров почти везде просят пришлите 200 строк кода или тестовое задание.

    Поидее я админ хостинга и все 🙂 А то что в результате экономии (девочку взяли студентку, которая линукс не умеет) я теперь еще и билинг подсиживаю (делаю небольшие типовые операции регламентные). А то, что я еще ядром сети занимаюсь это тоже пережиток оптимизации.

  5. Gibno:

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

  6. LooRain:

    по-моему, надо брать человека вообще без особой оглядки. Потенциал сходу не просвечивается весь, но просвечивается целеустремленность. Когда я устраивался админить в маленький хостинг, у меня поинтересовались, чем я раньше занимался: немного атсорсинг, админинг комп-клуба. Использование никсов, как домашняя ОС (естественно без нормальных админских знаний практически). Ну и взяли. В первые недели работы и освоился, потому что была цель научиться и работать. Примерно так же было и с первыми программерскими позициями, где тоже на местах догонял, зато потом уже стал в состоянии и тестовое задание написать и опыт какой-никакой есть.

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

  7. LooRain:

    естественно, если речь действительно идет о джуниоре. В случае, когда нужен сразу чувак, которые сходу будет всё делать, то надо брать опытного.

  8. AynMega:

    без особой оглядки я не проведу отпуск свой спокойно.) Я работал до того как пришел в офис на аутсорсе в этой же конторе. Чувак уволился, пришел отдал пароли. Другой парень (который обычно его заменял на время отпуска) показал как базовые операции в специализированом софте делать (завести абоненту хостинг и т.д.). Ну и начал я разбирать все по мере поступления проблем. Поэтому нужен тот, кто имеет желание и базовые знания траблшутинга.

    Без оглядки меня заебут на тему базы знаний (она есть, но для типовых проблем, но иногда бывает и интересное). Я не хочу учить человека примитивам (и так делов дохрена).

  9. DSLPhone:

    Вот таким я как-то проверял. С ответами которые мне очень понравились.

    Вопрос 1.
    Расскажите, пожалуйста, о типах packet filters, о разнице между stateful и
    stateless поведением,
    о Packet filters в различных системах.

    Packet filtering бывает двух типов — stateful и stateless
    Stateless filtering — самый простой тип фильтрования, не отслеживает
    пакеты, просто проверяет на соответствие правилам и либо пропускает
    его, либо нет
    Stateful filtering — уже более умное решение, отслеживает пакеты и
    дает им «метки»(NEW, ESTABILISHED, etc), по которым можно производить
    какие-то действия.
    Есть еще application filtering(чаще говорят deep packet inspection),
    работает на layer 7, позволяет отсеивать пакеты по определенным данным
    внутри него. Является самым ресурсоемким, но очень эффективным в
    некоторых случаях, например, если нужно запретить торрент-трафик в
    сети или заблокировать одну страничку на определенном сайте.
    В linux есть netfilter, и интерфейс к нему — iptables.
    Во freebsd есть ipfw.

    Вопрос 2.

    Способ организации packet filter rulesets.
    Дана машина с одним внешним интерфейсом. Составьте группы правил (в любой
    форме, можно в свободной) для следующих
    условий: открытые сервисы: ftp, ssh, smtp, named, http. ftp должен работать
    как в passive, так и active режиме,
    исходящие соединения разрешены.

    Если по умолчанию входящие пакеты не проходят, то:
    iptables -A INPUT -p tcp —dport 80 -j ACCEPT //http
    iptables -A INPUT -p tcp —dport 25 -j ACCEPT //smtp
    iptables -A INPUT -p tcp —dport 22 -j ACCEPT //ssh
    iptables -A INPUT -p udp —dport 53 -j ACCEPT //dns udp
    iptables -A INPUT -p tcp —dport 53 -j ACCEPT //dns tcp
    А для ftp есть два варианта:
    1) Перенастроить сервер так, чтобы в активном режиме использовались
    определенные порты(скажем, 30000-30100) и сделать
    iptables -A INPUT -p tcp —dport 30000:30100 -j ACCEPT
    2) Использовать модуль nf_conntrack_ftp
    modprobe nf_conntrack_ftp
    iptables -I INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT
    nf_conntrack_ftp будет отслеживать соединения активного режима и
    присваивать им состояние RELATED.

    Вопрос 3.
    а) Репликация MySQL.
    На двух серверах настроена репликация БД. Как убедиться, что с репликацией
    всё в порядке?
    Что делать, если репликация «сломалась»?
    б) Есть база db. В ней 3 таблицы staff(id1, name), phone(id2, number),
    office(id3, room).
    Как составить 1 запрос, который выводит сотрудников, которые находятся в
    комнате 13
    и их телефонный номер начинается на 13 в формате «имя, телефон, комната».

    Показать часть цитаты

    а) Нужно выполнить запрос show slave status и смотреть значения
    Slave_IO_Running и Slave_SQL_Running, оба должны быть YES. Если
    репликация сломалась, нужно смотреть на последнюю ошибку и действовать
    по ситуации.

    б) SELECT staff.name, phone.number, office.room
    FROM staff
    JOIN phone ON phone.id2 = staff.id1
    JOIN office ON office.id3 = staff.id1
    WHERE office.room = 13 AND phone.number LIKE ‘13%’

    Вопрос 4.
    В приложении приведена tcp сессия. Объясните особенность данной сессии.
    Что она означает?

    Вопрос 5.
    На продакшен сервере после нештатной перезагрузки не проходит
    проверка дисков и
    вы видите сообщение bad superblock. Ваши действия?

    Сначала нужно как-то загрузить сервер. Это может быть загрузка по PXE,
    может быть livecd или что-то еще. Или если система на другом диске и
    нужно восстановить не системный диск, тогда просто загружаем и
    убеждаемся, что испорченный диск не примонтирован.
    Т.к. вы не указали, какая это файловая система, то буду считать, что это ext3/4
    ext3/4 сохраняет много суперблоков на диске, и когда умирает один, в
    принципе, не особо страшно.
    dumpe2fs /dev/sda1 | grep superblock
    находим суперблоки, затем
    fsck -b xxxxxx /dev/sda1
    где вместо xxxxxx используем адрес какого-нибудь суперблока из
    предыдущей команды.
    Пытаемся примонтировать. Все должно быть хорошо. Если нет, можно
    попробовать взять другой суперблок.

    Вопрос 6.

    Приведите небольшой фрагмент вашего кода на Bash с описанием его работы?

    Вот небольшой скрипт, который я писал для киканья пользователей
    openvpn, если у них закончился трафик, время, или что-то еще.
    #!/bin/bash
    source /etc/openvpn/srv/scripts/config.sh

    LOGINS=$(cat /etc/openvpn/srv/logs/status.log | tail -n +4 | grep -B
    99 ‘ROUTING TABLE’ | head -n -1 | awk -F, ‘{print $1’} | tr ‘n’ ‘,’)

    if [ «$LOGINS»!= «» ]
    then
    RESULT=$(curl -s -F servname=»$SERVNAME» -F client=»$LOGINS» «$KICKURL»)
    if [ «$RESULT»!= «» ]
    then
    empty -i /tmp/openvpntelnet -o /tmp/openvpnoutput -p
    /tmp/openvpntelnet.pid -f telnet 127.0.0.1 9999
    sleep 1

    for i in $RESULT
    do
    echo ‘kill ‘$i > /tmp/openvpntelnet
    sleep 1
    done

    sleep 1
    echo ‘quit’ > /tmp/openvpntelnet

    fi

    fi

    Скрипт сначала подключает конфиг, затем получает список подключенных
    пользователей, далее если есть кто подключенный, пересылает этот
    список на сервер, если есть какой-то ответ(список пользователей,
    которых нужно кикнуть), то подключаемся к управляющему интерфейсу
    openvpn через telnet и выполняем комманду kill и имя пользователя для
    каждого пользователя, за
    тем посылаем quit, на этом работа завершается.

    Вопрос 7
    Вносили ли вы изменения в существующий код чужих программ? Приведите,
    пожалуйста, пример (в виде diff).

    Вносил в тот же openvpn, изменение по сути очень простое, нужно было
    сделать так, чтобы сначала исполнялся внешний скрипт, а затем уже
    начало аккаунтинга на radius сервере, который подключен через плагин.
    diff приложил.

    Вопрос 8.

    Какими способами можно увеличить производительность web приложений?
    Можно ли обслуживать с помощью apache 1000-2000 одновременных коннектов?
    Каким образом можно снизить нагрузку на сервер в этом случае?

    Во-первых, использовать кэширование как на уровне приложения, так и на
    уровне сервера. В некоторых случаях бывает целесообразно ставить перед
    веб-сервером с приложением кэширующий сервер, вроде varnish. Но в
    большинстве случаев кэширование средствами nginx сделает свое дело.
    Если приложение на php, то есть смысл использовать акселлераторы вроде
    apc, eaccelerator, xcache. Мой выбор — apc.

    Апачу будет сложно обслуживать такое множество соединений, скорее
    всего, упрется в память. Для статики при такой нагрузке обязательно
    нужно ставить какой-нибудь легковестный сервер, а апачу оставить
    только динамику, или, если это возможно, перекинуть и ее на nginx.

    Вопрос 9.

    Виртуализация.
    а) Какие программные реализации использовали в работе?
    б) В чем принципиальное различие между OpenVZ и KVM?
    в) Какие тонкие настройки, модификации осуществляли при работе с системами
    виртуализации для разграничения использования дисковой подсистемы?

    а) Использовал как администратор kvm(qemu) для домашних целей
    б) Самое первое и принципиальное, openvz — это что-то похожее на
    большой chroot. Средство псевдовиртуализации. Вам дают окружение, а
    менять его, модифицировать или же загружать свои модули в ядро вы не
    можете. И еще ядро обычно старое. Ресурсы делятся достаточно криво и,
    зачастую, неравномерно. Виртуальная память считается, своп сделать
    нельзя.
    А kvm — полноценное средство виртуализации, можно грузить свое ядро,
    переставлять загрузчик, полная свобода выбора.
    в) К сожалению, никаких. Но, в принципе, знаю, что нужно крутить в io
    schedulers, какие они есть вообще и что лучше делать.

    Вопрос 10.

    Какие системы контроля версий ПО вы использовали в работе? Какие инструменты
    для организации коллективной работы использовали?

    Использовал только git для разработки немного, ну а для чекаута все использовал.

    Спасибо за внимание!

  10. DSLPhone:

    Вопрос на засыпку: угадайте какого возраста отвечающий?
    Спойлер:
    17

  11. TsiWin:

    Вопросов по винде не хватает и про пайку кондеров на материнке.

  12. DSLPhone:

    Это нормальные вопросы для администратора web хостинга, а не аникея. Все вопросы свзаны с боевыми задачами. Если Вы считаете, что они слишком разноспециализированы — Вы видимо никогда не администрировали хостинг.
    PS Взяли мы в итоге человека, который идеально ответил на эти вопросы и 2-й год не жалею.

  13. AynMega:

    спасибо за вопросы. взял парочку себе в запас.

Добавить комментарий