RVMでRubyをインストール

Rubyのバージョン管理RVMをつかってcentosrubyをインストールしてみました。

RVMのインストール

$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable

パスの追加

export PATH=$PATH:/usr/local/rvm/bin/

~/.bashrcに書くとコマンドを打つ手間が省けます

Rubyをインストール

$ rvm install ruby-2.1.1
$ rvm install ruby-1.9.2-head

Rubyを使う

$ rvm use ruby-2.1.1

$ ruby -v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]

 無事インストールできました!

 

コマンド

インストールできるrubyのバージョン表示

$ rvm list -r

トラブルシューティング

エラー1

ERROR: Could not find 'which' command, make sure it's available first before continuing installation.

対処法:whichコマンドをインストール

$ yum install which

エラー2

In case of problems: http://rvm.io/help and https://twitter.com/rvm_io

 

  * WARNING: you are missing '/dev/fd' it is important for shell scripting used by RVM,

    You can fix it on most linux systems with:

 

      ln -sf /proc/self/fd /dev/fd

対処法:リンクを張る

$ ln -sf /proc/self/fd /dev/fd

エラー3

++ printf %b 'Error installing EPEL, it is required for libyaml-devel,

either there was an error installing EPEL package,

or there was problem checking if libyaml-devel is available / installed.\n'

Error installing EPEL, it is required for libyaml-devel,

either there was an error installing EPEL package,

or there was problem checking if libyaml-devel is available / installed.

++ return 127

Requirements installation failed with status: 127.

対処法:libyaml-develをインストール

$ yum install libyaml-devel

エラー4

bash-4.1# yum install libyaml-devel

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: ftp.iij.ad.jp

* extras: ftp.iij.ad.jp

* updates: ftp.iij.ad.jp

Setting up Install Process

No package libyaml-devel available.

Error: Nothing to do

 対処法:epelのリポジトリを追加

$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

エラー5

# rvm use ruby-1.9.2-head

 

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

 

You need to change your terminal emulator preferences to allow login shell.

Sometimes it is required to use `/bin/bash --login` as the command.

Please visit https://rvm.io/integration/gnome-terminal/ for a example.

対処法1:ログインしなおす

/bin/bash --login

対処法2:設定を読み込む

source "/usr/local/rvm/scripts/rvm"

http://stackoverflow.com/questions/9336596/rvm-installation-not-working-rvm-is-not-a-function

エラー6

Warning! Requested ruby installation which requires another ruby available - installing one first.

 

To proceed rvm requires a ruby-1.9|ruby-2 compatible ruby is installed.

We attempted to install ruby automatically but it failed.

Please install it manually (or a compatible alternative) to proceed. 

対処法:2.1.1を先に入れる 

rvm install ruby-2.1.1

 

更新履歴

インストール手順が変わっていたので修正しました。(2015/02/14)

インストールできるrubyのバージョンを表示するコマンドを追加(2015/02/14)

centOSでubuntu環境のテストをするDocker

Dockerを使って実現します。

DockerはVMwareVirtualBoxの用に仮想環境を作れるツールです。

詳しくはdockerで検索してください。わかりやすい記事がたくさん出てきます。

第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog

これから始める「DockerでかんたんLAMP環境 for CentOS」 - さくらのナレッジ

やりたいことは

  1. dockerでubuntuの仮想環境を作る
  2. その仮想環境でテストの実行する

です。

Dockerをインストール

# epelのレポジトリを追加
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release-6-8.noarch.rpm


# yumからインストール
$ sudo yum -y install docker-io
$ sudo service docker start

Ubuntuのイメージを取得

# ubuntuのイメージを取得
$ sudo docker pull ubuntu

# ついでにcentosのイメージを取得
$ sudo docker pull centos

Dockerfileの作成

デフォルトのubuntuのイメージではrubyが使えないので、rubyをインストールしたubuntuイメージを作成します。

ubuntu用のDockerfile

$ vim ubuntu-13.10/Dockerfile

# ubuntu

