開発管理環境構築 Redmine Ubuntu MySQL Subversion Jenkins Postfix zabbix

Table of Contents

【システム構成】

  • Ubuntu Server 12.04
  • Apache 2.2.22
  • Redmine 2.0.3
  • MySQL 5.5.24
  • Subversion 1.6.17
  • Jenkins 1.481
  • Postfix 2.9.3
  • zabbix 1.8.11

【事前準備】

viの設定

sudo vi /etc/vim/vimrc

syntax on
↓
syntax off

SSHの設定 sudo vi /etc/ssh/sshd_config

PermitRootLogin yes 
↓ 
PermitRootLogin no

【バージョン確認】

  • Apache apache2ctl -v ⇒Server version: Apache/2.2.22 (Ubuntu)
  • Postfix /usr/sbin/postconf | grep mail_version ⇒mail_version = 2.9.3
  • MySQL mysql –version ⇒mysql Ver 14.14 Distrib 5.5.24
  • Subversion svn –version ⇒svn, version 1.6.17 (r1128011)

【Apacheインストール】

パッケージインストール

sudo apt-get -y install apache2

確認 http://サーバのIPアドレス/

【Postfixインストール】

パッケージインストール

sudo apt-get -y install postfix sasl2-bin mailutils

⇒[インターネットサイト]-[システムメール名:任意]-[了解]

ファイアーウォール設定

sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT

【Postfix設定】

OB25P(Outbound Port 25 Blocking)対策

sudo vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587 #sasl setting smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_sasl_tls_security_options = noanonymous

smtp_sasl_mechanism_filter = plain #tls setting smtp_use_tls = yes ===========================================================

sudo vi /etc/postfix/sasl_passwd

 [smtp.gmail.com]:587 メールアドレス:パスワード

権限変更

sudo chown root:root /etc/postfix/sasl_passwd

sudo chmod 600 /etc/postfix/sasl_passwd

sudo postmap /etc/postfix/sasl_passwd

sudo /etc/init.d/postfix restart

送信テスト

echo "test" | mail -t メールアドレス -s "test"

【Redmineインストール】

パッケージインストール

sudo apt-get -y install mysql-server libmysqlclient-dev ruby libmysql-ruby ruby-dev rubygems 

Redmineインストール

cd /usr/local/src
sudo wget http://rubyforge.org/frs/download.php/76259/redmine-2.0.3.tar.gz
sudo tar zxvf redmine-2.0.3.tar.gz -C /var/lib/
cd /var/lib/
sudo mv redmine-2.0.3 redmine
sudo gem install bundler
sudo vi /var/lib/redmine/Gemfile

以下の行をコメント化

# Optional gem for exporting the gantt to a PNG file, not supported with jruby

#platforms :mri, :mingw do # group :rmagick do

#   # RMagick 2 supports ruby 1.9

#    # RMagick 1 would be fine for ruby 1.8 but Bundler does not support

#    # different requirements for the same gem on different platforms

# gem "rmagick", ">= 2.0.0"

#  end

#end

# Database gems 

#platforms :mri, :mingw do

# group :postgresql do

# gem "pg", ">= 0.11.0"

# end

# # group :sqlite do

# gem "sqlite3"

# end

#end 
cd /var/lib/redmine bundle install

【MySQL設定】

Redmine用のユーザとデータベースを作成

sudo mysql -uroot –p

以下のコマンドを実行

create database redmine character set utf8;
create user 'ユーザ名'@localhost identified by 'パスワード';
grant all privileges on データベース名.* to 'ユーザ名'@localhost;
exit

【Redmine設定】

DB設定

cd /var/lib/redmine/config/

cp -p database.yml.example database.yml

vi database.yml

productionを以下のように変更

