• Как в haproxy сделать, чтобы подставлялся для каждого домена свой сертификат?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    frontend domain.com
    bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/domain.com.pem

    На 443 порту у вас все эти сайты терминейтятся, а сертификат вы указываете один.
    конкретно в вашем случае необходимо директиву crt указывать несколько раз:
    bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/domain.com.pem crt  /etc/haproxy/certs/en.domain.com.pem crt  /etc/haproxy/certs/ru.domain.com.pem crt ...

    Или же - проще - указать директорию где лежат правильно приготовленные сертификаты и загрузить их все одно опцией crt /etc/haproxy/certs/
    HAProxy в алфавитном порядке будет подставлять сертификаты. Соответственно если у вас в папке лежит устаревший сертификат для en.domain.com и новый для wildcard.domain.com - загружаться будет en... пока вы его не удалите и не перезагрузите HAProxy. Сертификаты из папки подгружаются при старте HAProxy и при замене сертификатов надо перезагружать софт (особенно актуально, если вы используете загрузку из папки)
    К сожалению, вы не указали версию HAProxy и OpenSSL либы с которой собрана хапрокси.
    В зависимости от версии хапры, опенссл и наличия\отсутствия openssl либы оно может работать по разному.
    Ответ написан
    5 комментариев
  • При открытии услуги на сервере возникла ошибка в работе скрипта open.sh, в чем проблема?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    статус код 126
    tldp.org/LDP/abs/html/exitcodes.html
    Permission problem or command is not an executable
    Предположение1: у пользователя под которым на сервере выполняется программа запускающая скрипт(и пишущая указанный лог) нет доступа к файлу /usr/hosting/python/scripts/open.sh
    Предположение2: скрипту не установлен executable bit
    Это правится chmod +x /usr/hosting/python/scripts/open.sh
    Ответ написан
    Комментировать
  • Как обновить Windows 10 до 1903, если можно освободить 8 гигабайт?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    системные требования 1903 - 32Gb места на диске.
    думаю, вариант единственный который может получиться - чистая установка (и не поверх а сначала все нафиг удалить и диск форматнуть).
    Ну и в дальнейшем все равно будет проблема с местом.
    Ответ написан
    Комментировать
  • Как убрать тире в текстовом документе?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Для того чтобы дать что-то для сравнения к ответу res2001: Сами решайте где сложнее а где проще
    Posh
    (get-content old.txt -raw) -replace "-","" | set-content new.txt

    встраиваем в cmd:
    powershell.exe "(get-content old.txt -raw) -replace '-','' | set-content new.txt"
    Ответ написан
    3 комментария
  • Как загрузить локальный репозиторий на GitHub?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Как правило я локальные репы переношу проще:
    1. создаем пустую репу на гитхостинге
    2. клонируемся с пустой репы
    3. копируем из локальной репы в заклонированную с хостинга все файлы
    4. адд, коммит, пуш
    забываем про старое место хранения локальной репы и продолжаем жить в новой, связанной с хостингом
    Ответ написан
    Комментировать
  • Как переместить файлы по папкам по четности/нечетности имени?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Posh
    $folder='z:\test';$target=("$folder\a","$folder\b"); Get-ChildItem $folder -File | foreach { $p=[int]$_.BaseName % 2; Move-Item $_ $target[$p] }
    Ответ написан
    2 комментария
  • Как установить Yarn в Ubuntu WSL?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Я вот тоже загуглил, вторая строчка выдачи
    https://askubuntu.com/questions/1230172/gpg-cant-c...

    И вообще, не надейтесь что в wsl все будет работать так же как и в нормальном линуксе.
    Хотя бы дождитесь wsl2 (сейчас обещают конец мая начать дистрибьюцию апдейта с ним) - в нем wsl переписан чуть меньше чем полностью
    Ответ написан
  • Как запустить bat-файл с правами администратора ДО входа пользователя в систему?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вы не указали вашу версию Windows и какое именно VPN решение вы используете.

    в Windows 10, но по сообщениям такое же поведение было доступно и в предыдущих версиях Windows, VPN соединение возможно сделать доступным на экране входа.
    В случае VPN соединений созданных средствами Windows их надо создавать с флагом "доступны для всех пользователей".
    В Windows 10 это возможно только средствами powershell коммандлета add-vpnconnection( или set-vpnconnection если соединение уже создано.). В предыдущих версиях OS такой флаг был доступен в интерфейсе создания VPN соединения.
    После создания такого соединения и перезагрузки на экране логина появится значок двойного монитора - это и есть VPN соединение.
    Я сейчас протестировал следующую ситуацию:
    - ПК введен в домен но находится удаленно и до установки VPN соединения не имеет доступа к домену (по вашему описанию у вас так же)
    - Доменный пользователь с урезанными правами, административные права есть у локального пользователя (мне доступны оба набора кредов, в любом случае пользователь с административными правами на ПК понадобится и вам)
    - powershell (версии 7.0, если быть более точным. Скорее всего это не важно - справится и имеющийся в системе Posh) запущен под локальным пользователем с правами админа, но на машину залогинен пользователь без прав (доменный). Только при условии запуска под локальным админом доступна возможность создать соединение для всех пользователей. Может быть, можно и просто под админом залогиниться для осуществления этой единичной операции
    - Выполнен Posh скрипт создания VPN подключения (содержащий флаг -AllUsersConnection ). Если ни разу не писали скрипты - смотрите примеры
    - Перезагрузка
    - На экране логина появляется значок двойного монитора при нажатии на который предлагается ввести логин-пароль пользователя для этого VPN

    Если вы используете альтернативный клиент для VPN (OpenVPN и т.п) задача подъема такого ВНП лежит уже на самом клиенте - Windows такое не будет обрабатывать

    UPD: Я ответил не на вопрос, а предложил решение проблемы которую вы описали в тексте. Дополнительно совсем забыл написать что маршрут в Windows можно прописывать автоматически при поднятии соединения c помощью коммандлета Add-VpnConnectionRoute

    UPD2: Ответ на вопрос в заголовке: Для запуска батника с правами администратора используйте TaskScheduler задачу с правами LocalSystem или NetworkSystem. Почитать что они такое и чем отличаются
    Ответ написан
    Комментировать
  • WSL в Windows 10 кто-нибудь использует?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Если хотите попробовать - не ставьте сейчас.
    Дождитесь wsl2 (вроде бы с майскими обновлениями приедет).
    Посоветовать использовать или нет - не могу, не бэкендер )
    Ответ написан
    Комментировать
  • Самый простой и быстрый способ отправить webhook из cmd?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    в 90% более-менее современных версиях Windows есть powershell
    в скрипте пишете
    powershell.exe "invoke-webrequest 'https://url' - usebasicparsing"
    Для указания хидеров или данных которые будете передавать - читайте хелп по коммандлету
    Сразу предупреждаю (вы не указали версию ОС) :
    1. при первом старте может появиться окно IE с инициализацией профиля (в старых версиях posh)
    2. https может не сработать если не укажете конкретную реализацию TLS которую использовать. Или вообще не сработать если, например, вас .net 3.5 в системе а целевой сайт использует минимальную версию tls 1.2

    Встроенным методом - только powershell. Но вы имеете шанс столкнуться с чудесами, я вас предупредил.
    Альтернативно - просто скачайте curl
    Ответ написан
    4 комментария
  • Сетевые утилиты в подсистеме Linux для windows 10?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    дождитесь WSL2 и попробуйте еще раз.
    Пишут что там глобально все переделали
    Ответ написан
    Комментировать
  • Почему может тормозить загрузка статичных файлов на сайте для некоторых клиентов из РФ?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Не забывайте про сетевую машрутизацию(неоптимальные маршруты) и ограниченную пропускную способность в условиях усиленного использования каналов интернета на самоизоляции.
    Маршрутизация.
    Вы используете статическую точку входа в AWS которая приземляется в конкретной физической точке сети. И которая, кстати, находится точно не в России.
    Проблема наблюдается у конкретных клиентов -> с наибольшей вероятностью маршрут от клиента до вашего сервера является проблемой
    Возможные решения
    1.CDN (и да, и AWS и CloudFlare уже достаточно давно рекомендует динамику тоже через CDN гнать, гайдов куча) - трафик будет отдаваться от ближайшей точки доступной клиенту (опять же в зависимости от настроек маршрутизации конкретного провайдера до сервиса CDN - все равно могут возникать проблемы)
    2.AWS Global Accelerator - по сути примерно то же самое для вас. Трафик смаршрутизируется в ближайшую точку присутствия GA к клиенту и пойдет кратчайшим путём внутри AWS к вашему серверу. Но точек входа еще в августе в РФ не было. Сейчас не знаю.
    3.Поднять точку входа на территории РФ и заниматься передачей трафика на ваш сервис в AWS в туннеле (такое решение например у нас на проекте дало наибольшее ускорение, ни GA ни CloudFront не сравнимы, поскольку там мы вообще никак не контролируем маршруты трафика в сторону серверов AWS)

    Вам из вышеописанного может помочь или CDN с точками присутствия в РФ или своя точка присутствия в на серверах РФ в случае если трафик от клиентов идет по неоптимальному маршруту.

    Перегруженные сети
    Если же проблема в перегруженных сетях (наиболее вероятная сейчас причина) - то вам ничего не поможет.
    Ответ написан
    Комментировать
  • Служба удаленных рабочих столов установлена, но почему RDP разрешает работать только двум пользователям?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Наиболее вероятны 3 вещи:
    1. у вас не работает служба лицензирования RDS
    Напомню, что, как правило, "халявные" лицензии RDS действуют 180 дней а потом нужно как то сервер активировать
    2. в настройках конфигурации RDS не прописан или прописан неверный сервер лицензирования
    В упор не помню как это делается, но помню что сталкивался с этим при переезде сервера лицензирования
    3. Вы что-то недонастроили. Читайте логи.
    Кстати логи полезно почитать и в предыдущих пунктах.
    Давно не занимался этим, но, по моему, Владимир Коротенко слегка ошибается: в случае RDS лицензий он просто не пускает если они истекли или отсутствуют.
    Ответ написан
  • Как сделать перенаправление в haproxy?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Общий алгоритм такой:
    1. пишете разные бэкенды для каждой версии эксчейнжа - бэкенды смотрят на свою версию
    2. пишете acl по нужным вам заголовкам
    3. пишете use_backend be_newservers if acl_newservers - на новые серверы
    default_backend old_servers

    Всегда ориентируйтесь на конфигурацию вашей версии HAProxy
    https://cbonte.github.io/haproxy-dconv/
    Ответ написан
    Комментировать
  • Можно ли переключать моно/стерео звук в Windows 10 с помощью командной строки?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Ответ написан
    Комментировать
  • Не могу подключиться по SSH к AWS. Что я делаю не так?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Давайте уточним что понятно из вашего вопроса:
    1. Вы пытаетесь подключиться к windows (поскольку при подключении к Linux нет этапа "расшировка пароля")
    2. Вы пытаетесь подключиться по SSH (или все же RDP?)
    3. Вам не удается расшифровать пароль инстанса "на лету", поскольку у вас зашифрован ключ

    Попробуйте следующее:
    1. ваш приватный ключ putty сконвертировать в Openssh без пароля
    2. удостовериться, что получившийся файл (открывается любым текстовым редактором) удовлетворяет условиям
    Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----""
    То есть
    • есть эти фразы
    • отсутствует слово encrypted

    3. При расшифровке выберите этот файл.
    Ответ написан
    Комментировать
  • Какие права требуется настроить для копирования папок другого пользователя скриптом по сети?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    я бы порекомендовал подойти к проблеме с другой стороны.
    1. настроить общую сетевую папку чтобы пользователи(domain users) могли на ней создавать папки без наследования а права на вложенные папки были полные у creator owner и у домен админа ( и вас\вашей группы, если вы в домен админы не входите)
    2. написать скрипт(а лучше скрипты-однострочники - по одному на папку пользователя) используя robocopy на зеркалирование необходимых папок в эту общую папку из под учетной записи пользователя. Robocopy есть в составе win10\win7 а для windows xp - https://www.microsoft.com/en-us/download/details.a...
    Cмотрим ключи /mir /ZB - для мониторинга изменений можно использовать ключ /MOT:m
    ключ /TBD тоже, скорее всего, понадобится - у вас папка сетевая
    так же существует возможность более тонкой настройки - изучайте доступные ключи.
    на WinXP, возмжно, набор ключей будет отличаться, но основной функционал будет таким же
    3. Настроить запуск robocopy при входе пользователя в систему с рестартом задачи раз в, скажем, час (или реже, если включен режим мониторинга изменений)
    Идеально - по задаче на папку, но можно и один скрипт на все запустить, все равно колхозите
    Робокопи будет оставаться висеть в памяти и заниматься синхронизацией. На 6Тб файловых серверах на данный момент он отлично справляется с подобной синхронизацией с минимальным потреблением памяти. Рестарт задачи нужен на случай проблем.

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

    Совет: забудьте про cmd
    Совет на будущее: не колхозьте. У вас есть AD а значит и доступны сетевые папки пользовательских файлов с branch cache если это необходимо в случае плохого интернета между файловым сервером и пользователем
    Ответ написан
    Комментировать
  • Как переписать файл под Windows?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    вообще в вашем коде присутствуют чисто линуксовые только две команды баша
    set -x что есть по сути дебаг режим - выводит команды которые баш выполняет
    set -e стоп скрипта если команду выполнить нельзя
    заменять их аналогами или просто выкинуть - решать вам.

    Остальное под виндой должно работать, если вы поставите docker desktop для windows

    поправить нужно будет:
    - переписать пути в командах docker cp на виндовые
    - возмжно нужно добавить шареные диски в docker desktop чтобы папки из которых копируете файлы в контейнер были доступны контейнеру (а может быть и не надо, я с docker cp практически не работал)

    Альтернатива:
    ставим git с git-bash
    и запускаем файл без изменений в этой оболочке.

    или включаем превью режим в винде и ставим WSL2, включаем в настройках докера использование WSL и работаем через подсистему Windows для Linux
    и точно так же без изменений файл используете
    Ответ написан
  • Как блокировать установку Viber на Windows 10?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    https://remontka.pro/block-programs-run-windows/
    ссылка так себе, но вроде бы адекватно написано

    еще (и это в указанной статье упоминается) можно настроить software restriction policies через групповые политики
    Ответ написан
    Комментировать
  • Можно ли сделать Load Balancing in AWS если инстанс имеет только private IP?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вообще с точки зрения безопасности крайне рекомендуется разделять сети, и держать приложения и их данные в подсетях к которым нет прямого доступа из интернета
    Например(тоже относительно рандомная картинка) SrHTd.png
    поэтому я бы дополнил ответ Иван Шумов так :
    При использовании AWS ELB,ALB или любого другого балансировщика внешней нагрузки (Haproxy,Nginx,etc..) лучше всего ваш VPC организовать так, чтобы все балансируемые сервера находились в приватных подсетях, а в публичной находился только балансировщик, NAT и VPN\Bastion
    В базовом случае(использование default VPC) можно ограничить прямой доступ к серверам, как и посоветовал Иван Шумов
    Ответ написан