Привет! Меня зовут Виктор Пантелеев, я менеджер технических проектов в Яндексе. Компьютер — основной инструмент большинства наших сотрудников. А для того, чтобы этот инструмент работал как надо, его следует настроить — быстро для конечного пользователя, в соответствии с его рабочими нуждами и требованиями безопасности.

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

Что у нас было и к чему мы пришли

Давным‑давно настройка ноутбука была прямолинейной, но совсем не гибкой. Мы брали компьютер, вручную устанавливали на него ОС, необходимые драйвера и софт, а потом просто снимали образ системы и раскатывали его на все ноутбуки той же модели. Следовательно, приходилось хранить образы для каждой модели устройства, которое использовали в компании. В общем, долго, тяжеловесно и не слишком эффективно: ведь если что‑то пошло не так, образ нужно делать заново.

Но уже более десяти лет настройка ноутбуков в российских офисах организована через PXE для Windows с использованием MDT и аналогичных инструментов для macOS. Во внутренней системе, которую мы разработали, указываются параметры: операционная система, серийный номер ноутбука, логин сотрудника. Нужный воркфлоу выбирается автоматически. При текущей схеме замена ноутбука, к примеру, в случае поломки занимает 10 минут.

Всё это работает быстро и без сбоев в локальной сети благодаря доступу к корпоративным ресурсам и сервисам. Но в 2021 году Яндекс начал открывать международные офисы, где на начальном этапе не было корпоративной сети и стабильного интернета. 

Как быть в такой ситуации? Здесь настройку ноутбуков приходилось выполнять вручную: устанавливать систему с флешки или через средства удалённого подключения — с настройкой временного VPN и подключением устройства к домену. Способ рабочий, но медленный и небезопасный. На это уходили часы, поэтому сотрудник поддержки написал скрипты на PowerShell для Windows и Bash для Mac, чтобы автоматизировать некоторые рутинные действия.

Вот так выглядела «ручная» наливка в офисах
Вот так выглядела «ручная» наливка в офисах

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

В общем, весь ворох проблем вынудил нас задуматься об автоматизации настройки. Нам нужно было найти новое решение на смену ручной наливки. Масштабируемое, быстрое, учитывающее особенности интернет‑соединения в разных странах, отсутствие корпоративной инфраструктуры и разницу в часовых поясах.

Когда мы задумались о необходимости удалённой настройки, перед нами открылись два пути: воспользоваться готовыми решениями (вроде Apple Business Manager и Autopilot) или разработать собственную систему. Первый вариант мы отмели, потому что продукты Apple и Microsoft — облачные, и к тому же они в конечном счёте перестали работать в России. Оказалось, что выход всё же один — делать что‑то своё. Этим мы и занялись. И вот что у нас получилось.

Как выглядит текущая схема для пользователя

Сейчас процесс построен максимально просто и прямолинейно. Новый сотрудник, выходя на работу, получает корпоративный ноутбук, с которого заходит на внутренний портал, используя двухфакторную аутентификацию. Далее, уже на портале, сотрудник выбирает услугу «Настройка ноутбука», вводит серийный номер своего компьютера и получает персонализированный установочный пакет. Его нужно скачать и запустить. Вот как это выглядит:

Путь, который проходит ноутбук от заявки до готовности к работе
Путь, который проходит ноутбук от заявки до готовности к работе

Схема отражает только верхнеуровневые действия. Все процессы мы постарались сделать максимально простыми, дружелюбными и автоматизированными, что требует минимум действий от сотрудника. Весь процесс занимает каких‑то 15 минут, при этом компьютером можно пользоваться, пока идёт настройка.

Это то, как выглядит настройка со стороны. Но «под капотом» у всего процесса немало интересного.

Как технически организована удалённая настройка

TL;DR: Перед нами стояла задача быстро и при минимальном вовлечении пользователя подготовить компьютер к работе. Для этого мы использовали набор скриптов, запакованный в один самораспаковывающийся архив. Его содержание персонализировано для каждого сотрудника с учётом его рабочих нужд. Пакет доставляется через внутренний портал — пользователю достаточно ввести серийный номер ноутбука, подождать, пока подготовится архив, скачать его и запустить. Настройка пройдёт сама.