production:

   adapter: mysql database: データベース名

   host: localhost

   username: ユーザ名

   password: パスワード

   encoding: utf8

   rake generate_secret_token

   RAILS_ENV=production rake db:migrate

   RAILS_ENV=production rake redmine:load_default_data >ja

 ```

### 起動

cd /var/lib/redmine

ruby script/rails server webrick -e production


### 確認

http://サーバのIPアドレス:3000/

## 【ApacheとRedmine連携】
### パッケージインストール

sudo apt-get -y install apache2-dev libcurl4-gnutls-dev
sudo gem install passenger


### 実行するパスを検索

sudo find / -name passenger-install-apache2-module


### 上記の方法で表示されたパスを実行

sudo /var/lib/gems/1.8/gems/passenger-3.0.17/bin/passenger-install-apache2-module ⇒passenger.confファイルに設定する情報が出力されるので注意する必要がある


### Apacheの設定(passenger)

`sudo vi /etc/apache2/conf.d/passenger.conf(※環境によって設定値が変わる)`

以下を追加

LoadModule

passenger_module /var/lib/gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17 PassengerRuby /usr/bin/ruby1.8


### Apacheの設定(rails)
`sudo vi /etc/apache2/conf.d/rails.conf`

以下を追加

<Location /redmine>
Options -MultiViews
RailsBaseURI /redmine


### 公開領域にシンボリックリンクを設定

sudo ln -s /var/lib/redmine/public /var/www/redmine

### 起動 

sudo /etc/init.d/apache2 restart

### 確認 
http://サーバのIPアドレス/redmine
⇒admin/admin

## 【PostfixとRedmine連携】

### Redmine設定

cd /var/lib/redmine/config/

sudo cp -p configuration.yml.example configuration.yml


`sudo vi configuration.yml`

以下のように変更

default:

Outgoing emails configuration (see examples above)

  email_delivery:

  delivery_method: :smtp

  smtp_settings: enable_starttls_auto: false

  address: localhost

  port: 25

  domain: localhost

 # authentication: :login

 # user_name: redmine@example.net

 # password: "redmine"


### 再起動 

sudo /etc/init.d/apache2 restart

### Redmineテストメール 

* [管理]-[設定]-[メール通知]-[テストメールを送信]

## 【Jenkinsインストール】
### キー追加

wget -q -O – http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add –


### リストにJenkins追加

 sudo vi /etc/apt/sources.list


最後の行に追加

 deb http://pkg.jenkins-ci.org/debian binary/

sudo apt-get update


### パッケージインストール sudo apt-get -y install jenkins

### 再起動 

sudo /etc/init.d/apache2 restart


### 確認 
http://サーバのIPアドレス:8080/

## 【Subversionインストール】

### パッケージインストール 

sudo apt-get -y install subversion subversion-tools libapache2-svn


## 【Subversion設定】
### Subversion設定  

sudo vi /etc/apache2/mods-enabled/dav_svn.conf


コメントを外し、パスを変更する

<Location /svn>
DAV svn
SVNParentPath /home/svn


### リポジトリ登録

sudo mkdir /home/svn/ cd /home/svn

sudo svnadmin create repos

sudo chown -R www-data.www-data repos


### テストプロジェクト作成

cd /home sudo mkdir -p test/trunk


### モジュール登録

cd /home/test

sudo svn import http://サーバのIPアドレス/svn/repos/test -m "Initial import."


### 再起動

sudo /etc/init.d/apache2 restart

### 確認

http://サーバのIPアドレス/svn/repos

## 【RedmineとSubversion連携】

### プロジェクトにSubversionのパスを紐づける(Redmine画面内)

[プロジェクト]-[プロジェクト名]-[設定]-[リポジトリ]-[新しいリポジトリ]-[「1.Subversion情報」を入力]-[作成] 1.Subversion情報 URL :http://サーバのIPアドレス/svn/repos/test ログイン : パスワード:


## 【JenkinsとSubversion連携】
### Subversionのバージョン設定(Jenkins画面内)   

[Jenkinsの管理]-[システムの設定]-[以下を設定]-[保存]     
ワークスペースバージョン:1.6


## 【ジョブ(Subversion編)】

### [新規ジョブ作成]-[ジョブ名:]-[フリースタイル・プロジェクトのビルド]-[OK]

プロジェクト名:test

ビルド無効化:チェック

Subersion:チェック リポジトリURL:http://サーバのIPアドレス/svn/repos/test/

ローカルモジュールディレクトリ:test

チェックアウト方式: リポジトリ


### ブラウザ:(自動)

## 【Zabbixインストール】
### zabbixユーザ作成

sudo adduser zabbix ⇒zabbix

### パッケージインストール

sudo apt-get -y install mysql-client zabbix-server-mysql zabbix-frontend-php

```
⇒[zabbix-server-mysqlのデータベースをdbconfig-commonで設定しますか?:はい]-[データベースの管理権限を持つユーザのパスワード:]-[了解]-[zabbix-server-mysql用のMySQLアプリケーションパスワード:パスワード]-[了解]-[パスワードの確認:zabbix]-[了解]-[zabbix-fronted-phpが使うデータベースの種類:mysql]-[了解]-[zabbix-frontend-php用のMySQLアプリケーションパスワード:パスワード]-[了解]-[パスワードの確認:zabbix]-[了解]

パスワード変更

sudo mysql -uroot –p

以下のコマンドを実行

set password for zabbix@localhost=password('パスワード'); =========================================================== ■確認

【ZabbixとPostfix連携】

メール設定場所確認

view /etc/zabbix/zabbix_server.conf

メールスクリプト取得

cd /usr/local/src
sudo wget https://github.com/zabbix-jp/plugins/tarball/master master.tar.gz

sudo tar zxvf master -C /etc/zabbix/

cd /etc/zabbix/zabbix-jp-plugins-721e346/notification

sudo cp -rf sendmessage-smtp-php /etc/zabbix/alert.d/

メールスクリプト設定

cd /etc/zabbix/alert.d/sendmessage-smtp-php

sudo vi sendmessage_smtp_php.sh 
$MAIL_FROM = zabbix@dev;

$MAIL_FROMNAME = "";

$MAIL_SMTP_HOST = 'localhost:25';

//$mailer->SMTPAuth = true;

//$mailer->Username = $MAIL_SMTP_USER;

//$mailer->Password = $MAIL_SMTP_PASS;

テスト送信

cd /etc/zabbix/alert.d/sendmessage_smtp_php/
./sendmessage_smtp_php.sh メールアドレス 'test' 'test'

メディアタイプの設定(Zabbix画面内) [管理]-[メディアタイプ]-[Email]-[メディアタイプの作成]

説明    :postfix
タイプ   :スクリプト
スクリプト名:sendmessage_smtp_php/sendmessage_smtp_php.sh