Jenkins — Python VirtualEnv с выбором версий

  Для выбора версии питона в пайплайне, нужно чтобы нужные версии были установлены в системе. Дальнейшие действия были выполнены на CentOS 7 и установка бинарников происходила в директорию «/usr/bin/» для удобства, так как в системе уже установлены версии «2.7» и «3.6» из репозитория по данному пути. Устанавливаем зависимости:   Скачиваем нужные исходники нужных версий, в … Продолжить читать "Jenkins — Python VirtualEnv с выбором версий"

Python — AWS EBS создание снапшотов на основе тега и хранение только одной последней версии

Данный скрипт ищет EBS в регионе «eu-west-1» с тегом, ключ которого «Application» и значение передается как аргумент, создает снапшот данного EBS. Так же по тому же принципу он ищет снапшот по тегу, и удаляет все, кроме последнего. Пример запуска для создания снапшота:   Пример запуска для удаления старых снапшотов:   main.py:    

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

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

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 — Lambda: kubectl

Пример того, как можно создавать сущности в Kubernetes, используя AWS Lambda. Функция будет на Python3, так что воспользуемся Kubernetes Python Client Больше примеров по использованию можно найти тут. Так как AWS Lambda не поддерживает данный пакет, упакуем в нашу функцию модули «kubernetes» и «boto3«. «boto3» понадобится для обращения в AWS SSM, где будет хранится kubeconfig … Продолжить читать "AWS — Lambda: kubectl"

FIX ERROR — AWS Lambda Python: «main() takes 0 positional arguments but 2 were given»

При попытке выполнить Lambda Python функцию возникает следующая ошибка: { "errorMessage": "main() takes 0 positional arguments but 2 were given", "errorType": "TypeError", "stackTrace": [ " File \"/var/runtime/bootstrap.py\", line 131, in handle_event_request\n response = request_handler(event, lambda_context)\n" ] }   Решение: Из сообщения видим, что мы в качестве хендлера используем функцию «main«, которая не имеет входящих аргументов. … Продолжить читать "FIX ERROR — AWS Lambda Python: «main() takes 0 positional arguments but 2 were given»"

AWS — Скрипт получения метрик из CloudWatch

Пример Python3 скрипта, для получения метрики из AWS CloudWatch. В примере получаем максимальное значение за последнюю минуту и выводим только значение, это необходимо если вы хотите собирать метрики к примеру в Zabbix.   Script:

Ansible — Запуск Playbook’а с определенной версией Python

К примеру есть инстанс, на котором установлен Python 2-ой и 3-ей версий, но по умолчанию используется 2-ая, и чтобы не менять версию по умолчанию и запустить Playbook используя Python3, можно воспользоваться следующей командой:   Так же можно указать интерпретатор в инвентори файле:   Убедитесь, что для нужной версии Python установлен Ansible модуль

CloudFlare — Отправка уведемлений в Slack

  Данный Python скрипт позволяет отправлять уведомления о событиях CloudFlare Firewall в Slack канал:   Данный скрипт проверяет события за последние 5 минут, соответственно ставим его в cron с частотой каждые 5 минут.