cyberflow_gravatar

Cyberflow

I am linux system administrator.


Navigation
» Home
» Categories
» Code
» XML Feed

Cyberflow


    Трюки с ssh config

    22 May 2014 | Comments

    Конфиг ssh очень полезная и удобная штука. Пользуюсь им давно, но недавно открыл ещё несколько замечательных возможностей. Решил поделиться парой полезных фич и рассказать об одном маленьком лайфхаке.

    Шаринг соединений

    Часто бывает необходимо по работе держать много консолей с ssh на один сервер. Для упрощения такой работы (с точки зрения компьютера) в OpenSSH есть возможность шарить соединения. Т.е. если вы зашли на сервер, то в системе создается ControlSocket и все последующие соединения на этот сервер будут использовать уже созданный сокет, а не создавать новое подключение. И если при первом соединении сервер спрашивает у вас пароль, то при повторном использовании уже сокета авторизация не потребуется.

    Для настройки Connection sharing необходимо добавить следующие строчки в начало конфига ssh:

    ControlMaster auto
    ControlPath /tmp/ssh_%h_%p_%r
    

    Проброс соединений через сервер

    Другая не менее полезная штука - это возможность настроить соединение через сервер. Т.е. вместо двух команд: ssh server1 и потом уже оттуда ssh server2, можно сразу в конфиге всё прописать и ходить одной командой.

    Установка slave mysql-percona сервера

    14 May 2014 | Comments

    Хочу сразу заметить, что способов развернуть slave сервер существует масса. Я хочу рассказать лишь об одном из них. Во-первых для себя, т.к. я часто применяю его в работе. Во-вторых для тех, у кого стоит задача по развертыванию независимого (поясню: это значит что перенос файлов базы с одного сервера на другой не подходит, как в моём случае. Т.е. репликация не полная) slave и при этом репликация производиться только над некоторыми БД, а не над всем, что есть.

    Подразумевается, что уже есть мастер сервер, на котором крутятся БД и настроен для репликации.

    Теперь надо сделать dump баз данных, при этом будем использовать атрибуты add-drop-database для добавление в dump строчки удаляющей базу перед её созданием и master-data для добавления информации о бин-логах и их позиции на момент создания dump’a. Так же, чтобы избежать переноса служебных баз, формируем список баз для переноса исключив из них все служебные базы mysql (в список можно добавить и другие базы по аналогии). После создания dump’a переносим его на slave сервер.

    # DATABASE_LIST=$(mysql -NBe 'show schemas' | grep -wv 'mysql\|performance_schema\|information_schema')
    # mysqldump  --databases $DATABASE_LIST --add-drop-database --master-data -u root -p > dbdump.db
    # scp dbdump.db mysql-slave-host:~/
    

    На slave сервере добавляем необходиму информацию для репликации. Это можно сделать и после развертывания dump’a. Так же я пропущу описание настройки репликации в конфигурации mysql.

    # mysql
    mysql> CHANGE MASTER TO MASTER_HOST='mysql-master-host', MASTER_USER='$replica_user', MASTER_PASSWORD='$slavepass';
    

    Теперь можно залить сделанный dump и после этого включить репликацию.

    # mysql -p < ~/dbdump.db
    # mysql
    mysql> slave start;
    

    Репликация таблиц базы chef-server

    09 Aug 2013 | Comments

    Intro

    В данной статье я расскажу как настроить два сервера chef-server версии 11 с репликацией части таблиц базы postgresql для обеспечения отказоустойчивости. Основная цель репликации это хранения данных о клиентах и нодах для прозрачного доступа нод к любому из chef серверов и возможности работы без перерегистрации. Предлагаемое opscode решение репликации данных через DRBD показалось мне не самым удобным и, главное, надёжным. По сему было принято решение искать альтернативные пути. Так как реплицировать все данные из всех таблиц нет необходимости, то было решено посмотреть в сторону skytools и londiste, которые позволяют реплицировать только определенные таблицы БД.

    Однако не обошлось без сюрпризов. Opscode распространяет shef-server 11 по средствам уже собранных omnibus пакетов, в котором свой postgres 9.2. Этот постгрес собран урезанным и не работает с skytools. В итоге в этой статье будет описано как поставить chef-server из omnibus пакета на дистрибутивный postgres 9.2 и прикрутить репликацию через londiste.

    logstash, ротация логов в elasticsearch

    31 May 2013 | Comments

    Небольшая заметка как организовать ротацию логов, собирающихся при помощи logstash в elasticsearch.

    В крон добавляем:

    cat <<'EOF' > /etc/cron.daily/logstash
    #!/bin/bash
    logdate=
    $(date -d'-15 days' +"%Y.%m.%d")
    curl -XDELETE "http://localhost:9200/logstash-
    ${logdate}"
    EOF

    Этот скрипт будет запускаться ежедневно и удалять все логи из elasticsearch 15-дневной давности.

    Hyperdb to Wordpress

    22 Mar 2013 | Comments

    Hyperdb - это замена стандартоного класса wpdb, позволяющая использовать несколько баз данных. В данной статье я опишу настройку hyperdb для распределенной инфраструктуры, состоящей из двух frontend серверов и двух серверов баз данных на базе дистрибутивов Debian 6, в качестве основной задачи ставилось не только распределение запросов на чтение между серверами БД, но и отслеживания отставаний слэйв сервера и, в случае отставания, чтение актуальных данных с мастера.

    Настройка самих фронтендов оставим за кадром, т.к. это выходит за рамки данной статьи. Что касается серверов БД, то мы будем использовать мастер-слэйв репликацию и mk-heartbeat для отслеживания lag-ов на слэйве. Сервера геораспределены и каждый сервер БД располагается в отдельном ДЦ в паре с фронтендом. На настройке баз я остановлючь подробнее:

    Настройка репликации DB:

    Здесь не описано ничего принципиально нового. Используется стандартная репликация Мастер-Слэйв средствами MySql.