четверг, 1 июня 2017 г.

TestLink Bitnami - перенос и обновление.

Документ без названия

Необходимо перенести базу Testlink (версии 1.9.9) на более новую версию (1.9.16.0) на другом компьютере.

Для установки была выбрана версия Bitnami Testlink.
После установки Bitnami Testlink (1.9.16.0), запускаем систему:

cd testlink-1.9.16-0/
./use_testlink
./ctlscript.sh start

адрес в браузере:
IP_адрес:8080/testlink

после восстановления:

Скопировать в Linux папку install из нормального архива установки Testlink в папку с Testlink ом.

mysql -u root -p

use bitnami_testlink;

drop database bitnami_testlink;
create database bitnami_testlink;
grant all privileges on bitnami_testlink.* to 'пользователь_bitnami'@'localhost' identified by 'пароль_от_базы';

Восстановить из архива базу Testlink.

После этого надо обновить Testlink до необходимой версии.

source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.10/mysql/DB.1.9.10/step1/db_data_update.sql;

(предварительно меняем INSERT на REPLACE в db_data_update.sql)

source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.11/mysql/DB.1.9.11/step1/db_schema_update.sql;
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.11/mysql/DB.1.9.11/stepZ/z_final_step.sql;

Далее таким же образом обновить с 11 до 16 версии.

*************************

Для проверки текущей версии

select * from db_version;

*************************

для автоматической ставки :
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.10/mysql/DB.1.9.10/step1/db_data_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.11/mysql/DB.1.9.11/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.11/mysql/DB.1.9.11/stepZ/z_final_step.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.12/mysql/DB.1.9.12/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.12/mysql/DB.1.9.12/stepZ/z_final_step.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.13/mysql/DB.1.9.13/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.13/mysql/DB.1.9.13/stepZ/z_final_step.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.14/mysql/DB.1.9.14/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.14/mysql/DB.1.9.14/stepZ/z_final_step.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.15/mysql/DB.1.9.15/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.15/mysql/DB.1.9.15/stepZ/z_final_step.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.16/mysql/DB.1.9.16/step1/db_schema_update.sql
source /home/user/testlink-1.9.16-0/apps/testlink/install/sql/alter_tables/1.9.16/mysql/DB.1.9.16/stepZ/z_final_step.sql

Перенос с обновлением Bitnami Redmine

Документ без названия

Переносил и одновременно обновлял с win версии Redmine 1.x stable на Redmine 3.3.3.stable Ubuntu. Опишу как переносить на другую машину, если на ту же, то сначала все бэкапим.

1. Бэкапим старую базу MySql:

mysqldump -u root -p bitnami_redmine > redmine_backup.sql

2. На Ubuntu

cd /каталог_куда_установили/apps/redmine/htdocs/config/ database.yml

Там прописан пользователь и пароль под которым redmine подключается к mysql. Запоминаем или меняем на те, что нам нужны.

3. Копируем redmine_backup.sql на новый сервер

4. Запускаем консоль bitnami:

cd /каталог_куда_установили/
./use_redmine

5. Убиваем базу данных новой установки, создаем новую с таким же именем, но полностью пустую (в любом случае):

mysql -u root -p

drop database bitnami_redmine;
create database bitnami_redmine;
grant all privileges on bitnami_redmine.* to 'пользователь_bitnami'@'localhost' identified by 'пароль_от_базы';

Пароль от рута - это пароль от того пользователя, который был создан при установке bitnami redmine и имеет права админа( ну помните вас имя спрашивал, какой логин и потом пароль. Вот этот пароль). 'пользователь_bitnami' и 'пароль_от_базы' вы записали в пункте 3( или изменили).

6. Восстанавливаем наш бэкап в новую пустую базу

mysql -u root -p bitnami_redmine < /каталог_где_лежит/redmine_backup.sql

7. Миграция старой версии на новую:

cd /opt/bitnami/apps/redmine/htdocs
ruby bin/rake db:migrate RAILS_ENV=production

8. Копируем наши вложения из старой папки (старую папку можно посмотреть в configuration.yml / nano /opt/redmine-3.3.3-0/apps/redmine/htdocs/config/configuration.yml в attachments) в /каталог_куда_установили/apps/redmine/htdocs/files в новую( ну или из бэкапа в новую) и плагины из старой папки "vendor/plugins"
9. Проверяем, чтобы плагины поддерживали новую версию:

