地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

ansible 定義済み変数と接続ディレクティブ

日本語だと古めの情報しかなかったのでメモ

変数名 概要
hostvars 各ターゲットノードのファクト変数を集めた変数
group_names 指定したターゲットノードが属するグループの一覧
groups 全グループとターゲットノードの一覧
inventory_hostname インベントリファイルに定義されたホスト名
inventory_hostname_short ホスト名の短い版
playbook_dir カレントディレクトリからplaybookへのパス
ansible_playbook_hosts プレイブックが実行されているホストの一覧
ansible_check_mode チェックモード用のオプション変数

こんな感じで見れる。

- hosts: all

  gather_facts: "{{ check_env | default(False) }}"

  tasks:

    # Facts
    - name: Facts | ansible_hostname
      debug: var=ansible_hostname
    - name: Facts | ansible_default_ipv4
      debug: var=ansible_default_ipv4
    - name: Facts | ansible_env
      debug: var=ansible_env

    - name: Magic | group_names
      debug: var=group_names
    - name: Magic | groups
      debug: var=groups
    - name: Magic | inventory_hostname
      debug: var=inventory_hostname
    - name: Magic | inventory_hostname_short
      debug: var=inventory_hostname_short
    - name: Magic | play_hosts
      debug: var=play_hosts
    - name: Magic | inventory_dir
      debug: var=inventory_dir
    - name: Magic | inventory_file
      debug: var=inventory_file

何回読んでも忘れてしまうAnsibleの変数の優先順位。 とてもよき記事がありました。ちょいちょいハマるから助かる。 2~3人なら正直気にしなくても良さそうだけどもっと大規模でメンテナンスしてくってなったらplaybookもコード規約とか必須何だろうな〜。

qiita.com


これも忘れるからメモ ディレクティブ

変数名 入力値 概要
gather_facts true/false ターゲットノードの情報取得を行うか
connection ${PLUGIN_NAME} 接続方法の指定
remote_user ${USER_NAME} 接続ユーザの指定
port ${PORT_NUMBER} 接続ポートの指定
become true/false 接続ユーザ以外で処理を行うとき
become_user ${USER_NAME} sudo からの置き換え(旧バージョンだと使えたり)