LoginSignup
0
0

More than 5 years have passed since last update.

LxrをデプロイするAnsible Playbookを書いてみた

Last updated at Posted at 2014-11-05

Ansibleの勉強と趣味のため、Lxr (Linux Source Code Indexer and Cross-referencer) をデプロイする Playbook を書いてみました。

いまどきLxrなんて使ってる人おるん?という気もするけれど、9月26日から glimpse (Lxrが対応しているフリーテキストサーチエンジン)の商用利用も可能になり、なにげに利用しやすい状況になってます。

Lxrを運用しているサイトの例

言わずと知れた有名サイト?

PlaybookのGitHubレポジトリ

拙作ですが、こちらに。

Readme の通り、今のところ CentOS 6.5 と CentOS7 で動作を確認済み。
さくらクラウド上にも、デプロイできることを確認しています。

設定方法

こんな感じ。

$ git clone https://github.com/h2suzuki/ansible-lxr-nupic.core
$ cd ansible-lxr-nupic.core
$ vi hosts
$ vi group_vars/lxr-servers

hosts はインベントリファイルのサンプルです。実際にLxrをデプロイする先のマシン名に書きかえます。

また、デプロイ先は事前に ssh を導通させておく必要もあります。すなわち、ansible -i hosts all -m ping が成功すること。

group_vars/lxr-servers は設定ファイルの本体です。

例として、Nupic.core をインデックスする設定にしていますが、git clone 可能なレポジトリであれば、任意のレポジトリで OK。

  • source_tree_url は Lxr で表示したいソースのレポジトリURL
  • lxr_tag_vcs は、表示したいバージョンのタグ
  • lxr_tree_name は、このソースツリーの名前(ID)

設定の全デフォルト値は roles/lxr/defaults/main.ymlにまとめています。

デプロイ方法

管理サーバにAnsibleをインストールした後、以下のコマンドを実行。

    $ ansible-playbook -i hosts site.yml

ターゲットマシンに lxr と glimpse をインストールし、所望の git レポジトリからソースを cloneしてインデックス生成、最後に Apache の構成もでしてくれます。

全部成功したら、以下のURLにアクセスすると、ソースが表示されるはず。

    http://{{ httpd_server_name }}:{{ httpd_port }}/lxr/{{ lxr_tree_name }}/source

デフォルト設定なら、こちら。

    http://{{ inventory_hostname }}/lxr/nupic.core/source

設定ファイル group_vars/lxr-servers の lxr_tag_vcs だけ書き換えて(もしくはコマンドラインから -e オプションで渡して)、以下のコマンドを実行すると、指定のバージョンのツリーを、Lxrに追加してくれます。

    $ ansible-playbook -i hosts site.yml \
      --tags retrieve_source,indexing

今後の課題

気が向いたら、取り組む予定。

  • Amazon EC2 で動かせるようにする(途中までやった)
  • Ubuntu で動かせるようにする
  • glimpseやhttpdの部分を、別ロールに分離
  • マルチツリーへの対応
  • Galaxy へ登録
  • SQLite以外のDBへの対応(しないかも)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0