FROM ubuntu:13.10

 

# author

MAINTAINER kashifuji

 

# workspace

WORKDIR /home/jenkins/docker/

 

# env

ENV HOME /home/jenkins/docker/

ENV PATH $PATH:/home/jenkins/docker/.rbenv/bin

 

# install git

RUN sudo apt-get install git-core -y

RUN sudo apt-get install curl -y

RUN sudo apt-get install gcc -y

RUN sudo apt-get install build-essential -y

RUN sudo apt-get install libssl-dev -y

 

# install rbenv

RUN git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

RUN eval "$(rbenv init -)"

RUN git clone https://github.com/sstephenson/ruby-build.git  ~/.rbenv/plugins/ruby-build

RUN cd ~/.rbenv/plugins/ruby-build/; pwd; ./install.sh

RUN rbenv install 2.1.1

 

# for rails

RUN sudo apt-get install libsqlite3-dev -y

 

# added test file

ADD test.sh /home/jenkins/docker/test.sh

centOS用のDockerfile

vim centos-6.4/Dockerfile

# centos

FROM centos:6.4

 

# author

MAINTAINER kashifuji

 

# workspace

WORKDIR /home/jenkins/docker/

 

# env

ENV HOME /home/jenkins/docker/

ENV PATH $PATH:/home/jenkins/docker/.rbenv/bin

 

# install git

RUN yum install git -y

RUN yum install gcc -y

RUN yum install openssl-devel openssl -y

 

# install rbenv

RUN git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

RUN eval "$(rbenv init -)"

RUN git clone https://github.com/sstephenson/ruby-build.git  ~/.rbenv/plugins/ruby-build

RUN cd ~/.rbenv/plugins/ruby-build/; pwd; ./install.sh

RUN rbenv install 2.1.1

 

# for rails

RUN yum install sqlite-devel -y

RUN yum install gcc-c++ -y

 

# added test file

 

ADD test.sh /home/jenkins/docker/test.sh

イメージの作成

ubuntuテスト環境のイメージの作成

sudo docker build -t kashi/ubuntu-13.10 ./setup/ubuntu-13.10/

centosテスト環境のイメージの作成

$ sudo docker build -t kashi/centos-6.4 ./centos-6.4/ 

イメージの確認

$ sudo docker images

REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

kashi/centos-6.4     latest              3741fb61bea0        26 minutes ago      905.5 MB

kashi/ubuntu-13.10   latest              64097b639bf1        39 minutes ago      490.6 MB

 ちゃんとイメージができています。

ubuntu環境にログイン

ログイン

$ sudo docker run -i -t kashi/ubuntu-13.10 /bin/bash

OSを確認する

# lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 13.10

Release:        13.10

Codename:       saucy

Ubuntuです!

rubyも使えるか確認

rbenvの設定を何もしてないのでrubyがないと怒られる

# ruby -v

bash: ruby: command not found

rbenvの設定をする

# eval "$(rbenv init -)"

# rbenv local 2.1.1

# ruby -v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux

 rubyも使えました!

ちなみに一度ログアウトするとコンテナが破棄されるので、rbenvを設定する前の状態に戻ります。

ログアウトする
# exit

exit

ログインしなおす

$ sudo docker run -i -t kashi/ubuntu-13.10 /bin/bash

rbenvを設定する前の状態になっている

# ruby -v

bash: ruby: command not found

※ログインとかログアウトは馴染みやすいので勝手にそう言ってます。

 

設定を保持しておきたいなら、Dockerfileに書くか、commitをしてイメージにすると可能です。

# docker commit CONTAINER ID レポジトリ
$ sudo docker commit 3b45d4eef673 kashi/ubuntu-13.10

 

CONTAINER IDはログイン中にdocker psを実行するかdocker ps -aで調べられます。

$ sudo docker ps

CONTAINER ID        IMAGE                           COMMAND             CREATED             STATUS              PORTS               NAMES

3b45d4eef673        kashi/ubuntu-13.10:latest   /bin/bash           6 minutes ago       Up 6 minutes                            hopeful_lumiere

 

