Данный скрипт ищет EBS в регионе "eu-west-1" с тегом, ключ которого "Application" и значение передается как аргумент, создает снапшот данного EBS. Так же по тому же принципу он ищет снапшот по тегу, и удаляет все, кроме последнего. Пример запуска для создания снапшота: Пример запуска для удаления старых снапшотов: main.py:
Данный скрипт получает список всех директорий в корзине и удаляет все объекты в каждой директории, кроме последних "N" указанных. Для запуска скрипта нужно передать два аргумента: Имя корзины Количество последних хранимых объектов Пример запуска: main.py:
Данный 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 скрипт для создания событий"
Пример того, как можно создавать сущности в Kubernetes, используя AWS Lambda. Функция будет на Python3, так что воспользуемся Kubernetes Python Client Больше примеров по использованию можно найти тут. Так как AWS Lambda не поддерживает данный пакет, упакуем в нашу функцию модули "kubernetes" и "boto3". "boto3" понадобится для обращения в AWS SSM, где будет хранится kubeconfig …
Продолжить читать "AWS — Lambda: kubectl"
При попытке выполнить 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""
Пример Python3 скрипта, для получения метрики из AWS CloudWatch. В примере получаем максимальное значение за последнюю минуту и выводим только значение, это необходимо если вы хотите собирать метрики к примеру в Zabbix. Script:
К примеру есть инстанс, на котором установлен Python 2-ой и 3-ей версий, но по умолчанию используется 2-ая, и чтобы не менять версию по умолчанию и запустить Playbook используя Python3, можно воспользоваться следующей командой: Так же можно указать интерпретатор в инвентори файле: Убедитесь, что для нужной версии Python установлен Ansible модуль
Данный Python скрипт позволяет отправлять уведомления о событиях CloudFlare Firewall в Slack канал: Данный скрипт проверяет события за последние 5 минут, соответственно ставим его в cron с частотой каждые 5 минут.
Данный BASH скрипт позволяет остановить или запустить все инстансы с определенным тегом. Python3 скрипт, который так же служит для остановки/старта инстансов по тегу, так же фильтрует статус инстансов, чтобы не пробовал стартовать/останавливать инстансы со статусом "terminated" Может потребоваться установка питон пакета boto3