суббота, 26 мая 2018 г.

выступления команды Флант, про докер, кубернетес, деплой и проч.

https://www.youtube.com/playlist?list=PL1mJ-PkCYnmB9vljnjxCMP3dlxQY3Dfcq

ansible: официальный nginx role

https://www.nginx.com/blog/announcing-unified-ansible-role-nginx-nginx-plus/

(старая версия: https://www.nginx.com/blog/official-ansible-galaxy-nginx-roles-out-now/ )
Но это достаточно простая роль, из типового -- там нет upstream для раскидывания запросов на несколько бэкендов.

Как вариант, за основу можно тогда взять
https://github.com/geerlingguy/ansible-role-nginx

debian: ставим свежий ansible

Самое простое - подключить оф репу, где всё работает.
http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html

или как вариант
sudo pip install ansible

суббота, 12 мая 2018 г.

docker и openldap

Можно самому накидать Dockerfile, но помнить про пропуск dpkg-reconfigure, так что нужно будет настраивать потом вручную, нужны скрипты. Или готовые сборки. Также, у меня установка зависала на build, на шаге Input administrator password.

Простая версия, Dockerfile прилагается.
https://github.com/dinkel/docker-openldap

Более сложная, зато с примерами под compose, kubernetes итд.
https://github.com/osixia/docker-openldap

Быстрое знакомство с docker

Неплохо описано тут:
https://habr.com/company/infobox/blog/240623/

При установке дебиана-убунты некоторый софт имеет смысл ставить с опциями
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y ...
Нужное из рекомендуемого добавляем явно в список.
Это уменьшит размер контейнера и уберёт вопросы, но нужно будет или потом делать dpkg-reconfigure после старта, или как-то скриптами настраивать.

Также нужно посмотреть на docker-compose для групповой установки контейнеров и/или vagrant.

вторник, 8 мая 2018 г.

rpm: получаем информацию из rpm файла

Иногда нужно запросить/автоматизировать имя пакета, но rpm файл назван как-то нестандартно. Или просто нужно получить информацию из rpm.

$ rpm -qip MariaDB-10.1.26-centos7-x86_64-server.rpm
Name        : MariaDB-server
Version     : 10.1.26
...

понедельник, 7 мая 2018 г.

Debian и xhprof

xhprof - довольно полезный профилировщик, который можно использовать в проде. Ставится (кусочек) так:
# apt-get install php5-xhprof

четверг, 3 мая 2018 г.

apache 2.4, nginx и 127.0.0.1 в логах

В старых версиях apache при проксировании запросов через nginx в логах апача светился 127.0.0.1, помогала установка mod_rpaf(2) или mod_realip. Но в 2.4 эти модули уже не нужны: в сам пакет входит mod_remoteip, и штатно активируется в /etc/httpd/conf.modules.d/00-base.conf
Но.. в логах всё-равно 127.0.0.1. Для полной настройки нужно создать файл /etc/httpd/conf.d/mod_remoteip.conf с содержимым
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/8

после этого в /etc/httpd/conf/httpd.conf ищем LogFormat и заменяем %h на %a (подробности в документации)

И не забыть выставить X-Forwarded-For со стороны nginx, разумеется.

Проверяем что нет ошибок
apachectl -S
и перечитываем
service httpd graceful

И чуть линков

среда, 28 февраля 2018 г.

Hetzner, debian и KVM (который виртуалки)

Есть оф дока
https://wiki.hetzner.de/index.php/KVM/enНо кроме 1 строки
route add -host zzz.zzz.zzz.zz1 dev br0
она бестолковая. Впрочем, и сейчас эта строка будет выглядеть иначе:
ip route add zzz.zzz.zzz.zz1 dev br0 scope link
Суть? Это машины в 1 сети, а хецнер рубит неизвестные ему маки.

Но это даст только возможность ходить с хоста на виртуалку. Чтобы можно было попасть туда из мира, есть несколько вариантов

Где самый простой -- запросить мак в саппорте для kvm. Но также возможно поднять tun, изучить proxy_arp и поднять nat, 1 к 1 на виртуалку - будет выглядеть как настоящий доступ.

среда, 7 февраля 2018 г.

CentOS 7: собираем libtgvoip

За основу хорошо заходят 2 пакета:
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-1.0.3-1.fc27.x86_64.html
http://rpmfind.net/linux/RPM/rpmfusion/free/fedora/updates/27/x86_64/l/libtgvoip-devel-1.0.3-1.fc27.x86_64.html
Также нужны mock и gyp с поддержкой cmake

mock -r epel-7-x86_64 rebuild libtgvoip-1.0.3-1.fc27.src.rpm
(тут будет момент с gyp - нужно будет также встроить свежий gyp, так что вместо epel будет своя репа c gyp, куда в том числе нужно добавить данные репы centos-sclo-rh для devtoolset)
Но всё-равно не соберётся. Вторым шагом будет или выпиливание webrtc блока (оно на c++17), или установка gcc 5. Версия 4.9 его не устроит. Ставим devtoolset-4-gcc
Но всё-равно не соберётся, потому что mock тянет штатную версию 4.8.

А также, будет ошибка
usr/include/c++/5.3.1/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Только тут момент: ошибка изменится на
error: ‘typeof’ was not declared in this scope

фикс: typeof отсутствует(?) в с++11, надо писать -std=gnu++11
или (возможно?) поможет такая штука
#define typeof(x) __typeof__(x)

Теперь в спеке нужны изменения
pushd out/Release
+    sed -i'' -e "14i add_definitions(-std=gnu++11)" CMakeLists.txt
    %cmake .