Наша задача — удалённо подготовить ноутбук пользователя к работе, предоставить все необходимые доступы и установить всё нужное ПО. Сделать это надо максимально быстро, персонализированно — всё‑таки доступы у всех разные — и так, чтобы от сотрудника требовалось как можно меньше действий.

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

Пакет с пакетами со скриптами

Мы разработали на C# собственный «распаковщик», к которому побитово прикрепляется конфигурационный разделитель и зашифрованный zip‑архив для Windows с необходимыми данными. При запуске такой пакет — где есть только один exe‑файл — находит разделитель, отделяет архив, распаковывает его и запускает скрипт настройки. В пакете нет логина и пароля для подключения к домену. Вместо них — специальный BLOB для offline domain join, который устанавливается на целевой машине. Он позволяет привязать машину к домену в офлайн‑режиме.

Пакеты для macOS — впрочем, как и для Windows, — собирает оркестратор, но здесь все необходимые данные упаковываются в zip‑архив, внутри которого находится статичный.pkg (его запускает пользователь), а также конфигурационный файл с параметрами. Примерно так мы прежде распространяли Tunnelblick, так что решение с отправкой данных для настройки уже было апробировано. Подробнее о наливке «Маков» мы рассказывали в другой статье на Хабре.

Пакет у каждого свой, персонализированный. Он собирается с учётом нужд сотрудника и параметров компьютера: логина пользователя, операционной системы, модели устройства и так далее.

Вам пакет

Как мы убедились, сборка пакета — процесс весьма хитрый технически. Но за ним также стоит немало разных проверок и взаимодействия разных инфраструктурных сервисов. Ведь нужно получить данные об оборудовании, необходимые сертификаты, права доступа и так далее. Всё это надо было сделать максимально простым для конечного пользователя, но при этом без рисков для информационной безопасности.

Схема показывает сервисы, интегрированные в сборку персонализированного пакета
Схема показывает сервисы, интегрированные в сборку персонализированного пакета

Сотруднику же, повторюсь, достаточно ввести серийный номер корпоративного ноутбука на внутреннем портале, чтобы получить пакет настройки.

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

Распаковка

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

  • Пользователю предлагается перезагрузить устройство.

  • После перезагрузки в фоновом режиме автоматически подключается временный VPN. Для этого мы используем механизм автоподключения OpenVPN через службу openvpnserv2, которая появилась в версии 2.6.0. Она нужна только для удобного входа сразу в доменную учётную запись до момента настройки основного VPN пользователя.

  • Во время загрузки системы запускается служба донастройки, которая:

    • устанавливает необходимые сертификаты;

    • загружает менеджер конфигураций; автоматика через WMI‑вызовы (Windows Management Instrumentation — механизм управления настройками Windows) к clientsdk форсирует политики и инициирует установку базового ПО, контролируя ход установки;

    • включает BitLocker также через WMI‑вызовы;

    • инициирует установку через менеджер конфигураций необходимого ПО безопасности (например, антивируса).

  • Разработанная служба отслеживает выполнение всех действий, проверяет коды возврата, обновляет политики Windows и менеджера конфигураций, перезапускает процессы и повторяет действия при ошибках (например, если «уснул» компьютер или отключился VPN).

Все операции продолжаются до полного завершения настройки.

При таком подходе если скорость интернета стабильная, большая часть настроек применяется ещё до входа пользователя в доменную учётную запись, так как управляется службой. А после входа пользователь может начать свою работу, пока в фоне происходит донастройка. Отследить прогресс можно с помощью специального небольшого приложения, которое оказывается в трее. Это приложение взаимодействует со службой через именованные каналы (named pipes, способ взаимодействия процессов в Windows).

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

