Ansible
AnsibleDay 25

Ansibleで作るGitlab+Redmine

More than 5 years have passed since last update.

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が起動していないことがあったりするので、そこは後で修正します。。