Архив рубрики: HOWTO’s

Вопросы, касаюшиеся установки и настройки различных приложений.

Docker: настройка tzdata и timezone во время билда

14 июля 2018
 

 При сборке образа — билд останавливается с запросом на настройку tzdata. Dockerfile выглядит сейчас так: FROM ubuntu:18.04 RUN apt update && apt install -y python-pip python-dev ssh python-boto3 RUN pip install ansible==2.4.3.0 Запускаем сборку: [simterm] admin@jenkins-production:~$ docker build -t proj/proj-ansible:1.1 . Sending build context to Docker daemon 29.62MB Step 1/3 : FROM ubuntu:18.04 —> 113a43faa138… Читать далее »

Ansible: проверить конфигурацию NGINX перед рестартом

13 июля 2018
 

 Имеется роль nginx, в которой выполняется его настройка и копирование файлов. Последней задачей роли выполняется nginx restart. Проблема заключается в том, что попытка перезапуска NGINX выполняется в любом случае, и если в файле шаблона виртуалхоста есть ошибка — то NGINX не запустится. Что бы выполнить проверку — nginx -t — добавляем задачу с вызовом модуля… Читать далее »

Ansible: использование ansible_date_time для получения даты/времени

12 июля 2018
 

 Имеется задача по созданию архива, в имени которого хочется добавлять дату и время его создания. Для получения даты-времени можно использовать ansible_date_time. Проверяем. Добавлем задачу, которая выведет всё содержимое: — name: Test date debug: msg: «{{ ansible_date_time }}» Запускаем: [simterm] $ ansible-playbook -i hosts.ini —tags test —limit mobilebackend-dev mobilebackend.yml —extra-vars «ansible_connection=local» PLAY [all] **** TASK [Gathering… Читать далее »

Ansible: использование with_dict на примере модуля rabbitmq_user

11 июля 2018
 

 Требуется создать пользователей и пароли для RabbitMQ, используя плагин rabbitmq_user. При этом хочется не создавать несколько переменных и несколько задач, а всё выполнить в одном цикле, но у каждой переменной должно быть несколько полей и значений. Используем with_dict и словарь в переменных. В файле roles/roles/rabbitmq/vars/main.yml добавляем: rabbitmq_users: user1: password: «pass1» vhost: «/» configure_priv: .* read_priv:… Читать далее »

NGINX: реальный IP в логах при работе за AWS Load Balancer

9 июля 2018
 

 Есть NGINX, который работает за AWS Application Load Balancer-ом (ALB). Проблема заключается в том, что в логах NGINX пишется IP самого ALB, а не клиента: 10.0.2.26 — — [06/Jul/2018:10:30:50 +0300] «GET /debug/ HTTP/1.1» 404 133 «-» «Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36» Что бы исправить это — добавляем… Читать далее »

Jenkins: Simple Theme Plugin — настройка внешнего вида UI

5 июля 2018
 

 Jenkins — прекрасная система, но вот внешний вид — просто «привет из 90-х». К счастью — Jenkins поддерживает самую различную кастомизацию, в т.ч. — возможность настройки своего интерфейса. Для этого можно установить плагин Simple Theme Plugin: Далее — в Configure System > Theme либо настроить вид самому, либо использовать готовый набор, например — jenkins-material-theme. Выбираем цветовую схему, например… Читать далее »

AWS: RDS — сбросить пароль администратора

4 июля 2018
 

 Имеется инстанс, развёрнутый из снапшота, пароль утерян. Что бы сменить пароль — выбираем инстанс, выбираем Modify: И в Settings — задаём новый пароль: Выбираем Apply immediately: Внимательно читаем предупреждение, что в таком случае будут применены все текущие изменения, который ждут maintatnce window. Например — мажорный/минорные апдейты версии, что может инициировать рестарт инстанса: Potential unexpected downtime… Читать далее »

Jenkins: Credentials Binding Plugin и использование нескольких Secret file в Jenkins pipeline

3 июля 2018
 

 Задача — запустить ansible-playbook, которому необходимо передать RSA ключ для EC2 и файл с паролем для ansible-vault, т.к. в задачах плейбука используются зашифрованные переменные. Для этого используем Jenkins credentials, где сохраним два файла, а потом через Credentials Binding Plugin — передадим их в контейнер с задачей. Secret file в Credentials Сначала добавляем файлы в Jenkins. Переходим… Читать далее »

Ansible: jenkins_plugin Connection refused и Cannot get CSRF

30 июня 2018
 

 Для Ansible имеется плагин, позволяющий выполнить установку плагинов для Jenkins jenkins_plugin_module. Достаточно интересный модуль, ниже пример его использования и решение ошибки «Connection refused«. При попытке установить плагин с его помощью: … — name: Start Jenkins service   service:     name=jenkins     state=restarted     enabled=yes — name: Install Jenkins plugins jenkins_plugin: name: «{{ item }}» url_username: «{{ jenkins_ui_admin_user }}» url_password: «{{ jenkins_ui_admin_pass }}» state: present… Читать далее »

Terraform: создание проекта с EC2, VPC и AWS cross-region VPC peering

28 июня 2018
 

 Одной из неприятных неожиданностей в использовании CloudFormation оказался факт того, что он не умеет создавать VPC peering между VPC в разных регионах. Т.е., сама возможность создания cross-region peering была анонсирована>>> AWS в ноябре 2017, но по состоянию на июнь 2018 — AWS CloudFormation просто не имеет опции region. В результате он пытается выполнить пиринг между… Читать далее »