Архив за месяц: Сентябрь 2017

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]

Arch Linux: Skype — /usr/lib32/libcrypto.so.1.0.0: version `OPENSSL_1.0.2d’ not found

14 сентября 2017
 

 И снова Skype и libcrypto: $ skype /usr/lib32/skype/skype: /usr/lib32/libcrypto.so.1.0.0: version `OPENSSL_1.0.2d’ not found (required by /usr/lib32/libQtNetwork.so.4) /usr/lib32/skype/skype: /usr/lib32/libssl.so.1.0.0: version `OPENSSL_1.0.2d’ not found (required by /usr/lib32/libQtNetwork.so.4) Похожая проблема уже возникала, варианты решения описаны в посте Arch: skype error while loading shared libraries: libssl.so.1.0.0 – три решения. Проверяем: [simterm] $ ldd /usr/lib32/skype/skype | grep «not found» /usr/lib32/skype/skype: /usr/lib32/libcrypto.so.1.0.0:… Читать далее »

AWS: CloudFront — обновить SSL сертификат

13 сентября 2017
 

 Устанавливаем AWS CLI: $ sudo pacman -S aws-cli Настраиваем именованный профиль: [simterm] $ aws configure —profile tag AWS Access Key ID [None]: AKI***EBA AWS Secret Access Key [None]: +Pw***5l5 Default region name [None]: eu-west-1 Default output format [None]: json [/simterm] Проверяем имеющиеся сертификаты: [simterm] $ aws —profile tag iam list-server-certificates { «ServerCertificateMetadataList»: [ … {… Читать далее »