アイビスヘッダー

IBS
ラベル ec2 の投稿を表示しています。 すべての投稿を表示
ラベル ec2 の投稿を表示しています。 すべての投稿を表示

2015年11月9日月曜日

gitolite3で作成したリポジトリをRedmine3から参照する

gitolite3はAWS EC2上に構築しました。
構築方法については「gitとgitolite3をAWS EC2上に構築する」を参考にしてください。

新しく作成したリポジトリはtest_repoとします。

リポジトリのミラーを作成する

gitサーバでの作業です。適当なディレクトリに、test_repoのミラーを作成します。
# sudo mkdir -p /opt/git
# cd /opt/git
# sudo git clone --mirror /opt/git/test_repo.git
# sudo chown -R gitolite3:gitolite3 test_repo.git

次に、test_repoリポジトリに変更があった時に、先ほど作ったミラーに同期させるため、gitolite3ユーザーにスイッチして、ミラー元のフックスクリプトを作成します。
# sudo su -o gitolite3
$ cd /var/lib/gitolite3/repositories/test_repo.git/hooks/
$ cat >> post-receive <<EOF
> #!/bin/sh
> /usr/bin/git push --mirror /opt/git/test_repo.git
> EOF
$ chmod 700 post-receive

次に、ミラー先をWebサーバからも参照できるように設定する
$ cd
$ vi .gitolite.rc
$REPO_UMASK =0077; を $REPO_UMASK = 0027; に変更する

次に、グループを変更する
$ sudo vi /etc/group
gitolite3グループにapacheユーザーを追加する


作成したミラーリポジトリをRedmineから参照する

Redmineにブラウザでアクセスし、プロジェクト->設定の「リポジトリ」タブにて以下の通り設定します。
リポジトリに変更を加えて、Redmineに表示されれば成功です。




疑問があります

わざわざミラーを作成する必要があるのか?ということです。
まあ、redmineから参照させたくないときに、/opt/gitのリポジトリを削除してしまうとか、運用している間で分かってくると思うので、とりあえずこの方法で運用してみようと思います。

2015年11月6日金曜日

gitとgitolite3をAWS EC2上に構築する

EC2上に、yumでgitolite3をインストールした場合、少し癖があって苦労したので情報を公開します。

gitとgitolite3のインストール

$ sudo yum install git gitolite3


gitolite3設定

初期状態では、sshでアクセスできるように構成されていないので設定します。
gitolite.conでgitolite-adminにアクセスできるのはadminユーザのみになっているのでadminユーザの設定を行います。

鍵の作成

$ su - gitolite3
-sh-4.2$ ssh-keygen -f ~/.ssh/admin
-sh-4.2$ openssl rsa -in ~/.ssh/admin -out ~/.ssh/admin.signed(パスワードが不要な場合のみ)

リポジトリ準備

ディレクトリ自体は色々と準備されいるが鍵の設定が全く行われていないので設定を行う。
-sh-4.2$ gitolite setup -pk ~/.ssh/admin.pub
これで公開鍵が配備されました。

以上でサーバ側の設定は終わりです。
次にクライアント側での設定になります。
自分はMac OS X El Capitanで行いました、OS Xでgitコマンドはxcodeに入っているようです。


鍵の準備

サーバに保管されている秘密鍵をコピーします。
ファイル名は/var/lib/gitolite3/.ssh/adminになります。
$ vi ~/.ssh/admin
内容を貼り付けます
$ chmod 600 ~/.ssh/admin
権限を変更します

sshの設定

$ vi ~/.ssh/config
host git.ibs.local
    user        gitolite3
    hostname    ipアドレス
    identitiesonly      yes
    identityfile        ~/.ssh/admin


確認

gitolite-adminリポジトリをcloneします。
$ git clone git.ibs.local:gitolite-admin
Cloning into 'gitolite-admin'...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10/10), done.
Checking connectivity... done.

上記の様になれば成功です。


この後、Apacheを利用してLDAP認証(ActiveDirectory)での設定も成功したので、また後日ブログにアップする予定です。

2015年10月7日水曜日

Amazon EC2上にRedmine3.1.1のインストール時にはまったこと

Amazon EC2上にRedmine3.1.1+Gitを導入することになりました。
導入手順は以下のサイトを参考にしました。
Redmine.JP Blog

Rubyパッケージは標準で用意されているRuby22パッケージを利用しました。

めっちゃはまったのは「Gemパッケージのインストール」です。
ここで以下のエラーが発生
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /usr/bin/ruby2.2 -r ./siteconf20151007-4046-18z7m00.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /var/lib/redmine/vendor/bundle/ruby/2.2/gems/json-1.8.3 for inspection.
Results logged to /var/lib/redmine/vendor/bundle/ruby/2.2/extensions/x86_64-linux/2.2/json-1.8.3/gem_make.out
An error occurred while installing json (1.8.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.3'` succeeds before bundling.


パッケージを見てみると「rubygem22-json-1.8.2」が導入されているので削除しようとしてみましたが依存関係で削除できません。
 rpmで導入されているならbundle installではインストールしないようにとか考えましたが、意外と解決方法は簡単でした。

解決方法は、「ruby22-devel」パッケージをインストールすることでした。


次のはまりポイントは、「passenger-install-apache2-module」です。
以下のエラー
Your compiler failed with the exit status 4. This probably means that it ran out of memory. To solve this problem, try increasing your swap space: https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04

どうもメモリーが足らない模様(T_T)
t2.microがいけないのか?

以下を実行することにより無事に終わりました。
  sudo dd if=/dev/zero of=/swap bs=1M count=1024
  sudo mkswap /swap
  sudo swapon /swap


無事に終わったので以下を実行
sudo swapoff /swap
sudo rm -rf /swap


次はあまりはまるとまではいかなかったが、「RedmineのCSSや画像へのアクセスを許可」いう見出しで以下の設定をすると、逆に画面が崩れました。
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>


自分のはまりポイントは3つでした。
なんとかインストール完了。

「Redmine3.0でもいいよ」という人は、Redmine3.0のAMIを利用すれば簡単です。
http://blog.redmine.jp/articles/3_0/redmine-ami/