Ansible: роли для Docker Compose, Prometheus и node_exporter

2 октября 2017
 

 Перебирал несколько ролей в Ansible Galaxy для установки и настройки Prometheus — но в конце-концов решил делать всё по-своему. Будем использовать Docker Compose, который будет запускать сам Prometheus и node_exporter. Роль Docker Compose Начнём с добавления роли docker-compose. В корне репозитория создаём каталог roles/docker-compose/tasks: [simterm] $ mkdir -p roles/docker-compose/tasks [/simterm] Создаём файл roles/docker-compose/tasks/main.yml: — name:… Читать далее »

Linux: mps-youtube — консольный Youtube плеер

1 октября 2017
 

 Страница проекта на Github. Умеет играть прямо с Youtube, искать на нём музыку, загружать, конвертировать. Устанавливаем: [simterm] $ sudo pacman -S mps-youtube [/simterm] Дополнительно: [simterm] $ sudo pacman -S youtube-dl [/simterm]

AWS: миграция RTFM 2.1 — CloudFormation для EC2 c Jenkins

30 сентября 2017
 

 Задача — развернуть CloudFromation стек с одним EC2 интансом и примонтировать Elastic Block Store (EBS) с данными Jenkins. Потом с помощью Ansible — установить там Docker и запустить Jenkins. Подготовка Сначала — вручную создадим EBS, который будет хранить данные Jenkins и далее будет подключаться к создаваемому EC2 интансу. Создаём именованный профиль AWS CLI для RTFM:… Читать далее »

Let’s Encrypt: firewall и верификация домена

26 сентября 2017
 

 Во время установки и получения сертификата с помощью Ansible — возник вопрос с доступом к серверу для верификации, т.к. доступ к портам 80 и 443 ограничен на уровне Azure Network Security Group. Для certbot можно было бы использовать manual верификацию через DNS — но тут требовалось или ручная обработка, или боль с Azure DNS API… Читать далее »

Ansible: ansible-galaxy — репозиторий ролей и Jenkins VM provision

25 сентября 2017
 

 Продолжаем сетап системы мониторинга. Предыдущие части: Prometheus: мониторинг – введение, установка, запуск, примеры Azure: provisioning с Resource Manager, Jenkins и Groovy Ansible: пример установки NGINX Jenkins: Pipeline, Groovy, Ansible и VM provisioning Для NGINX роль я писал руками, далее — используем Ansible Galaxy.

Jenkins: Pipeline, Groovy, Ansible и VM provisioning

22 сентября 2017
 

 Продолжение постов Ansible: пример установки NGINX и Azure: provisioning с Resource Manager, Jenkins и Groovy. Задача  — запускать провижен VM из Jenkins. Пока выполняется только установка NGINX, позже будет добавлен Prometheus. Используем Jenkins Pipeline и groovy-скрипты. Описание Используется два репозитория: один для скриптов Jenkins (переменная $BUILD_REPO_URL в скриптах ниже), второй для файлов Ansbile ($INFRA_URL), в которых описаны хосты… Читать далее »

Ansible: пример установки NGINX

20 сентября 2017
 

 Задача — установить NGINX на удалённый хост с помощью Ansbile. Подготовка На рабочей машине — устанавливаем Ansible: [simterm] $ sudo pacman -S ansible [/simterm] В Jenkins — будем использовать Docker образ (или плагин). Проверяем: [simterm] $ ansible —version ansible 2.3.2.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides python version = 2.7.13… Читать далее »

Azure: provisioning с Resource Manager, Jenkins и Groovy

19 сентября 2017
 

 Описание сетапа развёртывания группы ресурсов Azure с одной виртуальной машиной для будущего мониторинга проекта. В этой части — создание Azure Resource Manager шаблона, настройка Jenkins и примеры Groovy скриптов. Далее — провижен NGINX и Prometheus с Ansbile. Ещё позже — Grafana. Все файлы и скрипты хранятся в Github. Подготовка Используем готовый шаблон от Azure отсюда>>>.… Читать далее »

Prometheus: мониторинг — введение, установка, запуск, примеры

18 сентября 2017
 

 Prometheus — open-source система мониторинга, изначально разработанная в SoundCloud в 2012, публичный релиз состоялся в 2015. Сам Prometheus написан большей частью на Go, компоненты связываются по HTTP. Для визуализации имеет собственные графики, но может работать с системами типа Grafana (о ней позже, тоже будем применять). Данные хранит локально, в собственной TSDB базе, индексы хранятся в LevelDB.… Читать далее »

Linux: C — адресное пространство процесса

17 сентября 2017
 

 Адресное пространство процесса на примере программы на C. Используемые утилиты и файлы: size /proc/$PID/maps objdump pmap Все примеры выполняются на ОС: [simterm] $ cat /etc/os-release | grep NAME NAME=»Arch Linux» PRETTY_NAME=»Arch Linux» [/simterm] С ядром: [simterm] $ uname -mrs Linux 4.12.8-2-ARCH x86_64 [/simterm] С использованием gcc: [simterm] $ gcc —version gcc (GCC) 7.2.0 [/simterm]