Разлика между версии на „Инсталиране на Snorby под Ubuntu Server“
(7 intermediate revisions by the same user not shown) | |||
Ред 1: | Ред 1: | ||
− | [[Category: | + | [[Category:Servers]] |
Процедурата е описана за Ubuntu Server 17.04 | Процедурата е описана за Ubuntu Server 17.04 | ||
+ | ''Необходимо е да има инсталиран LAMP.'' | ||
=Обновяване на Ubuntu= | =Обновяване на Ubuntu= | ||
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
Ред 10: | Ред 11: | ||
sudo apt install imagemagick wkhtmltopdf ruby libyaml-dev libxml2-dev libxslt1-dev zlib1g-dev build-essential openssl libssl-dev libmysqlclient-dev libreadline6-dev ruby-bundler ruby-dev postgresql-server-dev-all apache2-dev libcurl4-openssl-dev | sudo apt install imagemagick wkhtmltopdf ruby libyaml-dev libxml2-dev libxslt1-dev zlib1g-dev build-essential openssl libssl-dev libmysqlclient-dev libreadline6-dev ruby-bundler ruby-dev postgresql-server-dev-all apache2-dev libcurl4-openssl-dev | ||
</pre> | </pre> | ||
− | =Клониране на изходния код на Snorby= | + | =Клониране на изходния код на Snorby и компилиране на системата= |
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
cd /var/www/ | cd /var/www/ | ||
Ред 46: | Ред 47: | ||
sudo service mysql restart | sudo service mysql restart | ||
</pre> | </pre> | ||
+ | =Създаване и редактиране на конфигурационни файлове за Snorby= | ||
+ | ==Файл database.yml== | ||
+ | Копира се примерния файл ''/var/www/snorby/config/database.yml.example'' в ''/var/www/snorby/config/database.yml'': | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo cp /var/www/snorby/config/database.yml.example /var/www/snorby/config/database.yml | ||
+ | </pre> | ||
+ | Редактира се ''/var/www/snorby/config/database.yml'' и съдържанието спрямо примера следва да бъде: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | # Snorby Database Configuration | ||
+ | # | ||
+ | # Please set your database password/user below | ||
+ | # NOTE: Indentation is important. | ||
+ | # | ||
+ | snorby: &snorby | ||
+ | adapter: mysql | ||
+ | username: snorby | ||
+ | password: "snorby" | ||
+ | host: localhost | ||
+ | development: | ||
+ | database: snorby | ||
+ | <<: *snorby | ||
+ | test: | ||
+ | database: snorby | ||
+ | <<: *snorby | ||
+ | production: | ||
+ | database: snorby | ||
+ | <<: *snorby | ||
+ | </pre> | ||
+ | ==Файл snorby_config.yml== | ||
+ | Копира се основния конфигурационен файл ''/var/www/snorby/config/snorby_config.yml.example'' в ''/var/www/snorby/config/snorby_config.yml'': | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo cp /var/www/snorby/config/snorby_config.yml.example /var/www/snorby/config/snorby_config.yml | ||
+ | </pre> | ||
+ | Препоръчително е в този файл да промените част от параметрите (в примера са оставени по подразбиране). | ||
+ | =Автоматично конфигуриране на Snorby= | ||
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo bundle exec rake snorby:setup | ||
+ | </pre> | ||
+ | =Конфигуриране на Ubuntu за автоматично стартиране на Snorby Worker= | ||
+ | Създава се файл ''/lib/systemd/system/snorby_worker.service''. | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo nano /lib/systemd/system/snorby_worker.service | ||
+ | </pre> | ||
+ | Съдържанието на ''/lib/systemd/system/snorby_worker.service'' спрямо примреа е: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | [Unit] | ||
+ | Description=Snorby Worker Daemon | ||
+ | Requires=apache2.service | ||
+ | After=syslog.target network.target apache2.service | ||
+ | |||
+ | [Service] | ||
+ | Type=forking | ||
+ | WorkingDirectory=/var/www/snorby | ||
+ | ExecStart=/usr/bin/ruby script/delayed_job start | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
</pre> | </pre> | ||
+ | |||
+ | Добавя се новата услуга: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo systemctl enable snorby_worker | ||
+ | systemctl status snorby_worker.service | ||
+ | </pre> | ||
+ | =Инсталиране на Passеnger= | ||
+ | По време на инсталацията на passanger е необходимо (спрямо примера) да се посочи само Ruby. | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo gem install passenger | ||
+ | sudo passenger-install-apache2-module | ||
+ | </pre> | ||
+ | |||
+ | След приключване на етпите от инсталационната процедура в конзолата се извеждат данни за необходимите промени в конфигурацията на Apache, например: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so | ||
+ | <IfModule mod_passenger.c> | ||
+ | PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8 | ||
+ | PassengerDefaultRuby /usr/bin/ruby2.3 | ||
+ | </IfModule> | ||
+ | </pre> | ||
+ | |||
+ | Създава се файл ''/etc/apache2/mods-available/passenger.load'': | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo nano /etc/apache2/mods-available/passenger.load | ||
+ | </pre> | ||
+ | |||
+ | Във файла ''/etc/apache2/mods-available/passenger.load'' се добавя: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so | ||
+ | </pre> | ||
+ | |||
+ | Създава се файл ''/etc/apache2/mods-available/passenger.conf'': | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo nano /etc/apache2/mods-available/passenger.conf | ||
+ | </pre> | ||
+ | |||
+ | Във файла ''/etc/apache2/mods-available/passenger.conf'' се записва: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | <IfModule mod_passenger.c> | ||
+ | PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8 | ||
+ | PassengerDefaultRuby /usr/bin/ruby2.3 | ||
+ | </IfModule> | ||
+ | </pre> | ||
+ | |||
+ | Активира се новия Apache модул и сървъра се рестартира: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo a2enmod passenger | ||
+ | sudo service apache2 restart | ||
+ | </pre> | ||
+ | |||
+ | =Конфигуриране на виртуален хост за Apache= | ||
+ | Създава се файл ''nano /etc/apache2/sites-available/snorby.conf'': | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo nano /etc/apache2/sites-available/snorby.conf | ||
+ | </pre> | ||
+ | |||
+ | Във фаила ''nano /etc/apache2/sites-available/snorby.conf'' се записва: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | <virtualhost *:80> | ||
+ | ServerName snorby.ict-academy.bg | ||
+ | DocumentRoot /var/www/snorby/public | ||
+ | <directory "/var/www/snorby/public"> | ||
+ | AllowOverride all | ||
+ | Order deny,allow | ||
+ | Allow from all | ||
+ | Options -MultiViews | ||
+ | </directory> | ||
+ | </virtualhost> | ||
+ | </pre> | ||
+ | |||
+ | Премахва се конфигурацияна по подразбиране и Apache сървъра се рестартира: | ||
+ | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
+ | sudo a2ensite snorby.conf | ||
+ | sudo a2dissite 000-default | ||
+ | sudo service apache2 restart | ||
+ | </pre> | ||
+ | =Проверка на системата= | ||
+ | Ако гореописаната процедура е преминала успешно отворете в браузър IP адреса на сървъра и се свържете в Snorby със следния профил: | ||
+ | Питребител: '''snorby@example.com''' | ||
+ | Парола: '''snorby''' |
Текуща версия към 09:25, 14 септември 2017
Процедурата е описана за Ubuntu Server 17.04 Необходимо е да има инсталиран LAMP.
Съдържание
- 1 Обновяване на Ubuntu
- 2 Инсталиране на необходимите библиотеки и пакети
- 3 Клониране на изходния код на Snorby и компилиране на системата
- 4 Конфигуриране на MySQL
- 5 Създаване и редактиране на конфигурационни файлове за Snorby
- 6 Автоматично конфигуриране на Snorby
- 7 Конфигуриране на Ubuntu за автоматично стартиране на Snorby Worker
- 8 Инсталиране на Passеnger
- 9 Конфигуриране на виртуален хост за Apache
- 10 Проверка на системата
Обновяване на Ubuntu
sudo apt update sudo apt upgrade
Инсталиране на необходимите библиотеки и пакети
sudo apt install imagemagick wkhtmltopdf ruby libyaml-dev libxml2-dev libxslt1-dev zlib1g-dev build-essential openssl libssl-dev libmysqlclient-dev libreadline6-dev ruby-bundler ruby-dev postgresql-server-dev-all apache2-dev libcurl4-openssl-dev
Клониране на изходния код на Snorby и компилиране на системата
cd /var/www/ sudo git clone http://github.com/Snorby/snorby.git cd snorby sudo bundle install
Конфигуриране на MySQL
Необходимо е да се осигури отдалечен достъп до MySQL сървъра. В примерът не е дефиниран точен адрес на отдалечена система, от която ще може да се работи с базите данни. От съображения за сигурност е препоръчително това да бъде направено.
sudo ufw allow mysql
Редактира се файл /etc/mysql/mysql.conf.d/mysqld.cnf и се задава:
bind-address = 0.0.0.0
Създава се база данни и потребител за Snorby, които за примера са: База данни: snorby Потребител: snorby Парола: snorby
Препоръчително е в реална конфигурация да се използва надеждна парола.
mysql -u root -p CREATE DATABASE snorby; CREATE USER 'snorby'@'%' IDENTIFIED BY 'snorby'; GRANT ALL PRIVILEGES ON snorby.* TO 'snorby'@'%'; FLUSH PRIVILEGES; quit
Рестартира се MySQL сървъра:
sudo service mysql restart
Създаване и редактиране на конфигурационни файлове за Snorby
Файл database.yml
Копира се примерния файл /var/www/snorby/config/database.yml.example в /var/www/snorby/config/database.yml:
sudo cp /var/www/snorby/config/database.yml.example /var/www/snorby/config/database.yml
Редактира се /var/www/snorby/config/database.yml и съдържанието спрямо примера следва да бъде:
# Snorby Database Configuration # # Please set your database password/user below # NOTE: Indentation is important. # snorby: &snorby adapter: mysql username: snorby password: "snorby" host: localhost development: database: snorby <<: *snorby test: database: snorby <<: *snorby production: database: snorby <<: *snorby
Файл snorby_config.yml
Копира се основния конфигурационен файл /var/www/snorby/config/snorby_config.yml.example в /var/www/snorby/config/snorby_config.yml:
sudo cp /var/www/snorby/config/snorby_config.yml.example /var/www/snorby/config/snorby_config.yml
Препоръчително е в този файл да промените част от параметрите (в примера са оставени по подразбиране).
Автоматично конфигуриране на Snorby
sudo bundle exec rake snorby:setup
Конфигуриране на Ubuntu за автоматично стартиране на Snorby Worker
Създава се файл /lib/systemd/system/snorby_worker.service.
sudo nano /lib/systemd/system/snorby_worker.service
Съдържанието на /lib/systemd/system/snorby_worker.service спрямо примреа е:
[Unit] Description=Snorby Worker Daemon Requires=apache2.service After=syslog.target network.target apache2.service [Service] Type=forking WorkingDirectory=/var/www/snorby ExecStart=/usr/bin/ruby script/delayed_job start [Install] WantedBy=multi-user.target
Добавя се новата услуга:
sudo systemctl enable snorby_worker systemctl status snorby_worker.service
Инсталиране на Passеnger
По време на инсталацията на passanger е необходимо (спрямо примера) да се посочи само Ruby.
sudo gem install passenger sudo passenger-install-apache2-module
След приключване на етпите от инсталационната процедура в конзолата се извеждат данни за необходимите промени в конфигурацията на Apache, например:
LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8 PassengerDefaultRuby /usr/bin/ruby2.3 </IfModule>
Създава се файл /etc/apache2/mods-available/passenger.load:
sudo nano /etc/apache2/mods-available/passenger.load
Във файла /etc/apache2/mods-available/passenger.load се добавя:
LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so
Създава се файл /etc/apache2/mods-available/passenger.conf:
sudo nano /etc/apache2/mods-available/passenger.conf
Във файла /etc/apache2/mods-available/passenger.conf се записва:
<IfModule mod_passenger.c> PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.8 PassengerDefaultRuby /usr/bin/ruby2.3 </IfModule>
Активира се новия Apache модул и сървъра се рестартира:
sudo a2enmod passenger sudo service apache2 restart
Конфигуриране на виртуален хост за Apache
Създава се файл nano /etc/apache2/sites-available/snorby.conf:
sudo nano /etc/apache2/sites-available/snorby.conf
Във фаила nano /etc/apache2/sites-available/snorby.conf се записва:
<virtualhost *:80> ServerName snorby.ict-academy.bg DocumentRoot /var/www/snorby/public <directory "/var/www/snorby/public"> AllowOverride all Order deny,allow Allow from all Options -MultiViews </directory> </virtualhost>
Премахва се конфигурацияна по подразбиране и Apache сървъра се рестартира:
sudo a2ensite snorby.conf sudo a2dissite 000-default sudo service apache2 restart
Проверка на системата
Ако гореописаната процедура е преминала успешно отворете в браузър IP адреса на сървъра и се свържете в Snorby със следния профил: Питребител: snorby@example.com Парола: snorby