$ sudo docker ps -a

CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS               NAMES

3b45d4eef673        kashi/ubuntu-13.10:latest   /bin/bash              7 minutes ago       Up 7 minutes                            hopeful_lumiere

テストの実行 

作成したイメージを使ってテストをします。

# ubuntu環境でテスト

sudo docker run -t -v `pwd`/:/var/volume:rw kashi/ubuntu-13.10 /bin/bash test.sh

# centOS環境でテスト
$ sudo docker run -t -v `pwd`/:/var/volume:rw kashi/centos-6.4 /bin/bash test.sh

↑のコマンドはこんな動きをしてます

1.kashi/ubuntu-13.10のイメージを使ってコンテナを作成

2.コンテナ内で/bin/bash test.shを実行

 

jenkinsも一緒に使うともっと便利で、自動で環境を作ってテストしてくれます。

f:id:katashiyo515:20140413223311j:plain

疑問点

作ったimageファイルをpushできそうなんですが、どうやってpush先を設定するんだろう。。

あとCentOS6.5とかdocker searchででないOSは使えないのだろうか。。

参考

http://docs.docker.io/en/latest/installation/rhel/

第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog

Dockerを使ってJenkinsのジョブごとにテスト実行環境を分離する - orangain flavor

docker のボリュームオプションを使った(Amazon Linux で docker 使えた!) - ようへいの日々精進 XP

memorycraft: Dockerってなんじゃ?(Dockerfileでビルド)

CentOS 6.5 で Docker を使ってみる | CUBE SUGAR STORAGE

CentOSにEPELリポジトリを追加する - Qiita

Docker基礎+docker0.9, 0.10概要

OpenSSLのHeartbleedバグ対応

詳しくはこちらを参照。

CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ - めもおきば

Heartbleed Bug

CentOS6.5はopensslのバージョンをopenssl-1.0.1e-16.el6_5.7以上にする必要があります。

opensslのバージョンを上げる

$ openssl version

$ yum list updates

$ sudo yum update openssl

# 再起動

$ sudo reboot

# 確認

$ yum list installed | grep openssl

rbenvの対応

opensslのエクステンションをbuildしなおしするため、rubyを入れなおします。
 

#ruby-buildを最新化

$ cd .rbenv/plugins/ruby-build/

$ git fetch

$ git pull

# ビルドし直す方法がわからなかったのでrubyを入れ直し

$ rbenv versions

  1.9.3-rc1

  2.0.0-p247

  2.1.1

$ rbenv uninstall 1.9.3-rc1

$ rbenv uninstall 2.0.0-p247

$ rbenv uninstall 2.1.1

$ cat 41808.patch | rbenv install --patch 1.9.3-rc1

$ cat 41808.patch | rbenv install --patch 2.0.0-p247

$ rbenv install 2.1.1

ソースコードからRubyコンパイルした場合

rbenvと同様にopensslをコンパイルし直し

$ cd ruby-1.9.3-p545/ext/openssl

$ ruby extconf.rb

$ sudo make install

rubyを使ったプログラムの再起動をしたらおしまい。

SSLの証明書を作るなどしていたら別途対応が必要。詳しくはここが参考になります。

参考

OpenSSL Severe Vulnerability in TLS Heartbeat Extension (CVE-2014-0160)

CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ - めもおきば

Heartbleed Bug

 

rails_best_practicesでrailsのコードチェック

テストのカバレッジを出すためのgemを探していたら、rails_best_practicesというのを見つけたので使ってみました。
 

rails_best_practicesとは

rails_best_practices is a code metric tool to check the quality of rails codes

コード解析をしてくれるツールのようです。

 

便利そう。

 

物は試しということで、インストールして使ってみます。

インストール

gemなのでgem installかGemfileに記述します。
テストで使うのでgroupはtestにしました。

$ vim Gemfile


gem "rails_best_practices", :group => :test

$ bundle install

実行

コマンドラインから実行します。

