torutkのブログ

ソフトウェア・エンジニアのブログ

1日ほどAnsibleとたわむれて(RedmineサーバーをAnsibleで構築に向けて)

仮想化環境で多数のLinuxサーバーの設定をするようになり、また、並列計算機環境で同様に多数のLinuxサーバーを設定することもあり、これまでの手作業では面倒なことが増えてきました。

以前から、そのようなサーバー構築作業にはChefがよさそうと思っていました。しかし、Chefがベースとするrubyは1.9.3以降ですが、設定対象の多くがまだCentOS 6なので、OSセットアップ後、rubyのインストールをしなければChefが動きません。

一方で、手軽なサーバー構築ツールとしてAnsibleというのもあると聞き、どちらがいいかと軽く情報収集をしました。Ansibleは、Python 2.4以降とSSH接続ができればいいので、入れたてのCentOS 6でも十分対応できます(CentOS 5でも下限ぎりぎりですがOK)。OSのインストールと最低限の設定(ネットワーク接続とSSHで接続できるアカウント作成)をすればあとはAnsibleに構築を任せられそうです。

情報収集

Ansibleは、ネット上には記事、ブログがそこそこありますが、初めてトライするときに心強い情報となるとやはり体系化されまとまった情報となる書籍です。

日本語の書籍は・・・、と探したところ、電子書籍限定ですが

入門Ansibleを出版しました — そこはかとなく書くよん。

がありました。Kindle版ですが、その後EPUB、PDF版も出版されました。Kindle版、EPUB・PDF・MOBIまとめ版ともに890円です。

入門 AnsibleのPDF、EPUB版を発売開始しました — そこはかとなく書くよん。

ほかにも、勉強会告知サイトを見ると、ちょくちょくAnsibleの初心者向けセミナーが開催されているようです。

素のCentOS 7からRedmineを立てるまで

Ansibleにたわむれる題材として、仮想ゲストにCentOS 7.1を入れて、最低限の設定(ネットワークへの接続、公開鍵認証によるSSH接続アカウントの作成)をした後はAnsibleからRedmineの構築をしました。CentOS 7.1を使ったのは、自宅で趣味の範囲ではCentOS 6を使う気がしなかったから、という理由です。

書籍があるといっても初回にこの題材はあまりにハードルが高いです。実は、Redmine.jpでおなじみの前田さんがGitHubで公開しているAnsibleでCentOS 7にRedmine 3.1を構築する設定があり(次のURL)、これを大いに参考にしながら、一部設定を変えて作っていきました。

https://github.com/farend/redmine-centos7-mariadb-ansible

こちらの設定では、rubyをソースで取得しビルドをして/usr/localに入れている、redmineはリリース版アーカイブではなくSubversionから取得している、Apache(Passenger)で動かす、といった構築をしています。

ここを、rubyは別途RPMビルドしたものをインストール、redmineはリリース版アーカイブファイルを送り込んでインストール、UnicornとNginxを使う、SELinuxは有効にして動かす、といったあたりに変えつつAnsibleに馴染んでいきます。

そうこうして、3連休の後半はAnsible漬けになってましたが、自宅仮想ゲスト上でなんとかRedmineの画面が見えるところまでたどり着きました(最初から通して構築の確認がまだですが・・・)。

このあと、プラグインを入れたりするなどまだ残件はありますが、とりあえず。

感想、ほか

書籍にもありましたが、Ansibleは「Better Shell Script」です。丸1日たわむれていると何か使えるようになった気がします(まだまだですけど)。

あと、自宅ではデスクトップ環境がWindowsなので、Cygwin上でansibleを入れてplaybookをこさえて実行していました。ansibleはCygwinのモジュールになっています。SSHの接続で設定が必要でしたが、それ以外はほぼ問題なくCygwinから使えていました。

今回の作業で生じた疑問、トラブルとその解決のメモを以下URLにメモしています。
http://www.torutk.com/projects/swe/wiki/Ansible