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 手順
ソースコード
ソフトウェア構成図
対象環境
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アドレス、秘密鍵を修正してください。
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 手順
ソースコード
ソフトウェア構成図
対象環境
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アドレス、秘密鍵を修正してください。
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が起動していないことがあったりするので、そこは後で修正します。。