ruby bin/rake redmine:plugins RAILS_ENV="production"

10. Чистим кэши:

ruby bin/rake tmp:cache:clear
ruby bin/rake tmp:sessions:clear

11. Перезапускаем bitnami redmine( перед этим нужно выйти из консоли bitnami redmine:

sudo /opt/bitnami/ctlscript.sh restart

12. Автоматическое обновление коммитов с SVN
Авторизоваться в редмайн под администратором.
Перейти Администрирование - Настройки - Хранилища.
Скопировать оттуда API ключ.
В каталоге каждого СВН перейти в папку hook и создать файл post-commit со следующим содержимым:

#!/bin/sh
curl "http:///sys/fetch_changesets?key=<your service key>"

Где <your service key> это ключ из настроек редмайна.
Проверить права на доступ к этому файлу. У нас заработало только с владельцем root:subversion (775).

13. Изменение тем для redmine.
/opt/redmine-3.3.3-0/apps/redmine/htdocs/public/themes/ - скопировать каталог новой темы
Изменить тему в redmine http://10.4.12.244/redmine/settings?tab=display (Администрирование -> Настройки -> Отображение -> Тема).

среда, 31 мая 2017 г.

Создание проекта в SVN Subversion Bitnami (Redmine), настройка синхронизации и резервного копирования.

Документ без названия

1. Идем в каталог установки Bitnami_redmine:

cd /redmine_subversion/

2. Запускаем Bitnami:

sudo ./use_redmine

3. Создаем каталог проекта:

mkdir /каталог_проекта

4. Создаем проект:

svnadmin create /каталог_проекта

5. Редактируем файл для работы сихронизации старым репозиторием и новым созданным:

nano /svn/hooks/pre-revprop-change

#!/bin/sh
exit 0

6. Даем права на запуск:

chmod 755 /каталог_проекта/hooks/pre-revprop-change

7. Инициализация:

svnsync init file:///каталог_проекта http://masterrepo/svn-view

8. Синхронизация:

svnsync sync file:///каталог_проекта

9. Поменять права и владельца на каталог_проекта:

sudo chown -R www-data:subversion каталог_проекта
sudo chmod -R g+ws www-data:subversion каталог_проекта

--------------------------------------------------------------------

10. Создание резервной копии репозитория:

cd /redmine_subversion/subversion/bin
./svnadmin dump /каталог_проекта > /home/user/svn.dump

10. Создание резервной копии с архивированием:

cd /redmine_subversion/subversion/bin
./svnadmin dump /каталог_проекта | gzip -9 > /home/user/svn.dump.gz

SVN Subversion - установка и настройка.

Документ без названия

1.

sudo apt-get install subversion libapache2-svn

2. Создадим наш первый репозиторий. Отмечу, что папка для репозиториев уже должна существовать.

svnadmin create /каталог_установки/project

3. Создадим файлик с пользователями и паролями, которые смогут получить доступ к свну. У меня он лежит в /var/svn/passwd.conf

sudo htpasswd /var/svn/passwd.conf user_name

В качестве username указываем нужное имя пользователя, жмем энтер и вводим и подтверждаем пароль. После создания всех пользователей двигаемся дальше.

4.Доступ через собственный протокол (svn://)
Как только создано хранилище Subversion, вы можете настроить контроль доступа. Вы можете отредактировать файл /path/to/repos/project/conf/svnserve.conf для изменения контроля доступа. Например, для установки авторизации вы можете раскомментировать следующие строки в файле конфигурации:

# [general]
# password-db = passwd

После снятия знака комментария (#) с этих строк, вы можете поддерживать список пользователей в файле passwd. И так, редактируйте файл passwd в этом же каталоге и добавляйте новых пользователей. Синтаксис должен быть таким:
username = password

5. Теперь, чтобы подключиться к Subversion через собственный протокол svn://, с этой же машины или другой, вы можете запустить svnserver с помощью команды svnserve. Синтаксис следующий:

svnserve -d --foreground -r /path/to/repos

# -d - режим сервиса
# --foreground - запуск в фоновом режиме (полезно при отладке)
# -r - корневой каталог для обслуживания

6. проверка работы репозиториев

svn co svn://hostname/project project --username user_name

Настройка backup создание резервных копий в основную хост машину Hyper-V

Документ без названия

В Hyper-V Server не работает общий доступ на запись. Поэтому пришлось установить там ftp сервер.

1.

apt-get install curlftpfs

2. Монтируем ftp к linux серверу:

sudo curlftpfs -o user="user:password",allow_other ftp://IP_ftp /mnt/ftp

3.Добавляем монтирование в автозагрузку системы linux.
Для этого в добавляем эту строку в /etc/rc.local.

4. Создаем скрипт для запуска backup (для bitnami redmine):

nano /home/user/dump.sh

#!/bin/sh
/каталог_redmine/mysql/bin/mysqldump -u root -ppassword bitnami_redmine > /mnt/ftp/redmine_backup_$(date +%d%m%y).sql

5. Добавляем запуск скрипта в планировщик cron:

cd /etc/cron.d
nano dump

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
#Ежедневная резервная копия
00 3 * * * root /home/user/dump.sh
#Месячная резервная копия
00 4 1 * * root /home/user/dump_year.sh
#

*********************************************

Узнать запущен ли сервис cron в Ubuntu:

systemctl status cron.service

Выполните следующую команду чтобы открыть crontab текущего пользователя:

crontab -e

вторник, 30 мая 2017 г.

Сбой времени на виртуальном сервере Ubuntu.

Документ без названия

При просмотре syslog /var/log/syslog примерно каждые 5 секунд выдает логи следующего вида:

May 30 06:24:57 testlink-nalivaev systemd[1]: Time has been changed
May 30 06:24:57 testlink-nalivaev systemd[1]: apt-daily.timer: Adding 4h 17min 51.079531s random time.
May 30 06:24:57 testlink-nalivaev systemd[1]: snapd.refresh.timer: Adding 5h 15min 17.711127s random time.
May 30 06:24:57 testlink-nalivaev systemd[3586]: Time has been changed
May 30 06:25:02 testlink-nalivaev systemd[3586]: Time has been changed
May 30 06:25:02 testlink-nalivaev systemd[1]: Time has been changed
May 30 06:25:02 testlink-nalivaev systemd[1]: apt-daily.timer: Adding 5h 4min 58.783176s random time.
May 30 06:25:02 testlink-nalivaev systemd[1]: snapd.refresh.timer: Adding 5h 47min 35.140096s random time.
May 30 06:25:02 testlink-nalivaev systemd[1]: Time has been changed
May 30 06:25:02 testlink-nalivaev systemd[1]: apt-daily.timer: Adding 3h 27min 37.013226s random time.
May 30 06:25:02 testlink-nalivaev systemd[1]: snapd.refresh.timer: Adding 4h 1min 42.182590s random time.
May 30 06:25:02 testlink-nalivaev systemd[3586]: Time has been changed
May 30 06:25:07 testlink-nalivaev systemd[3586]: Time has been changed

Соответственно файл с логами забивается спамом.
Чтобы справиться с этой проблемой в параметрах VM на HYPER-V, службы интеграции, отключил "синхронизация времени".

http://admin-pawwwel.blogspot.ru/2012/10/hyper-v.html

воскресенье, 28 мая 2017 г.

Монтирования ftp директорий.

Документ без названия

Для монтирования удалённых ftp директорий будем использовать curlftpfs:

sudo aptitude install curlftpfs

И снова чтобы смонтировать достаточно одной команды:

sudo curlftpfs -o user="username:password",allow_other ftp://ftp.site.com /mnt/ftp

После -o указываются необходимые параметры. Параметр allow_other позволяет просматривать директорию не только супер пользователю. Параметр user отвечает за имя пользователя\пароль, и дальше указывается директория в которую монтируем.

Этот способ не лишён недостатков в вопросе безопасности. В частности, если посмотреть список процессов через ps -aux, то будет видно логин и пароль, поэтому можно немного обезопасить себя. Для этого, в домашней директории надо создать файл .netrc с примерно таким содержанием:

machine ftp.host.com
login ftpuser
password ftppassword

Параметры надо изменить на свои, и разрешить чтение и запись файла только текущему пользователю:

chmod 600 ~/.netrc

Один из способов добавить монтирование в автозагрузку.

sudo nano /etc/rc.local

sudo curlftpfs -o user="user:password",allow_other ftp://address /mnt/ftp