Category Archives: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

PowerShell: проверка сервисов – аналоги curl и telnet

02/02/2018
 

 Т.к. в Windows Server 2012 нет привычных утилит, таких как curl и telnet – используем PowerShell. Краткая заметка себе на будущее. a-la curl Проверить ответ сервиса можно с помощью модуля Invoke-WebRequest: StatusCode : 200 a-la telnet А что бы проверить принимает ли сервис подключения на порт – используем TcpClient Class: Connected : True Готово.

BASH: скрипт создания AWS CloudFormation стека

02/01/2018
 

 На одном из проектов создавался CloudFormation шаблон для RDS (см. пример тут>>>). Что бы упростить создание и обновление стека разработчиками – набросал небольшой скрипт. Скрипт выполняет: валидацию файла шаблона проверит требуется ли создать, или обновить стек запросит подтверждение перед созданием выполнит create-stack или update-stack Чать параметров используется из файла шаблона или переменных скрипта, дефолтные, часть… Read More »

Ansible: миграция RTFM 2.8 – logrotate, unattended-upgrades и Let’s Encrypt для Bastion хоста

01/29/2018
 

 Прыдущая часть – AWS: миграция RTFM 2.7 – CloudFormation и Ansible – наcтройка NAT (там же ссылки на предыдущие посты). В этой части продолжим настройку Bastion хоста. Задача – добавить: роль logrotate: ротация логов NGINX (в дальнейшем логи будут сбрасываться через CloudWatch Logs агента) роль unattended-upgrades: автоапдейты системы роль Let’s Encrypt: получение и обновление сертификатов для сайтов роль… Read More »

bash: проверка статуса Spamassassin

01/28/2018
 

 На почтовом сервере начал падать Spamassassin. Сервер старый, причину на ночь глядя искать откровенно лень (думаю, падает во время выполнения /usr/bin/sa-learn в cron-задаче – по времени прихода уведомлений будет яснее), да и почта будет скоро переезжать на сервер в AWS, поближе к RTFM (сейчас работает на VPS в ДЦ Воля-Кабель), потому добавлю скрипт для быстрого “фикса”. Суть… Read More »

Powershell: найти самые большие файлы

01/26/2018
 

 Решение нагуглено тут>>>. Используем Get-ChildItem, первым аргументом передаём путь к каталогу, в котором будем искать файлы, добавляем параметр -recurse для поиска во вложенных каталогах, выполняем сортировку по размеру с помощью Sort-Object, результат передаём в Select-Object, и выбираем первые 10 объектов: Либо вывести только имена файлов – добавляемFormat-Table (ft): Готово.

Python: скрипт бекапа файлов и баз MySQL в AWS S3

01/03/2018
 

 Задача – набросать скрипт, который умел бы создавать бекап нескольких сайтов и загружать их в AWS S3 корзину. Ниже описан процесс написания такого скрипта (или, скорее, уже даже “утилиты”, т.к. имеются модули и файл настроек), без особых деталей по работе и реализации самих функций – больше информации о процессе создания утилиты, её структуре и логике… Read More »

Python: boto3 – примеры авторизации

01/02/2018
 

 Полная документация – тут>>>. Основные способы авторизации, по очереди их выполнения: передача данных доступа методу boto.client() передача данных доступа параметрами при создании объекта Session() переменные окружения файл данных CLI ~/.aws/credentials файлы /etc/boto.cfg и ~/.boto Пишу скрипт бекапа (очередной 🙂 ), и очень хочется избежать передачи данных через файл настроек скрипта, поэтому основным вариантом для домашней… Read More »

Python: boto3 и скрипт обновления AWS Security Group

12/31/2017
 

 Имеется VPN сервис, работающий в AWS на EC2, доступ к которому ограничен с помощью security group. Задача: набросать скрипт, который работал бы под Linux/Windows (VPN-ом пользуюсь не я один), который позволял бы быстро добавить запись с новым IP для доступа. Используем Python 3 и boto3.

Jenkins: миграция RTFM 2.6 – Jenkins Pipeline для Ansible

10/18/2017
 

 В одном из предыдущих постов – Jenkins: миграция RTFM 2.4 – Jenkins Pipeline для CloudFormation RTFM стека – была добавлена задача в Jenkins для создания и апдейта AWS CloudFormation стека. Следующая задача – запускать Ansbile из Jenkins для настройки серверов в стеке. Далее создадим одну Ansbile роль с установкой NGINX, потом добавим задачу в Jenkins. PEM-ключи для… Read More »

Jenkins: миграция RTFM 2.4 – Jenkins Pipeline для CloudFormation RTFM стека

10/14/2017
 

 Продолжение сетапа инфрастуктуры для блога. Решил добавить в заголовки “версию” каждого поста, в данном случае – миграция RTFM 2.4. Тут мажорная версия “2” – потому что год тому уже что-то подобное начинал делать (AWS: миграция RTFM, часть #1: ручное создание инфраструктуры – VPC, подсети, IGW, NAT GW, маршруты и EC2), а минорная “4” – четвёртый пост… Read More »