На macOS запускаемый.pkg устанавливает собственную сборку Tunnelblick и поднимает VPN напрямую через OpenVPN из комплекта. При этом фоновые процессы следят за работой VPN и могут переподключить его в случае разрыва. Следующий важный шаг — установка mdm‑профиля (профиль управления мобильными устройствами, который позволяет применять корпоративные политики на macOS). Её должен подтвердить пользователь. Затем компьютер получает нужные политики, включает шифрование и установку нужного ПО, включая Kerberos SSO Extension.


Где бы ни был сотрудник, очень важно, чтобы он мог быстро получить готовый к работе компьютер. Чтобы этого добиться, мы:

  • отладили процесс автоматического создания пакетов настройки;

  • обеспечили подключение к корпоративному VPN на Windows и macOS;

  • создали сервис, с помощью которого любой сотрудник может получить пакет настройки ноутбука, просто введя его серийный номер.

Хотя поддержка по‑прежнему участвует в процессе (одобряет заявки), нагрузка на неё существенно снизилась. Теперь подготовка ноутбука к работе занимает всего 15 минут. Мы прошли долгий путь от ручной установки образов систем к автоматизированной наливке, удобной для пользователя.

Если у вас остались какие‑то вопросы, пожалуйста, задавайте их в комментариях — я обязательно отвечу. Ну и рассказывайте о своём опыте, если вы тоже занимались удалённой настройкой. Какие решения использовали вы? Будет очень интересно почитать!

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


  1. Nalisnik_Aleksei
    20.01.2026 08:11

    А как же линукс?..


    1. Zakhar85
      20.01.2026 08:11

      Там обычно пользователи в состоянии настроить всё сами =)


    1. vpanteleev Автор
      20.01.2026 08:11

      Удалённая настройка Linux сложнее из‑за многообразия дистрибутивов. У нас есть наработки, продолжаем искать безопасные способы вписать Linux в текущую схему.
      Если у вас есть конкретные кейсы или идеи, буду рад узнать, как вы подходили к задаче.


      1. q2digger
        20.01.2026 08:11

        видел у одних ребят что они раздавали к ноутам пакетик с кастомизированным puppet клиентом, он разворачивался, цеплялся к puppet серверу , где нужный ноут уже был зареган и в зависимости от того в какой группе ноут - приводил его состояние до требуемого


  1. osj
    20.01.2026 08:11

    А проверка самого устройства есть? Войдет на портал с виртуалки или поставит на левый комп.


    1. StoIzSta
      20.01.2026 08:11

      Ну прав же и доступов больше от этого не станет...


      1. osj
        20.01.2026 08:11

        Да, если сотрудник ставит офисные пакеты (типа Office, браузеры, VPN-клиент и т.д.) на виртуалку, то в целом конечно всё равно — новых доступов/учёток в корпоративной сети действительно не прибавится, права останутся теми же, что и на физическом ноуте... про дампы, перехват траффика, обход DLP не будем писать...


    1. vpanteleev Автор
      20.01.2026 08:11

      Проверки есть, одна из очевидных, которую можно делать автоматически (или при подключении к экрану поддержкой) - проверить локально серийный номер и конфигурацию.


  1. BJM
    20.01.2026 08:11

    Хорошо, когда такие процессы автоматизирован.

    А зачем вообще этап ввода серийного номера вручную? Он же программно доступен. И одинаковый для всей платформы исполняемый файл может при запуске сам считать серийник -> заказать персонализированный бандл -> скачать его и запустить...


    1. DenisBronsch
      20.01.2026 08:11

      В том случае, если ноут не китайский и в. DMI Секциях и прочих OEM полях не прописаны нули или просто рандомная каша


  1. igrblkv
    20.01.2026 08:11

    Чистый ноутбук - это с Виндой?

    Тогда не очень понятно, в чём проблема из домена развернуть нужное ПО в зависимости от принадлежности к группам с необходимыми правами?


    1. vpanteleev Автор
      20.01.2026 08:11

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


      1. igrblkv
        20.01.2026 08:11

        Так Винду-же не сам пользователь себе ставит?
        В чём проблема прописать pre-login VPN сразу для всех?

        Обзор от ИИ
        Чтобы подключить Windows 11 к домену через VPN до входа в систему (pre-logon), нужно создать общее VPN-подключение, доступное всем пользователям (включая экран входа), используя PowerShell (командой Add-VpnConnection -AllUserConnection $true), а затем выбрать его и ввести данные доменной учетной записи прямо на экране входа через значок сети. Это требует настройки корпоративного VPN (например, IKEv2 или SSTP) и может потребовать прав администратора, чтобы сделать соединение общим. 


        1. vpanteleev Автор
          20.01.2026 08:11

          У нас как раз бывают такие случаи, в которых пользователь удаленно может сам себе Винду поставить\переставить или получить чистый корпоративный ноут с удаленного хаба или любым другим способом, где нет поддержки и никто там не переустановит pre-login VPN.


          1. igrblkv
            20.01.2026 08:11

            Пользователь с трекера качает понравившуюся сборку от васяна или как это происходит?


            1. ptr128
              20.01.2026 08:11

              Себе то он может что угодно скачать в целях прототипирования. А вот PR с такой сборкой точно не пройдет. И значит в CI/CD тоже не попадет.


              1. igrblkv
                20.01.2026 08:11

                кого?
                пиар?
                а надо?

                PS: Если ноут - обязательно в комплекте CI/CD идёт? Обязательно расскажу нашим топам, приспущу их ближе к земле, так сказать.


                1. ptr128
                  20.01.2026 08:11

                  пиар?а надо?

                  Для пет-проектов - нет. Для любых других - обязательно.

                  Если ноут - обязательно в комплекте CI/CD идёт?

                  Вот что-что, а CI/CD на ноуте ни разу в жизни не встречал. Зачем он там?


                  1. igrblkv
                    20.01.2026 08:11

                    Зачем он там?

                    Вот и мне интересно, зачем он там, Ваш ответ на мой вопрос совершенно не Вам?


                    1. ptr128
                      20.01.2026 08:11

                      На вопрос ответьте. Зачем CI/CD (Bamboo, Jenkins, GitLab, Argo и т.п.) на ноуте?


                      1. igrblkv
                        20.01.2026 08:11

                        Я не знаю, Вы про них написали первый - Вам и отвечать на свой вопрос.


  1. ptr128
    20.01.2026 08:11

    Боюсь, что для установки и конфигурации, например, Visual Studio 2026, потребуется такие гигабайты собирать и по VPN таскать, что не всякий удалённый разработчик дождется завершения этого процесса.


    1. igrblkv
      20.01.2026 08:11

      У наших провайдеров есть и 800 Мбит каналы - неужели не хватит?


      1. ptr128
        20.01.2026 08:11

        Чем это поможет удалённому разработчику, у которого, для примера, только спутниковый интернет? Даже на LTE фактическая скорость может быть по несколько дней в районе 1-2 мегабита. Так что голос ещё проходит, а видео превращается в слайдшоу. Причем это я неоднократно наблюдал не где-то в удалённых районах, а в ЦАО, в Тульской области.

        И да, 1-2 мегабита хватает для работы, хотя это и трудно назвать комфортным. Но всё познаётся в сравнении. В 90-е годы приходилось удалённо работать и на 14400-33600 через модем. По сравнению с этим и 1-2 мегабита выглядят роскошью.


        1. igrblkv
          20.01.2026 08:11

          Чем это поможет удалённому разработчику, у которого, для примера, только спутниковый интернет?

          Разработчиком он как стал без интернета? Теоретически?
          Какие-то странные условия всегда появляются, с которыми и без Яндекса не сладко будет, да и не факт, что Яндекс такому разрабу предложит работу - как трекер будет работать или созвоны с командой? Нет интернета дома - езжай работать в офис.
          Давайте без фантазий на тему "я президент всего мира газпрома, а таксую - для души", ок?


          1. ptr128
            20.01.2026 08:11

            Разработчиком он как стал без интернета?

            Попробуйте прочитать сообщение, на которое отвечаете. Во втором абзаце всё написано. И да, я был в середине 90-х одно время разработчиком на удалёнке с USR Courier.


            1. igrblkv
              20.01.2026 08:11

              Попробуйте прочитать сообщение, на которое отвечаете.

              Попробуйте поставить себя на месте рекрутёра из Яндекса и скажите: Вы возьмёте человека на удалёнку без интернета, если вокруг толпами ходят такие же, но с интернетом?

              я был в середине 90-х одно время разработчиком на удалёнке с USR Courier

              ничего, что 30 лет прошло уже?


              1. ptr128
                20.01.2026 08:11

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

                Так беру же людей даже с Камчатки, где часто только спутниковый интернет доступен. Мне совсем не обязательно проводить планерки с видео. А голос в мегабитный канал помещается вообще без проблем.

                ничего, что 30 лет прошло уже?

                Но я же, да и никто другой в эти годы, по Вашему не мог стать разработчиком, так как интернета не было? )))


                1. igrblkv
                  20.01.2026 08:11

                  Но я же, да и никто другой в эти годы, по Вашему не мог стать разработчиком, так как интернета не было?

                  Ваша логика мне не понятна! Почему Вы текущую ситуацию проецируете на далёкое прошлое и выдаёте за какую-то истину?

                  МС-ДОС не существует? Ведь тогда не было интернета, совсем-совсем!


  1. wequbles
    20.01.2026 08:11

    Что такое OFR и как устроена административная часть процесса подготовки ноутбука? Можно об этом пожалуйста :)


  1. foxsoft2005
    20.01.2026 08:11

    При текущей схеме замена ноутбука, к примеру, в случае поломки занимает 10 минут.

    прям так и 10 минут? замена не предполагает переноса данных и персональных настроек? например, у меня стояли VS Code (+ куча расширений) и VS - перенесутся тоже?


    1. vpanteleev Автор
      20.01.2026 08:11

      Если говорим про офисную настройку, то можно держать набор преднастроенных компьютеров, готовых к быстрой замене. Т.е. в них нужно только залогиниться и персонализировать. Установка разработческого софта или перенос данных со старого компьютера сюда не входит, оно не для всех нужно. Все необходимое из офиса можно быстро доставить через Каталог приложений. Но мы уже учимся разработчикам предустанавливать стандартный набор :)


    1. igrblkv
      20.01.2026 08:11

      С перемещаемыми профилями такое возможно, когда Винда уже установлена какая-то стандартная со всем нужным ПО, а персональные настройки хранятся в домене и локально с автоматической синхронизацией. Вот как-раз при смене ноута придётся весь профиль единоразово загрузить из домена, но время будет зависеть от размера и скорости соединения, конечно.

      Ну и опять-же, те-же исходники могут лежать локально - и тогда их надо отдельно переносить как-то, а могут на сервере и тогда проблем нет (но нужен хороший канал, наверное). Думаю, тут второй случай, всё же.


      1. foxsoft2005
        20.01.2026 08:11

        Вот как-раз при смене ноута придётся весь профиль единоразово загрузить из домена, но время будет зависеть от размера и скорости соединения, конечно.

        И это будет, конечно, не 10 минут.


        1. igrblkv
          20.01.2026 08:11

          Ну да, на 800-мбитном канале это будет пара минут, если там несколько гигов профиль - может и 10 минут.

          Крупная контора с огромной кучей удалёнщиков не может сидеть на 50 или 100 мбитном канале в интернет, ведь не может-же?


    1. q2digger
      20.01.2026 08:11

      VSCode умеет хранить свой профиль и настройки, а также синхронизировать их. Плагины/расширения тоже подтягивает.


      1. foxsoft2005
        20.01.2026 08:11

        Я знаю, но я исходил из самого "сложного" случая, когда все важное хранится локально. А так, скорее всего, в Яндексе у каждого есть Я-Диск (хотя, кто его знает, может и какой-то другой "диск"), в который можно слить все на свете - и файлы и настройки.