Цель: Есть директория "/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: PostgreSQL — Вернуть результат SELECT запроса"
Для автоматического создания "Sign-in URL" в новый добавленный аккаунт Control Tower понадобится следующее: создать на мастер аккаунте Lambda функцию (регион обязательно us-east-1 — Virginia, так будем использовать CloudTrail как триггер); создать политику разрешающую асюмить роль и приатачиваем ее к Лямбда роли; создаем CloudWatch Event Rule и в качестве таргета указываем лямбду; на мастер аккаунте создать …
Продолжить читать "AWS Organization — Автоматическое добавление Sign-in URL для новых аккаунтов"
In order to allow read access from the S3 Bucket for all members included in the organization, the following policy must be applied to the S3 Bucket: Where "stackset-lambdas" is the S3 Bucket name and "o-xxxxxxxxxx" is your 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"
Для удаления всех неиспользуемых образов можно воспользоваться следующей командой: