Adachinですっ。

久しぶりにansibleのお話なのですが、
重宝するマジック変数のinventory_hostnameを紹介します。
約8種類くらい変数があるのですが、inventory_hostnameを使えばもっとコードもキレイになるはず。


■そもそもマジック変数とは

「定義済み変数」で、主に、インベントリ(hostsなどなど)に関する情報を元に変数化します。


■inventory_hostnameについて

インベントリに書かれたホスト名を参照して変数化してしまいます。
実際に例を出してみます。

conf系設定ファイルがサーバ毎に違った場合によく使うかと。
以下にplaybookの階層を貼っときます。
そもそも自分はサーバ毎にわざわざwith_itemsで
このサーバにはこのファイルを指定!
他のサーバにはこのファイルを指定!
みたいなことを書いてたら汚すぎてひどくなりましたw
ここらへんを変数化したいなというわけでこいつを使うわけです。


■階層

・hosts


■inventory_hostnameを使わないコード

毎回サーバ毎に書くのはダルいし汚い。


■inventory_hostnameを使ったコード

定義済み変数によってwith_itemsが一行になり、キレイに


■inventory_hostnameでansibleを実行

ちゃんと変数化されてweb2台とも別々に反映された!


■まとめ

他のマジック変数いろいろ試してみよう。。
infrastracure as a Code!!!!
ちなみにconfファイルなどにも指定すれば変数として使える。。。楽だ。

参考:http://docs.ansible.com/ansible/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts

カテゴリー: AnsibleBlog

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニア勉強会なども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中である。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください