• Как запускать несколько stage одновременно?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Есть два варианта развития событий: вы распределяете последовательность выполнения по стейжам или рисуете свой граф выполнения
    В первом случае последовательность стейжей важна - джобы параллелятся в рамках одного стейжа и следующий стейж не запустится пока не выполнятся все джобы предыдущего.
    .pre всегда запускается перед пользовательскими стейжами,
    Во втором - вы можете запланировать свой граф выполнения с помощью needs
    Я не нашел в документации, что .pre все еще будет выполняться первой, если ее джобы участвуют в вашем собственном графе, так что возможно это решение. В случае использования needs (и gitlab 14.2+ или gitlab.com 14.1) можно вообще не прописывать стейжи. В случае gitlab <=14.0 стейжи все еще нужны, потому что needs не будет работать с джобами одного стейжа.
    Внимательно прочитайте требования к needs https://docs.gitlab.com/ee/ci/yaml/#requirements-a... соответственно вашей версии gitlab
    Ответ написан
  • Как запустить gitlab-runner?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    внимательно прочитайте https://docs.gitlab.com/runner/executors/docker_ma...
    поставили форк docker-machine?
    Ответ написан
  • Как организовать регулярный бэкап определенных папок на сетевой диск?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    я бы рекомендовал
    1. https://docs.syncthing.net/
    2. owncloud \ nextcloud как решение для NAS и клиент на машинах
    менее удобное но все же
    3. windows backup, если у вас win. Cерьезно. Его хоть и мутировали во что-то странное в 10-ке но он все еще позволяет делать великие вещи с бэкапами пользовательских файлов
    4. скрипты на rsync\robocopy (в зависимости от OS) - но версионность там самому делать или на файловой системе NAS-а
    Ответ написан
  • Как сделать итерацию по серверам в Terraform?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Vitaly Karasik
    Евгений, я хочу это сделать Terraform

    Terraform - инструмент для провижининга инфраструктуры. tf управляет ресурсами инфраструктуры и хранит их состояние в стейте для того чтобы просчитывать изменения при изменении параметров или кода
    Пользователи на ваших серверах - это уже не инфраструктура, они никак не фигурируют (и не могут без костылей) в стейте tf, а значит именно управлять ими tf не будет.
    Вы, конечно, можете использовать костыль в виде null resource запускающего просто sh\posh\cmd скрипт, который откуда то возьмет данные для подключения к вашим серверам, данные о пользователях которых надо создать
    Терраформ этим ресурсом по сути не управляет, он только выполнит\перевыполнит(по триггерам на состояние других ресурсов в tf) ваш скрипт. О небезопасности хранения учетных данных таким образом думаю не стоит напоминать.
    Аналогично вместо скрипта может быть ансибл\шеф (возможно через провайдер) или что-то другое так же запускаемое терраформом (но стейт созданных "ресурсов"=пользователей хранить будет опять же не терраформ, а значит об управлении речь не идет)
    Не надо плоскогубцами забивать гвозди. Да, в некоторых случаях это возможно сделать, но это создает больше проблем чем решает
    Кстати, намек как плоскогубцами забить гвоздь содержится в описании null_resource - ссылка выше.
    Ответ написан
  • Хочу научиться пользоваться командной строкой Windows? Какие материалы посоветуете?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    cmd - наихудший способ "войти в it"
    используйте powershell
    Ответ написан
  • Как восстановить Instance EC2 AWS?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Если вы хотите восстановить данные с этого инстанса - можно отключить volume и подключить его к новому инстансу, к которому вы имеете доступ
    Если это системный диск - сделайте снапшот и из снапшота создайте volume

    Восстановить доступ к вашему инстансу скорее всего не удастся, если вы не записали никуда пароль, который расшифровали тогда, когда имели доступ
    Ответ написан
  • Почему bat выводит в wmic неправильный месяц?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    win32_utctime
    посмотри сколько сейчас времени по UTC и у вас (насколько я понимаю вы живете по московскому времени
    алсо, для дебага - выведите себе результат
    wmic path win32_utctime get /format:list и внимательно просмотрите.
    Сейчас вторая неделя месяца и именно эта строка встречается последней (а не сам month) - поэтому ваши фильтры выцепляют именно ее.

    А вообще закопайте уже стюардессу и пишите на powershell, если вы, конечно, не занимаетесь арехологией. Пометка: используйте Windows Powershell а не последний доступный Posh 7. Работа с wmi есть только в windows powershell, из более новых версий она выпилена в угоду кросплатформенности
    Ответ написан
  • Как реализовать общий календарь компании в MS Outlook?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Какая то такая логика должна сработать по идее:
    1.Создать пользователя, у которого включено в настройках календаря "всегда принимать приглашения". Еще там что-то было с busy статусом, но я давно exchange в руках не держал.
    2. Создать транспортное правило - если идет отсылка события календаря кому бы то ни было - она копируется к этому пользователю (я напомню что комнаты - это по сути такие же контакты, можно и комнату держать, если пункт 1. сработает)
    3. Возможная проблема: я не помню, проходит ли через транспортное правило отсылка приглашения самому себе (создание события на одного человека. Например типа отпуск и подобные вещи) - возможно вы не сможете такое отловить.

    Но в общем то и целом, для любой организации хорошо в данном случае работает только административная составляющая, приказ: 'все митинги создавать в календаре "Все компанейские митинги"'
    Ответ написан
  • Стоит ли класть домашний NAS на виртуалку?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    зависит от выбранного решения NAS
    посмотрите openmediavault - он хорош, если сможете рядом воткнуть ivideon server, unifi контроллер то получите очень удобное решение.

    Недавно решал похожую задачу в связке proxmox + openmediavault (мне виртуализация была важнее и я в итоге выкинул openmediavault :D и сделал zfs, nfs, smb на хосте,а dlna,торренты - отдельно на виртуалке через сетевую шару с хоста работают)
    Ответ написан
  • Как открыть "чистую" консоль powershell?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    не совсем "remove" но позволяет так же добиться чистого экрана при старте posh
    1.
    запускаем powershell и смотрим значение переменной $PROFILE - выдаст где хранится автозагружаемый профиль Posh для вашего пользователя
    2.
    • если файл есть - дописываем туда последней строкой Clear-Host
    • если его нет - создаем его по нужному пути и пишем туда то же самое

    Сохраняем
    3. теперь при запуске powershell под вашей учетной записью будет всегда сначала выполняться этот набор команд.
    Кстати туда можно записать много полезных алиасов, прописывать нужные пути (которые требуются только в среде powershell) - не переопределяя их на уровне системы, разные перемененные окружения и тд и тп, благо это обычный powershell скрипт.
    В общем аналог bashrc
    Ответ написан
  • Как узнать, что занимает localhost:3050?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    В тегах указана windows.
    1 netstat -nba
    И ищем свой порт, кто занимает. Запускать командную строку, конечно, под администратором
    1.a
    Get-NetTCPConnection -LocalPort 3050 | Select LocalAddress, RemoteAddress, RemotePort, @{Label='ProcessName';Expression={(Get-Process -id $_.OwningProcess).ProcessName}}

    То же самое в powershell и с фильтрацией по нужному локальному порту. Тоже под админом.

    2. Есть вообще вариант, что ошибка совсем не про это, а про то, что порт не удается открыть, из за того, что вы ваш скрипт не под админом запускаете

    3. Вы используете windows и при этом скрипты .sh
    Возможно, вы нам чего то не договариваете: например, какой интерпретатор используете для запуска скриптов .sh под windows и не запускаете ли вы их из под wsl
    Ответ написан
  • Как осуществить поиск и копирование блока строк по ключевому слову в *.txt?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Powershell сейчас не под рукой но выглядеть скрипт должен как то так:
    $file = 'ваш файл'
    $newfile = 'другой файл'
    $keyword = 'parametr'
    (get-content $file -raw) -split "\n\n" | foreach {
        $firststring = $_ -split '\n' | select -first 1
        if $firststring -like $keyword { add-content $newfile $_}
    }

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

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Powershell
    Set-Location c:/temp
    $groups = (Get-ChildItem A*).Name | group-object -property {$_.Substring(30,$_.Length -37)} -ashashtable -asstring
    $groups.Keys | foreach-object { 
        $folder=$_; $groups[$folder] | foreach-object {
                      new-item -itemtype file -path "$folder/$_" -force
                      move-item -path $_ -destination "$folder/$_" -force
         }
    }

    Если нужен однострочник
    cd c:/temp;$g=(dir A*).Name | group {$_.Substring(30,$_.Length -37)} -AHT -asstring;$g.keys | %{$f=$_;$g[$f] | %{ni -type file -path $f/$_ -force; mv $_ $f/$_ -force}}

    Однострочник можно, взяв в одинарные кавычки, передать параметром в powershell.exe, если вам надо было бы использовать этот функционал в уже написанных cmd скриптах.
    Но вообще не надо откапывать стюардессуиспользовать cmd для скриптов. Используйте powershell \ python
    Ответ написан
  • Как действовать, если SSD завис?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    попробуйте сделать с него снапшот а затем создать из снапшота новый вольюм.
    Если проблема именно в присоединении (а не в самом ebs томе) то с большой вероятностью данные вы свои получите обратно.
    p.s. не забывайте про бэкапы данных, хранящиеся вне рабочих инстансов.
    Ответ написан
  • Есть ли утилита для просмотра списка файлов в ZIP на S3 бакете?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    пример:
    https://stackoverflow.com/questions/41789176/how-t...
    Если кратко алгоритм:
    1. выясняем размер размер zip файла
    2. читаем несколько байт из zip файла по известному адресу для того чтобы выяснить расположение и размер листинга файлов в zip файле
    3. читаем несколько байт из zip файла с листингом файлов
    4. создаем свой пустой zip файл вставляя туда полученные байты по нужным адресам.
    функциями работы с zip выдаем список файлов

    P.S. скрипт писал не я, но пару лет назад тоже решал подобную задачу.
    "Спасение" тут - это чтение части файла, которое позволяет S3 и знание формата zip
    В комментариях к ответу на SO написано про ограничения в размере zip в 4Гб - я не сталкивался и задачу по обходу проблемы не решал.
    Ответ написан
  • Какие Best practices по применению private zones в сервисе AWS Route53?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    1.
    не совсем ясно как организована ваша инфраструктура
    Судя по тому, что у вас есть вариант "назначить публичные IP и рулить публичными ДНС именами" - все располагается в default vpc и это не best practice.
    Рекомендуется размещать инстансы, к которым не нужен доступ из интернета (те, которые хостят ваши сервисы, обслуживающие только ваши другие сервисы в том же VPC) в приватных подсетях VPC.
    Вообще рекомендуется ВСЕ сервисы размещать в приватных подсетях а доступ из интернета к ним организовывать, используя прокси. AWS предоставляет ALB(ELB\NLB в зависимости от ваших потребностей), или же вы можете поднять свой прокси (HAProxy, NGINX или другие) на ec2 инстансе, расположенном в публичной подсети
    2.
    Route53 private zone
    Если ваши сервисы находятся в приватной подсети и вам необходимо работать с ними по DNS именам: можно регистрировать инстансы в Route53 private zone или же поднять свой приватный DNS на любом ПО которое вы умеете(в таком случае необходима перенастройка параметров VPC в котором вы работаете, чтобы все сервисы могли работать с вашим DNS)
    Так же можно использовать service discovery ПО, которое обеспечит разрешение имен DNS (например consul, но это потребует поднятия отдельного сервиса на ec2\ecs для обслуживания service discovery), или использовать service discovery предлагаемый AWS: Cloud Map - он использует route53 private zone для регистрации сервисов и разрешения имен.
    3.
    Сертификаты
    Для сервисов, которые доступны публично - ничего сложного: используйте Certificate Manager для выпуска сертификатов на ALB или же LetsEncrypt если вы используете собственное ПО для прокси
    Для сервисов, находящихся в приватных подсетях и недоступных публично:
    - Можно забить и работать без TLS - сеть приватная, защищать или не защищать общение между сервисами в приватной подсети зависит от уровня вашей паранойи.
    - ACM Private CA про который вы уже знаете
    - В случае использования service discovery ПО можно использовать функционал предлагаемый решениями для service mesh, например consul connect service mesh: ваше приложение общается с прокси консула, а тот, обеспечивая TLS между нодами, направляет трафик приложения на нужный сервис

    P.S. совершенно неясно зачем в тегах микротик
    Ответ написан
  • КАк разрешить просмотр фотографий с s3 amazon?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    это вопрос скорее по laravel -как в laravel делать так чтобы загруженный объект был доступен публично
    В рамках работы с AWS для доступа к объекту ему необходимо назначить публичный доступ
    Так же можно сгенерировать presigned url для объекта.
    Ответ написан
  • Как заскедьюлить несколько задач (около 20 шт.) используя один контейнер AWS ECS?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Наиболее логичным способом в вашем случае выглядит именно container overrides и нет ничего плохого, если вы будете делать создавать клаудвотч таски через cli
    Для облегчения работы в принципе, можно использовать terraform (хотя я понимаю, что, возможно, для вас это сейчас лишняя нагрузка, но, поверьте, пригодится)
    Ответ написан
  • Как диагностировать странные network проблемы на AWS серваках?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    С практически 99.9% вероятностью AWS тут совершенно ни при чем.
    1. Смотрите сетевой стек на проблемных серверах(хоть отмониторьте его что ли, вы же смотрите в мониторинг?) Например, довольно часто встречающаяся проблема - незакрывающиеся tcp close_wait. Оптимизируйте настройки сети под ваше приложение.
    2. мониторьте само приложение - что меняется в моменты залипаний. Попробуйте какой нибудь APM(NewRelic, Datadog и другие) если приложение позволит.
    Вообще, если бы у вас были данные для анализа - можно было бы что-то предполагать.
    Делайте мониторинг, если он еще не сделан. Смотрите в мониторинг.
    Ответ написан
  • Возможно ли хранить код в "Облаке Mail.ru", Яндекс?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    В общем то, что мешает водрузить клиент яндекс или мейл.ру диска на все интересующие рабочие станции и синхронизировать конкретную папку? Доступ будет через проводник. Возможно этот вариант вами рассматривался но тогда непонятно что не подошло

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

    VPS тоже никто не отменял - хоть сам гит захостите, свой, персональный
    Ответ написан