Задать вопрос
  • Как автоматически перезапускать таск в ECS при пуше нового image?

    @vitaly_il1
    DevOps Consulting
    Использовать latest image - это неправильная практика.
    Как сказал akelsey, нужно обновить Task Defintion, и тогда ничего перезапускать не надо.
    Я для это в Github Actions использую
    aws-actions/amazon-ecs-render-task-definition
    и
    aws-actions/amazon-ecs-deploy-task-definition
    Ответ написан
  • Как достать строку из листа?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, не советую использовать слово list как имя переменной - это имя используется как имя встроенного типа «список».
    Во-вторых, список это и есть в некотором роде массив, к элементам которого можно обращаться по индексу (именно так, как вы показали - по номеру элемента в скобках). Нет смысла перемещать его содержимое в другой массив, если только это не условие задачи или обусловлено какой-то очень специфической задачей (для использования математических и статистических пакетов).. Задачи тут не решают.
    В-третьих, очень рекомендую вначале изучить структуры вообще и начала языка Python в частности, а потом браться за вот это вот всё. Сэкономит вам время.
    Ответ написан
    Комментировать
  • Как настроить права через icacls?

    @Kosyachella Автор вопроса
    Решения решения вопроса при помощи cmd так и не нашел, разрешил проблему при помощи скрипта запрета на powershell.
    $path = "$env:APPDATA\Microsoft\SystemCertificates\My\Certificates"
    $user = "$env:UserName"
    $Rights = "Write"
    $InheritSettings = "Containerinherit, ObjectInherit"
    $PropogationSettings = "None"
    $RuleType = "Deny"
    $acl = Get-Acl $path
    $perm = $user, $Rights, $InheritSettings, $PropogationSettings, $RuleType
    $rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
    $acl.SetAccessRule($rule)
    $acl | Set-Acl -Path $path
    Ответ написан
    Комментировать
  • The requested address is not valid in its context?

    @mureevms
    В AWS белый IP не назначается системному интерфейсу инстанса. Это фича AWS. Не надо лезть в систему для настройки сети, совсем не надо. IP аттачится из консоли управления на инстанс, но не принадлежит ОС, поэтому парни выше правильно пишут, что надо биндить сервис на 0.0.0.0
    Ответ написан
    Комментировать
  • Как расставить точки над i, по вопросу использованию Bash и Python для DevOps?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    1. Реальные кейсы написания и использования Bash скриптов, какие задачи они решают?

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

    2. Сколько часов, ориентировочно, потребуется на изучение и практику написания скриптов на Bash, как глубоко погружаться?

    можно всю жизнь учить любой язык программирования и все равно узнавать новое. bash не исключение, особенно еще и потому что все самое лучшее в bash глубоко завязано на понимание архитектуры Линукс.
    Вдобавок, если ты что-то можешь сделать на bash, а потом найдешь какой-нить декларативный оркестратор, ты будешь хорошо понимать что происходит под капотом и интуитивно понимать где что может пойти не так и как это починить.

    3. Что должен уметь написать на Bash junior/middle/senior DevOps?

    Слово все тут подойдет.

    4. Возможно для на Bash скрипты стоит потратить день-другой, уметь писать базовые скрипты и переходить к изучению Python?

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

    Python:
    1. Где и для чего используется Python на практике DevOps, реальные, повседневные кейсы использования?

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

    2. Каким уровнем знаний Python должен обладать junior/middle/senior DevOps? (Знакомый middle DevOps и Python не знает от слова совсем).

    Если ты знаешь питон на уровне сеньор, то не факт что тебе будет интересно работать на позиции девопс. Можно работать девелопером на питоне.
    Поэтому знания питона на уровне джуниора обычно достаточны. Но нужно понимать, что джуниор - это не тот, кто знает две команды. Это полноценный разработчик, который знает и структуры данных и стандартные библиотеки и все конструкции. Уровень джуниор в языке программирования должен позволять устроиться на позицию джуниор разработчика.
    Девопс инженер, который знает язык программирования на уровне джуниор разработчика - полезный человек, который сам решил углубиться в питон. И в айти области часто людям что-то нравится и они этим занимаются и углубляются вне зависимости от рабочих задач.
    Поэтому у большинства именно девопс инженеров знания именно о языках программирования немного отрывочные, но их хватает для написания универсальных скриптов и небольших утилит.
    Я в свое время писал простые и не очень вещи на ANSI C/С++/java/python/perl/actionscript. Сейчас почти все делаю на bash и иногда python, и все предыдущие знания мне помогают выбрать чем воспользоваться - написать что-то свое, найти готовую реализацию на другом языке, попросить в проекте, чтобы написали задачу (это тоже вполне себе способ для рабочих нужд договориться с разработчиками о написании нужного функционала для автоматизации/тестирования). Но главное, что я сам могу оценить примерный выхлоп от того, чем делать.

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

    Сколько часов нужно ориентировочно футболисту, чтобы стать таким как Месси?
    Сколько часов нужно музыканту, чтобы стать таким как Фредди Меркури?

    Это глупейший вопрос. ВСЕ люди разные. Никто не знает с какой скоростью ты обучаешься, какая у тебя на текущий момент база.
    С одинаковым количеством времени за всю школу одни выходят отличниками, другие двоечниками.
    С одинаковым количеством усилий одни делают работу, другие выпускают шедевры.

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

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

    Идти в девопсы с нуля - это нахвататься теоретических знаний, нахвататься практики только на курсах и пытаться оркестрировать что-то? Понимание архитектуры никакое, понимание зачем нужны инструменты и нужны ли они в данном конкретном случае - никакое.
    Такой инженер может выполнять только задачи по указке, если есть другой специалист в проекте.
    Поэтому джуниор девопс может существовать либо в проектах, где есть команда девопсов, которая готова взять человека на вырост и нагрузить его мелочевкой а то и вообще бюрократией. Либо если в проекте кто-то из разработчиков занимается всей этой задачей и хочет сгрузить на другого человека, которого опять таки он будет полностью контролировать.

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

    Выбор инструмента - это частности. Понимание какой должен быть результат - важен.
    Те же самые вещи можно делать и башем и питоном и ансиблом и чефом и перлом и не так важно что было выбрано, разве что стоит вопрос расширения и поддержки. А вот что именно делать и как это все увязывать...
    почитайте например git flow, и важно не сам гит - это вообще базово должно быть само собой, а зачем git flow нужен и прикинуть какой вариант подойдет в нужном проекте. Это уже как раз задача которую решают совместно девопс инженер и архитектор/тимлида.
    Ответ написан
    Комментировать
  • Как расставить точки над i, по вопросу использованию Bash и Python для DevOps?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вы не годитесь в девопсы.
    Это очень частый ответ на этот очень частый вопрос.

    Девопс - это человек, который не задаёт вопросы. Он на них отвечает. Самостоятельность является для девопса одним из ключевых навыков. У вас он отсутствует.
    И это совершенно точно человек, которого НЕ пугает прочтение 326 страниц мануала.
    Девопсу приходится читать примерно в сто раз больше документации. В год. Подумайте хорошенько, а надо ли оно вам, если перспектива выучить даже самые примитивные основы вас пугает настолько, что вы пришли на тостер поторговаться?

    В девопс, как и в инфосек, очень редко можно войти с нуля.
    Надо начинать либо сисадмином (не эникейщиком), либо программистом (не вордпресс).
    И потом, уже развившись как программист/сисадмин, можно подумать о движении в сторону девопса.
    Ответ написан
    2 комментария
  • Безлимитный ли трафик на Amazon AWS?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    нет
    безлимитные трафики это фантастика
    Ответ написан
    3 комментария
  • Как сделать клон Windows partition с Linux машины?

    @Drno
    скопируйте диск виндовс
    загрузитесь с загруз флешки винды и восстановите загрузчик
    Ответ написан
    Комментировать
  • Как сравнить две даты в dat?

    @res2001
    Developer, ex-admin
    Батники не умеют работать с датами. Тут все переменные строковые.
    Да, set /a умеет целочисленную арифметику, но результат все равно строковый.
    Нужно перевести даты в количество дней с начала эпохи, а потом их уже можно сравнивать стандартными средствами.
    Проще всего использовать для этих целей более продвинутые средства, умеющие работать с датами, например powershel, JS, VBS - эти скрипты при желании можно вызывать из батника.
    Но если очень хочется, можно и батником пересчитать. Алгоритм расчета есть на вики. Код можно дернуть отсюда - https://www.robvanderwoude.com/files/datediff_nt.txt
    Ответ написан
    Комментировать
  • Как достовлять проджект на тест, на прод и к чертовой матушке?

    BorLaze
    @BorLaze
    Java developer
    три ветки в гите - дев, тест и мастер
    CI/CD

    вся локальная разработка базируется на ветке дев

    как только фича закончена, мержим ее в тест
    CI/CD настроен так, что по новому пушу в тест он выкладывает новую ветку на сервер
    тестируем ее на тест-сервере

    когда фича протестирована, мержим ее в мастер
    CI/CD настроен так, что по новому пушу в мастер код выкладывается на прод

    начинаем цикл по-новой
    Ответ написан
    Комментировать
  • Как решить проблему с системой?

    @MaxKozlov Куратор тега PowerShell
    Верните пути по умолчанию на место
    $RegKey =”HKLM:\Software\Microsoft\Windows\CurrentVersion”
    Set-ItemProperty -Path $RegKey -Name “ProgramFilesDir” -Value “С:\Program Files”
    Set-ItemProperty -Path $RegKey -Name “ProgramFilesDir (x86)” -Value ‘С:\Program Files (x86)’

    На эти пути в системе много чего завязано и менять их - это как кувалдой лупить по голове.

    А проблему с установкой Management studio наверняка можно было бы решить параметрами командной строки
    Ответ написан
    3 комментария
  • Как создать ярлык для запуска приложения через PowerShell в Windows 11?

    @Drno
    Потому что cd - команда перехода в каталог
    Раз Вы и так указываете путь к файлу эта команда ненужна
    Ответ написан
    Комментировать
  • Как запускать несколько stage одновременно?

    ZIK1337
    @ZIK1337
    стейджи вроде никак, только джобы
    хотя может с needs пошаманить
    https://docs.gitlab.com/ee/ci/yaml/#needs
    Ответ написан
    Комментировать
  • В чем различие между variables: и environment: в yml манифестах gitlab?

    У них нет ничего общего.
    variables - переменные окружения
    environment - конфигурация окружения для развертывания - его название, url, кто может его деплоить и т.д.
    Ответ написан
    Комментировать
  • Как экспорттировать 20 пользователей в файл, чтобы затем импортировать на новый сервер?

    @MaxKozlov Куратор тега PowerShell
    как-то приблизительно так
    get-localuser | export-csv -delimiter ';' -encoding utf8 -notypeinformation -path d:\путь_к_файлу.csv

    редактируем руками файл, дописываем колонку password
    import-csv -delimiter ';' -encoding utf8 -path d:\путь_к_файлу.csv |
    foreach-object {
      $pass =  New-Object System.Management.Automation.PSCredential 'a', ($_.password | ConvertTo-SecureString - AsPlainText -Force)
      new-localuser -Name $_.Name -Password $pass.password ..... # тут другие нужные параметры
    }
    Ответ написан
    2 комментария
  • Как правильно переписать bash под windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Поставить git for windows, с которым идет баш, и ничего не переписывать.
    Ответ написан
    1 комментарий
  • Как решить проблему с выводом значений из реестра через Invoke-Command?

    @MaxKozlov Куратор тега PowerShell
    Проще один раз всё загнать в один вызов.
    Так и работать будет в разы быстрее и запустить можно одновременно на несколько компов, только в вывод надо имя компа включить

    invoke-command -comp $comp {
      # а здесь все красоты
      # причём циклом
      $source @(
        @{ key name= '''; valuename=''},
        @{ key name= '''; valuename=''}
      )
      foreach ($src in $source) {
        get-itemproperty -path $src.keyname | select -expandproperty $src.valuename
      }
    }

    test опустил...
    Проблема у вас в select-object

    стандартный вызов, если он со свойствами, пытается подстроить последующий вывод под предыдущие возвращённые свойства. если вы вначале просите свойство "ProductID", то и в последующем вызове PS ждёт свойство ProductID, которого нет, вы подсовываете ему "SerialNumber"

    Для этого в моём варианте используется параметр ExpandProperty, который превращает объект в строку
    Ответ написан
    1 комментарий
  • Как правильно организовать структуру файлов S3 для видео сервиса?

    inoise
    @inoise Куратор тега Amazon Web Services
    Solution Architect, AWS Certified, Serverless
    Вообще без разницы в такой постановке вопроса. Делайте так как будет удобно вам управлять: как с помощью приложения так и в виде ручной поддержки. Подумайте над сценариями использования
    Ответ написан
    Комментировать
  • Как сменить вывод о неправильном файле или команде?

    wisgest
    @wisgest
    Не ИТ-специалист
    Взять редактор ресурсов (например, Resource Hacker), открыть в нём файл cmd.exe или en-US\cmd.exe.mui (зависит от системы) и отредактировать Message Table.
    Ответ написан
    Комментировать