bundle exec rails_best_practices .

結果

$ bundle exec rails_best_practices .
Source Codes: |================================================================|
C:/Users/hogehoge/git/test/app/helpers/con1_helper.rb:1 - remove empty helpers
 
Please go to http://rails-bestpractices.com to see more useful Rails Best Practices.
 
Found 1 warnings.
-----------------------------------
app/helpers/con1_helper.rbは使ってないので消しなさいと出ました。
 
 
jenkins上で実行するとこんな感じです。
テストは通ってますが、jenkinsおじさんはお怒りです。

f:id:katashiyo515:20140406151446j:plain

 

修正

app/helpers/con1_helper.rbを削除して再度コードチェック

$ bundle exec rails_best_practices .

Source Codes: |================================================================|

 

Please go to http://rails-bestpractices.com to see more useful Rails Best Practices.

 

No warning found. Cool!

 

Cool! 

 

jenkinsおじさんもCoolです!

f:id:katashiyo515:20140406151604j:plain

 

参考資料

The Ruby Toolbox - Code Metrics

railsbp/rails_best_practices · GitHub

 

rbenvで複数バージョンのRubyを使う

rbenvを使ってruby 1.9.3-rc1、2.0.0-p247、2.1.1を使い分けられるようにします。

■rbenvのインストール

rbenv本体をインストール

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 

PATHの設定

$ vim ~/.bash_profile

# rbenv

export PATH=$PATH:$HOME/.rbenv/bin

eval "$(rbenv init -)"

 

確認

$ type rbenv

rbenv is a function

ruby-buildプラグインをインストール 

$ git clone https://github.com/sstephenson/ruby-build.git  ~/.rbenv/plugins/ruby-build

$ cd ~/.rbenv/plugins/ruby-build/
$ sudo ./install.sh

インストールしないとrbenv installコマンドが使えません。

