Ansibleで作るGitlab+Redmine

  • 60
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Merry Christmas!!
Ansible Advent Calendar2013も、とうとう最終日です!
ご参加の皆様、ご覧の皆様、ありがとうございます!
あうとーに載らなくて良かったです(笑)

さて、これまで24件の記事は、Ansibleの内部まで踏み込んだ記事(プラグインや記法、Tips)が多くありました。
今回はタイトル通り、私個人がAnsibleで構築しているものを、ご紹介しようと思います。
決してクリスマスが忙しくて、適当になったわけではありません。。
こんなものを作れるんだー、くらいに見ていただければと思います。

インストールするもの。

  • Gitlab
    Ruby on Rails製のGitリポジトリです。Githubのクローン版です。
  • Redmine
    Ruby on Rails製のバグ管理ソフトウェアです。

Ansibleは2つに分割していますが、1台のサーバ上で動作します。

Ansibleで作る理由

  • 1つ目は、あとで簡単に作り直せること。
    勤務先では約3年前からTrac+Subversionを構築していたのですが、変更に次ぐ変更で何をいつ修正加したのか分からない状況でした。 バックアップを取っていましたが、壊れた場合には悲惨な状況になっていたことでしょう。Ansibleであれば、簡単に構築できます(たぶん)。
  • 2つ目は、誰にでも配れること。
    ChefやPuppetも同様ですが、テキストベースなのでバージョン管理・配布しやすいです。加えて、AnsibleはChefなどと比較してもわかりやすいYAMLで書けることはメリットだと思います。勤務先の全員がLinuxやRubyが分かる訳ではなかったりするので、少しでも取っ付き易いほうが良いです。(自部署以外に展開しようとして躓くことが。。)

Gitlab 手順

ソースコード

https://github.com/volanja/ansible-Gitlab

ソフトウェア構成図

ansible-Gitlab.png

対象環境

CentOS 6.4 64bit (virtualbox + vagrantで構築)

実行環境

$ ansible --version  
ansible 1.4.1 (1.4.1 7bf799af65) last updated 2013/11/30 14:23:28 (GMT +900)

$ ruby -v  
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin11.4.2]

$ gem list |grep serverspec  
serverspec (0.13.2)

インストールするもの

  • ruby 2.0.0p353 (/home/git配下にrbenvでインストール)
  • git 1.7.10+
  • redis 2.0+
  • MariaDB 5.5.33a
  • Gitlab 6.3
  • Nginx

実行手順

1 . hostsファイルの設定変更

clone後、hostsファイル内の対象サーバのIPアドレスを変更してください。

2 . SSH公開鍵認証の準備

対象サーバにSSH公開鍵認証方式でログイン出来るように準備してください。

3 . ansible playbook 実行

対象サーバのドメイン名を次のファイルに定義(デフォルトはcadence)してください。

Windows/Linuxからはhostsファイルの書き換えにより、アクセスするようにします。

+----------------------------------------------------------------------------+
|             File             |          Key          |        Value        |
+----------------------------------------------------------------------------+
| roles/gitlab/vars/main.yml   | server_name           | cadence             |
| roles/hostname/vars/main.yml | server_name           | cadence             |
+----------------------------------------------------------------------------+

次のコマンドで実行します。

$ ansible-playbook setup.yml -i hosts  

4 . テストの準備

Serverspecで行います。

spec/properties.ymlのIPアドレス、秘密鍵を修正してください。

spec/spec.yml
root:
  roles:
    - Packages
    - gitlab
  ip: 192.168.0.108
  private_key: ~/.ssh/id_rsa

5 . テストの実行

次のコマンドで実行します。

$ rake serverspec       # Run serverspec to all hosts

6 . Gitlabへのアクセス

あらかじめアクセスするPCのhostsファイルを次のように変更しておきます。

Windows... C:/Windows/System32/drivers/etc/hosts

Linux,Mac... /etc/hosts

192.168.0.108 gitlab.cadence

次のURLでアクセスできます。

http://gitlab.cadence/  
ID...admin@local.host  
パスワード...5iveL!fe

Redmine 手順

ソースコード

https://github.com/volanja/ansible-Redmine

ソフトウェア構成図

ansible-Redmine.png

対象環境

CentOS 6.4 64bit (virtualbox + vagrantで構築)

実行環境

$ ansible --version  
ansible 1.4.1 (1.4.1 7bf799af65) last updated 2013/11/30 14:23:28 (GMT +900)

$ ruby -v  
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin11.4.2]

$ gem list |grep serverspec  
serverspec (0.13.2)

インストールするもの

  • ruby 2.0.0p353 (/home/redmine配下にrbenvでインストール)
  • MariaDB 5.5.33a
  • Redmine 2.4.1
  • Nginx

実行手順

1 . hostsファイルの設定変更

clone後、hostsファイル内の対象サーバのIPアドレスを変更してください。

2 . SSH公開鍵認証の準備

対象サーバにSSH公開鍵認証方式でログイン出来るように準備してください。

3 . ansible playbook 実行

対象サーバのドメイン名を次のファイルに定義(デフォルトはcadence)してください。

Windows/Linuxからはhostsファイルの書き換えにより、アクセスするようにします。

+----------------------------------------------------------------------------+
|             File             |          Key          |        Value        |
+----------------------------------------------------------------------------+
| roles/redmine/vars/main.yml  | server_name           | cadence             |
| roles/hostname/vars/main.yml | server_name           | cadence             |
+----------------------------------------------------------------------------+

次のコマンドで実行します。

$ ansible-playbook setup.yml -i hosts  

4 . テストの準備

Serverspecで行います。

spec/properties.ymlのIPアドレス、秘密鍵を修正してください。

spec/spec.yml
root:
  roles:
    - Packages
    - redmine
  ip: 192.168.0.108
  private_key: ~/.ssh/id_rsa

5 . テストの実行

次のコマンドで実行します。

$ rake serverspec       # Run serverspec to all hosts

6 . Redmineへのアクセス

あらかじめアクセスするPCのhostsファイルを次のように変更しておきます。

Windows... C:/Windows/System32/drivers/etc/hosts

Linux,Mac... /etc/hosts

192.168.0.108 redmine.cadence

次のURLでアクセスできます。

http://redmine.cadence/  
ID...admin
パスワード...admin

以上になります。なにかご指摘あればコメントorプルリクエスト頂けると嬉しいです。

マシンを再起動すると、Gitlabが起動していないことがあったりするので、そこは後で修正します。。

この投稿は Ansible Advent Calendar 201325日目の記事です。