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


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

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


■inventory_hostnameについて

インベントリに書かれたホスト名を参照して変数化してしまいます。実際に例を出してみると、Apacheの設定ファイルがサーバ毎に違った場合によく使うかと思います。以下にplaybookの階層を貼っときます。そもそも自分はサーバ毎にわざわざwith_itemsで、このサーバにはこのファイルを指定!他のサーバにはこのファイルを指定!のように書いていくと可読性が悪くなります。ここらへんを変数化したいなというわけでマジック変数使うわけです。


■階層

・hosts


■inventory_hostnameを使わないコード


■inventory_hostnameを使ったコード

定義済み変数によってwith_itemsが一行になり、メンテナンス性が良くなります。


■inventory_hostnameでansibleを実行

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


■まとめ

他のマジック変数いろいろ試してみよう。infrastracure as a Code!!!!楽だ!

参考: https://docs.ansible.com/ansible/2.9_ja/reference_appendices/special_variables.html


カテゴリー: Ansible

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

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