Ansible — Хранить N последних директорий и артефактов

Цель: Есть директория "/opt/application", в которую скачивается архив с приложением и распаковывается в директорию, где в качестве имени используется короткая производная от HASH коммита (8 символов). И создается символическая ссылка на данную директорию. Необходимо хранить только 3 последних версии приложения, как директорий, так и архивов, а так же не удалять директории которые называются: logs media … Продолжить читать "Ansible — Хранить N последних директорий и артефактов"

Python — AWS S3 хранить N последних артефактов

Данный скрипт получает список всех директорий в корзине и удаляет все объекты в каждой директории, кроме последних "N" указанных. Для запуска скрипта нужно передать два аргумента: Имя корзины Количество последних хранимых объектов Пример запуска:   main.py:

EKS — Зашифровать текущий PV (EBS Volume)

За основу был взят ответ на gitmemory Для того, чтобы зашифровать уже созданный EBS Volume, нужно сделать из него снапшот. Затем из созданного снапшота создать диск в том же регионе, что и оригинальный, так же указать KMS ключ для шифрования. Затем сохраняем манифест текущего PV в файл:   Редактируем файл, заменив ID оригинального диска на … Продолжить читать "EKS — Зашифровать текущий PV (EBS Volume)"

Jenkins — Active Choice: PostgeSQL — Вернуть результат SELECT запроса

Для параметризованной сборки с выбором результата на основе SQL запроса, понадобится плагин Active Choices Переходим в настройки Jenkins'а   Раздел "Управление плагинами"   Переходим к вкладке "Доступные" и в поиске указываем "Active Choices" Устанавливаем его. Так же необходим плагины: Database PostgreSQL Database Создаем "New Item" — "Pipeline", указываем, что это будет параметризованная сборка, и добавляем … Продолжить читать "Jenkins — Active Choice: PostgeSQL — Вернуть результат SELECT запроса"

AWS — S3 разрешить доступ для организации

Для того, чтобы разрешить доступ на чтение с S3 корзины для всех аккаунтов входящих в организацию, на бакет нужно повесить следующую политику:   Где "stackset-lambdas" имя S3 корзины, а "o-xxxxxxxxxx" — ваш Organization ID.

Lambda — Для остановки EC2 инстансов, RDS инстансов и сдувания ASG во всех регионах

Данный 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 во всех регионах"

PagerDuty — Python скрипт для создания событий

Данный Python скрипт создает события в PagerDuty используя APIv2. За основу был взят следующий скрипт. Для начала нужно создать "Routing Key", он же "Integration Key", не путать с "API Access Key", который можно использовать для любых API вызовов, нам же нужен только ключ от определенного сервиса. Переходим в настройки сервиса, в моем случае он называется … Продолжить читать "PagerDuty — Python скрипт для создания событий"

AWS Transfer — Public FTP

AWS Transfer поддерживает 3 протокола: SFTP, FTP и FTPS. И только SFTP может иметь публичный эндпоинт, FTP/FTPS можно запускать только внутри VPC. Так же для авторизации по логину/паролю, необходимо использовать кастомный провайдер, больше информации об этом вы можете найти тут. Цель: Создать AWS Transfer сервер для протокола FTP, сервис должен быть публичным и так же … Продолжить читать "AWS Transfer — Public FTP"