$ rbenv install
rbenv: no such command `install'

■インストール

2.1.1のインストール

$ rbenv install 2.1.1

すんなり入りました。

 1.9.3のインストール

rbenv install 1.9.3-rc

ossl_pkey_ec.c:761: 警告: assignment makes pointer from integer without a cast

ossl_pkey_ec.c:815: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function)

ossl_pkey_ec.c:815: error: (Each undeclared identifier is reported only once

ossl_pkey_ec.c:815: error: for each function it appears in.)

 

opensslのエラーでインストールできないらしいので、パッチを使ってインストールします。

このバージョンで修正されているらしい

$ curl -fsSL https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/41808/diff?format=diff > 41808.patch

 
ChangeLogのところを手動で削除します

$ vim 41808.patch

 出来上がったパッチファイル

 $ cat 41808.patch

===================================================================
--- ext/openssl/ossl_pkey_ec.c  (revision 41807)
+++ ext/openssl/ossl_pkey_ec.c  (revision 41808)
@@ -762,8 +762,10 @@
                 method = EC_GFp_mont_method();
             } else if (id == s_GFp_nist) {
                 method = EC_GFp_nist_method();
+#if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m_simple) {
                 method = EC_GF2m_simple_method();
+#endif
             }
 
             if (method) {
@@ -817,8 +819,10 @@
 
             if (id == s_GFp) {
                 new_curve = EC_GROUP_new_curve_GFp;
+#if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m) {
                 new_curve = EC_GROUP_new_curve_GF2m;
+#endif
             } else {
                 ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
             }
Index: test/openssl/test_pkey_ec.rb
===================================================================
--- test/openssl/test_pkey_ec.rb        (revision 41807)
+++ test/openssl/test_pkey_ec.rb        (revision 41808)
@@ -7,28 +7,28 @@
     @data1 = 'foo'
     @data2 = 'bar' * 1000 # data too long for DSA sig
 
-    @group1 = OpenSSL::PKey::EC::Group.new('secp112r1')
-    @group2 = OpenSSL::PKey::EC::Group.new('sect163k1')
-    @group3 = OpenSSL::PKey::EC::Group.new('prime256v1')
+    @groups =
+    @keys =
 
-    @key1 = OpenSSL::PKey::EC.new
-    @key1.group = @group1
-    @key1.generate_key
+    OpenSSL::PKey::EC.builtin_curves.each do |curve, comment|
+      group = OpenSSL::PKey::EC::Group.new(curve)
 
-    @key2 = OpenSSL::PKey::EC.new(@group2.curve_name)
-    @key2.generate_key
+      key = OpenSSL::PKey::EC.new(group)
+      key.generate_key
 
-    @key3 = OpenSSL::PKey::EC.new(@group3)
-    @key3.generate_key
-
-    @groups = [@group1, @group2, @group3]
-    @keys = [@key1, @key2, @key3]
+      @groups << group
+      @keys << key
+    end
   end
 
   def compare_keys(k1, k2)
     assert_equal(k1.to_pem, k2.to_pem)
   end
 
+  def test_builtin_curves
+    assert(!OpenSSL::PKey::EC.builtin_curves.empty?)
+  end
+
   def test_curve_names
     @groups.each_with_index do |group, idx|
       key = @keys[idx]

 パッチを使ってインストール

 cat 41808.patch | rbenv install --patch 1.9.3-rc1

今度はインストールできました。

 

エラーが出る場合はyumで該当のものを入れるとよさげです。

/home/kashifuji/.rbenv/plugins/ruby-build/bin/ruby-build: line 849: patch: コマンドが見つかりません

$ sudo yum install patch
$ sudo yum install svn
$ sudo yum install autoconf
$ sudo yum install byacc
$ sudo yum install sqlite-devel
$ sudo yum install zlib-devel
$ sudo yum install openssl-devel
$ sudo yum install libyaml-devel
$ sudo yum install ImageMagick-devel
$ sudo yum install mysql-devel

ほかのバージョンも同じ手順でインストール

$ cat 41808.patch | rbenv install --patch 2.0.0-p247
$ cat 41808.patch | rbenv install --patch 1.9.3-p448

rbenvでrubyを切り替える

 

バージョンの確認
$ rbenv versions
* system (set by /home/kashifuji/.rbenv/version)
  1.9.3-p448
  1.9.3-rc1
  2.0.0-p247
  2.1.1
 
バージョンの切り替え
$ rbenv local 1.9.3-rc1
$ ruby  -v
ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux]

$ rbenv local 2.0.0-p247
$ ruby  -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
$ rbenv local 2.1.1
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
 
$ rbenv  local --unset
$ ruby -v
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-linux]
 

トラブルシューティング

1.rbenv install 2.1.1でインストール時にMissing the OpenSSL lib?と出た場合
$ rbenv install 2.1.1
BUILD FAILED
 
Inspect or clean up the working tree at /tmp/ruby-build.20140511065604.7388
Results logged to /tmp/ruby-build.20140511065604.7388.log
 
Last 10 log lines:
                              io-console 0.4.2
                              json 1.8.1
                              minitest 4.7.5
                              psych 2.0.3
                              rake 10.1.0
                              rdoc 4.1.0
                              test-unit 2.1.1.0
installing rdoc:              /home/kashifuji/.rbenv/versions/2.1.1/share/ri/2.1.0/system
installing capi-docs:         /home/kashifuji/.rbenv/versions/2.1.1/share/doc/ruby
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

→  openssl-develをインストールするといいです。

$ sudo yum install openssl-devel

2. pachをつけて実行したときにエラーになった場合

$ cat 41808.patch | rbenv install --patch 1.9.3-rc1

Installing ruby-1.9.3-rc1...

 

/home/kashifuji/.rbenv/plugins/ruby-build/bin/ruby-build: line 852: patch: command not found

→ pachコマンドをインストールします

$ sudo yum install patch

参考資料

 

目次

目次です。

Ruby

  - インストール

  - rbenvで複数バージョンのRubyを使う

     - RVMでRubyをインストール

  - Gem

     - centOS6.4にrail4をいれる

     - rails_best_practicesでrailsのコードチェック

     - xmlのパースがしたい!nokogiri

     - RabbitMQでメッセージキューイングシステムを実現する

  - Redmine

     - centOSにredmineをインストールする

     - redmineとgithubの連携

     - redmineの自動バックアップ 

DB

  - MySQLのインストール

  - CentOSにOracleを入れる

  - Cassandraを動かす

  - LevelDBをつかってみた

  - MongoDBインストール

  - Riakのめも

RaspberryPi 

 - Raspberry Piで電子工作

 - Raspberry PiでLEDをチカチカさせる

 - Raspberry Piでボタンを押してLチカさせる

 - Raspberry Piで数字の1を表示する

 - Raspberry Piで数字を表現する

 - Raspberry Piでリアルアクセスカウンターを作る

 - Raspberry Piで赤外線受信

環境

  - centOSでubuntu環境のテストをするDocker

  - vagrantで開発環境を整える

  - オフライン環境でもvagrantを使って開発がしたい

  - vagrantでやり直しを可能にする

  - gitlabの構築

  - logstashで不正アクセスのログを集める

  - HAProxyでロードバランシング

   - chef

    - ChefServerによるサーバー管理

    - ChefSoloの使い方

    - KnifeSoloを使ってサーバー構築

    - ChefServerでjenkins構築

    - chefでユーザ作成    

Windowsアプリ

  - チャームの設定ボタンに項目を追加する方法

 

redmineとgithubの連携

 

gituubとredmineの連携ができるようなので実験してみました。

こんな感じの画面がredmine上で出せます。

f:id:katashiyo515:20140330092403j:plain

 

やりたいこと

redmine上でgitを表示

githubにpushしたときにredmineも更新する

f:id:katashiyo515:20140330091845j:plain

 1.push

開発機からGIthubにpush

GitHub

にアカウントと公開鍵を登録して開発環境の準備をします 

 

2.webhookの設定、3.リポジトリ更新設定、4.pull

redmine_github_hook

を使って実現します。

■ミラーリポジトリを作成

Redmine と Git の連携設定 | EasyRamble を参考にリポジトリを作ります

ミラーリポジトリ作成
$ mkdir -p /var/redmine/gitrepo
$ chown ユーザ:グループ /var/redmine/gitrepo
$ cd /var/redmine/gitrepo
$ git clone --mirror githubリポジトリ

RedmineとGithubの連携 - Qiita のredmineの設定を参考に、リポジトリを設定します

設定→リポジトリ→新しいリポジトリ

バージョン管理システム:git
識別子:適当に設定する
URL:/var/redmine/gitrepo/hogehoge.git
ファイルとディレクトリの最新コミットを表示する:チェックを入れる

redmine_github_hookプラグインをいれる

redmine_github_hookプラグインを追加します

必要なgemをインストール
$ vim Gemfile

gem 'json' # これを追加

$ bundle install


プラグインの導入

$ git clone git://github.com/koppen/redmine_github_hook.git ./plugins/redmine_github_hook

 

redmineのリスタート

$ bundle exec thin restart -e production -p 80

管理→プラグインプラグインが追加できていることを確認

f:id:katashiyo515:20140330113450j:plain

githubのwebhook設定
githubでwebhookしたいリポジトリをクリック
Settings→Webhooks & Services→Add webhook
 
Payload URL:[redmine_url]/github_hook?project_id=[identifier]
Payload version:なんとなくjson
 
Add webhookをクリック
 ■鍵の作成

Yakst - Gitのリモート操作を5倍から50倍高速化するには

を参考にsshの鍵を作成します

秘密鍵と公開鍵を作成

$ cd ~/.ssh

ssh-keygen -t rsa -C "your_email@example.com"

公開鍵をgithubに登録 

$ cat ~/.ssh/id_rsa.pub

で出てきた鍵をアカウントのSSH KeysかリポジトリのDeploy keysに登録します

設定終わり。 

 

あとは、開発環境からコミットすれば勝手にredmineと連携してくれます。