noどんな情報が取れるの?¶factで取得できる情報を調べるにはsetupモジュールを使います。JSON形式でずらずらと出てくることが分かります。"amd64",さて、本題。ohaiを使って情報を取得する¶Ansibleのfactだけでも多くの情報が取れますが、Ohaiを使ってさらに情報を追加できます。やり方は単にohaiを入れるだけです。ansibleは使えるのであればohaiも使って情報を追加します。モジュールを実行すると、以下のような情報が追加されていることが分かります。いうprefixがついています。Levelの限られた情報だけです。モジュールを使うとohaiで取得した情報がすべて取れますので、registerを使ってみようとしたのですが、だめでした。いう同じような情報取得ライブラリがあります。ちなみにpuppetlabsが作っています。モジュールを別に使えます。いうprefixがついています。自分でfactを設定する¶これまでは既存のライブラリを使った情報取得でした。これらに加えてAnsibleでは自分でfactを設定できます。1.3からですので、1.2.3ユーザーは現状ではgithubからインストールする必要があります。自分でfactを設定するには、fact_pathにファイルを設置します。いうことに気をつけてください。事前にtemplateモジュールなどを使って置く必要があります。fact_pathはsetupモジュールの引数として設定できます。先頭で実行すれば以降のtaskで使えます。いう拡張子がついたファイルを読み込みます。./hoge.fact[location]city=Tokyophone=0399999999JSON形式です。JSON形式では配列も使えます。以下にこの内容が追加されます。}playbookからはこんな感じで使います。同じ場所に実行属性があるファイルがあると実行してJSONを受け取ってくれます。}}EOFまとめ¶Ansibleを支える技術であるfactを紹介しました。これによって、templateで埋め込んだり、場合分けを行ったりできます。1.3からは、自作のfactを使えるので、例えばターゲットホストの負荷状況によって動作を変える、ということも可能です。問題なければマージされるかと思います。