среда, 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

пятница, 26 мая 2017 г.

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

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

1. Обновление системы.

sudo apt-get update && sudo apt-get upgrade

2. Создаем пользователя для Redmine, для этого открываем консоль и вводим команду:

sudo adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine

3. sudo visudo

4. Добавляем следующие строки

# temp - *REMOVE* after installation
redmine ALL=(ALL) NOPASSWD:ALL

Обратите внимание, что пользователь Redmine будет иметь возможность запускать команды root, но это только для упрощения последующих шагов. Удалите эту строку после установки.

5. Авторизируемся пользователем redmine и установим для него rvm:

sudo su - redmine
gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
exit

6. Разлогинились, теперь снова логинимся и устанавливаем ruby:

sudo su - redmine
rvm install 2.2.4
exit

7. Redmine

sudo su - redmine
wget http://www.redmine.org/releases/redmine-3.3.3.tar.gz
tar zxf redmine-3.3.3.tar.gz
rm redmine-3.3.3.tar.gz
ln -s /opt/redmine/redmine-3.3.3 redmine
exit

8.MySQL

sudo apt-get install mysql-server libmysqlclient-dev

9. Создаем базу данных и пользователя для нее:

sudo mysql -u root -p

CREATE DATABASE redmine character SET utf8;
CREATE user 'redmine'@'localhost' IDENTIFIED BY 'my_password'; #пароль: QAZ123
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';
exit

10. Сконфигурируем подключение к базе данных:

sudo su - redmine
cp redmine/config/database.yml.example redmine/config/database.yml

11. Редактируем конфиг Redmine для соединения с БД:

sudo nano redmine/config/database.yml

Изменяем имя пользователя и пароль:

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: my_password
encoding: utf8

12. Инициализация Redmine

sudo apt-get install libmagickcore-dev libmagickwand-dev libmysqlclient-dev

gem install bundler
cd redmine/
bundle install --without development test postgresql sqlite
rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production redmine:load_default_data
exit

Если видим ошибку при выполнении команды rake generate_secret_token:
То открываем файл зависимостей на редактирование:

nano /opt/redmine/redmine/Gemfile.lock

Находим в нем строку с htmlentities 4.3.1 и заменяем на 4.3.4

Если встречаем ошибку:

redmine@nout:~/redmine$ rake generate_secret_token
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead.

Находим в /opt/redmine/redmine/Gemfile.lock, rake 11.1.2 (в моем случае) и заменяем на 10.4.2)

Установка Phusion Passenger

13. Добавление репозитория:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
sudo apt-get install apt-transport-https ca-certificates

14. Открываем конфиг файл репозитория:

sudo nano /etc/apt/sources.list.d/passenger.list

15.Добавляем в /etc/apt/sources.list.d/passenger.list адрес репозитория:

deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main

16. Прописываем пользователя и права доступа к файлу:

sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list

17. Устанавливаем сам Phusion Passenger:

sudo apt-get update
sudo apt-get install libapache2-mod-passenger

18. Apache

sudo apt-get install apache2

19. Конфигурируем Passenger:

sudo nano /etc/apache2/sites-available/000-default.conf

20. Добавляем следующий блок в конфиг файл:

<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

21. Включаем passenger, добавляем ссылку на redmine и перезапускаем apache2:

sudo a2enmod passenger
sudo ln -s /opt/redmine/redmine/public/ /var/www/html/redmine
sudo service apache2 restart

22. Генерируем новый секретный ключ, подчищаем сессии и кеш:

sudo su - redmine
cd redmine
rake generate_secret_token
rake db:migrate RAILS_ENV=production
rake redmine:plugins:migrate RAILS_ENV=production
rake tmp:cache:clear
rake tmp:sessions:clear
exit

пятница, 19 мая 2017 г.

Настройка Samba в Ubuntu 16.04

Документ без названия Документ без названия 1. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:

apt-get install -y samba samba-common python-glade2 system-config-samba

2. Когда все будет установлено, можно переходить к настройке.
Сначала создайте резервную копию оригинального файла конфигурации Samba:

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

3. После создания резервной копии, создайте свой файл конфигурации, этой командой:

nano /etc/samba/smb.conf

Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = smb
security = user
map to guest = bad user
name resolve order = bcast host
wins support = no
dns proxy = no

Рассмотрим подробнее что значат эти строки.
workgroup - рабочая группа, как уже говорилось должна одинакова на всех машинах
netbios name - имя компьютера, которое будет отображаться в Windows
security - по умолчанию выполнять аутентификацию на уровне пользователя
name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный.
Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.
Общий доступ к папке Ubuntu

4. Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.
Создайте папку, к которой будем открывать доступ, например:

mkdir -p /samba/allaccess

5. После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
chmod -R 0755 allaccess
chown -R nobody:nogroup allaccess/

6. Следующим шагом будет описать папку allaccess в файле настройки samba:

[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = smb
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
[AllAccess]
path = /samba/allaccess
browsable =yes
writable = yes
guest ok = yes
read only = no

7. Чтобы применить изменения, перезапустите сервер Samba:

service smbd restart

Настройка системы и Samba через Web-интерфейс

8.

wget https://prdownloads.sourceforge.net/webadmin/webmin_1.831_all.deb

9. Для установки webim потребуются некоторые зависимые пакеты:

apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions

10. Ну и остается установка:

dpkg --install webmin_1.831_all.deb

Теперь можно заходить в веб-интерфейс по адресу "https://(ip сервера):10000" или "https://(имя сервера):10000":