Цель: Есть директория "/opt/application", в которую скачивается архив с приложением и распаковывается в директорию, где в качестве имени используется короткая производная от HASH коммита (8 символов). И создается символическая ссылка на данную директорию. Необходимо хранить только 3 последних версии приложения, как директорий, так и архивов, а так же не удалять директории которые называются: logs media …
Продолжить читать "Ansible — Хранить N последних директорий и артефактов"
Данный скрипт получает список всех директорий в корзине и удаляет все объекты в каждой директории, кроме последних "N" указанных. Для запуска скрипта нужно передать два аргумента: Имя корзины Количество последних хранимых объектов Пример запуска: main.py:
За основу был взят ответ на gitmemory Для того, чтобы зашифровать уже созданный EBS Volume, нужно сделать из него снапшот. Затем из созданного снапшота создать диск в том же регионе, что и оригинальный, так же указать KMS ключ для шифрования. Затем сохраняем манифест текущего PV в файл: Редактируем файл, заменив ID оригинального диска на …
Продолжить читать "EKS — Зашифровать текущий PV (EBS Volume)"
Для параметризованной сборки с выбором результата на основе SQL запроса, понадобится плагин Active Choices Переходим в настройки Jenkins'а Раздел "Управление плагинами" Переходим к вкладке "Доступные" и в поиске указываем "Active Choices" Устанавливаем его. Так же необходим плагины: Database PostgreSQL Database Создаем "New Item" — "Pipeline", указываем, что это будет параметризованная сборка, и добавляем …
Продолжить читать "Jenkins — Active Choice: PostgeSQL — Вернуть результат SELECT запроса"
Для автоматического создания "Sign-in URL" в новый добавленный аккаунт Control Tower понадобится следующее: создать на мастер аккаунте Lambda функцию (регион обязательно us-east-1 — Virginia, так будем использовать CloudTrail как триггер); создать политику разрешающую асюмить роль и приатачиваем ее к Лямбда роли; создаем CloudWatch Event Rule и в качестве таргета указываем лямбду; на мастер аккаунте создать …
Продолжить читать "AWS Organization — Автоматическое добавление Sign-in URL для новых аккаунтов"
Для того, чтобы разрешить доступ на чтение с S3 корзины для всех аккаунтов входящих в организацию, на бакет нужно повесить следующую политику: Где "stackset-lambdas" имя S3 корзины, а "o-xxxxxxxxxx" — ваш Organization ID.
Данный Python скрипт получает список всех регионов, находит в них EC2 инстансы, RDS инстансы и ASG, и если на ресурсе нет тега "prevent_stop" равного значению "true", то останавливает данный ресурс, а в случае с ASG сжимает его до 0. main.py: Список нужных разрешений для запуска (помимо "AWSLambdaExecute" политики): ec2:DescribeRegions ec2:DescribeInstances ec2:StopInstances rds:ListTagsForResource rds:DescribeDBInstances rds:StopDBInstance …
Продолжить читать "Lambda — Для остановки EC2 инстансов, RDS инстансов и сдувания ASG во всех регионах"
Данный Python скрипт создает события в PagerDuty используя APIv2. За основу был взят следующий скрипт. Для начала нужно создать "Routing Key", он же "Integration Key", не путать с "API Access Key", который можно использовать для любых API вызовов, нам же нужен только ключ от определенного сервиса. Переходим в настройки сервиса, в моем случае он называется …
Продолжить читать "PagerDuty — Python скрипт для создания событий"
AWS Transfer поддерживает 3 протокола: SFTP, FTP и FTPS. И только SFTP может иметь публичный эндпоинт, FTP/FTPS можно запускать только внутри VPC. Так же для авторизации по логину/паролю, необходимо использовать кастомный провайдер, больше информации об этом вы можете найти тут. Цель: Создать AWS Transfer сервер для протокола FTP, сервис должен быть публичным и так же …
Продолжить читать "AWS Transfer — Public FTP"
Для удаления всех неиспользуемых образов можно воспользоваться следующей командой: