ホーム > Ansible Tower・AWX リファレンス
ここでは、Ansibleのマジック変数やその他の特別な変数を記載したいと思います。
コマンドラインでのAnsible以外に、AWX、Ansible Towerでも使用出来る(専用)の変数なども合わせて記載しています。
また、実際に取得される値の例なども記載しています。
マジック変数
ansible_check_mode
チェックモードかどうかを指定するブール値
プレイブックの記述例
- name: ansible_check_mode
debug:
var: ansible_check_mode
実行結果
“ansible_check_mode”: false
実行結果の詳細
{
"ansible_check_mode": false,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ジョブタイプの設定が「チェック」となっている場合の出力例です。
下記は、AWXでのテンプレート設定でジョブタイプを変更した画面になります。
実行結果
“ansible_check_mode”: true
実行結果の詳細
{
"ansible_check_mode": true,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_dependent_role_names
他のプレイの依存関係として現在のプレイにインポートされているロールの名前
ansible_diff_mode
diff モードかどうかを指定するブール値
プレイブックの記述例
- name: ansible_diff_mode
debug:
var: ansible_diff_mode
実行結果
“ansible_diff_mode”: false
実行結果の詳細
{
"ansible_diff_mode": false,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_forks
最大並列実行数(整数)
プレイブックの記述例
- name: ansible_forks
debug:
var: ansible_forks
実行結果の詳細
{
"ansible_forks": 5,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_inventory_sources
インベントリーとして、使用されるソースの一覧
ansible_limit
Ansibleの現在の実行に対して、CLIオプション[–limit]として指定する内容
ansible_loop
[loop_control]で有効にした場合に、loopの拡張情報を含むディクショナリー/マップ
ansible_loop_var
[loop_control.loop_var]に渡す値の名称。バージョン[2.8]で追加
ansible_index_var
[loop_control.index_var]に渡す値の名称。バージョン[2.9]で追加
ansible_play_batch
シリアルで制限される現在のプレイに含まれるアクティブなホスト一覧。
(失敗したホスト、到達不可能なホストはアクティブとみなされません)
ansible_play_hosts
「ansible_play_batch」と同じ。
ansible_play_hosts_all
プレイが対象としたホストの一覧
ansible_playbook_python
Ansibleが使用するPythonインタープリターへのパス
プレイブックの記述例
- name: ansible_playbook_python
debug:
var: ansible_playbook_python
実行結果
“ansible_playbook_python”: “/usr/bin/python3.6”
実行結果の詳細
{
"ansible_playbook_python": "/usr/bin/python3.6",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_run_tags
CLIオプション「–tags」の内容。現在の実行に含まれるタグを指定します。
ansible_search_path
アクションプラグインとルックアップの現在の検索パス。
ansible_skip_tags
CLIオプション「–skip_tags」の内容。処理をスキップするタグを指定します。
ansible_verbosity
Ansibleのログレベルの設定
プレイブックの記述例
- name: ansible_verbosity
debug:
var: ansible_verbosity
実行結果
“ansible_verbosity”: 1
実行結果の詳細
{
"ansible_verbosity": 1,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_version
Ansibleのバージョン関連情報を含むディクショナリー/マップ。
group_names
現在のホストが所属するグループの一覧
groups
インベントリー内の全グループを含むディクショナリー/マップ。
各グループには、所属するホストの一覧が含まれます。
hostvars
インベントリー内の全ホスト、そのホストに割り当てられた変数を含むディクショナリー/マップ。
inventory_hostname
プレイで繰り返される現在のホストのインベントリー名
プレイブックの記述例
- name: inventory_hostname
debug:
var: inventory_hostname
実行結果
“inventory_hostname”: “SYUTAKUAPL01”
実行結果の詳細
{
"inventory_hostname": "SYUTAKUAPL01",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
inventory_hostnameで取得される値は、AWX(Tower)でのホスト名に設定されている値になります。なので、ホスト名としてIPアドレスを設定している場合は、IPアドレスが値として取得されます。
[インベントリー]>[ホスト]の「ホスト名」(画像の赤枠)の値が取得されている。
「ホスト名」として、IPアドレスが設定されている場合は、IPアドレスが取得される。
下記は、IPアドレスが設定されている場合の出力例になります。
{
"inventory_hostname": "192.168.56.105",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
inventory_hostname_short
「inventory_hostname」の短縮版
inventory_dir
「inventory_hostname」を最初に定義したインベントリーソースのディレクトリー
inventory_file
「inventory_hostname」を最初に定義したインベントリーソースのファイル名
omit
タスクのオプションを省略できるようにする特別変数
play_hosts
非推奨、「ansible_play_batch」と同様。
ansible_play_name
現在実行されているプレイの名前。バージョン[2.8]で追加。
playbook_dir
[ansible-playbook]コマンドラインに渡した、プレイブックのディレクトリーパス
ファクト変数
ファクト (Fact) とは、現在のホストに関連する情報 (inventory_hostname) を含む変数です。
ansible_devices.sda.size
ディスクサイズ
プレイブックの記述例
- name: ansible_devices.sda.size
debug:
var: ansible_devices.sda.size
実行結果
“ansible_devices.sda.size”: “16.00 GB”
実行結果の詳細
{
"ansible_devices.sda.size": "16.00 GB",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_facts
「inventory_hostname」が収集またはキャッシュする「ファクト」が含まれます。
ansible_local
「inventory_hostname」が収集またはキャッシュする「ローカルファクト」が含まれます。
ansible_memtotal_mb
物理メモリサイズ(MB)
プレイブックの記述例
- name: ansible_memtotal_mb
debug:
var: ansible_memtotal_mb
実行結果
“ansible_memtotal_mb”: 808
実行結果の詳細
{
"ansible_memtotal_mb": 808,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_processor_cores
CPUコア数
プレイブックの記述例
- name: ansible_processor_cores
debug:
var: ansible_processor_cores
実行結果
“ansible_processor_cores”: 2
実行結果の詳細
{
"ansible_processor_cores": 2,
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
接続変数
接続変数は、ターゲットでのアクション実行方法を設定する場合に使用します。
ansible_become_user
Ansibleが昇格するユーザー。このユーザーはログインユーザーが利用できる必要があります。
ansible_connection
ターゲットホストでタスクに使用するconnectionプラグイン
ansible_host
「inventory_hostname」の代わりに使用するターゲットホストのIP/名前
プレイブックの記述例
- name: ansible_host
debug:
var: ansible_host
実行結果
“ansible_host”: “192.168.56.105”
実行結果の詳細
{
"ansible_host": "192.168.56.105",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
ansible_ssh_host
ansibleのバージョン[2.0]以降は非推奨。
「ansible_host」が推奨されているため、詳細は「ansible_host」に記載。
「ansible 2.9.27」の時点では、「ansible_host」と同じように動作する。
ansible_python_interpreter
Ansibleがターゲットホストで使用すべきPython実行ファイルへのパス
ansible_user
Ansible がログインするユーザー
lookup変数
pipe_date
dateコマンドの実行結果を整形しつつ取得
プレイブックの記述例
- name: pipe_date
debug:
var: lookup('pipe','date +%Y%m%d_%H%M%S')
実行結果
“lookup(‘pipe’,’date +%Y%m%d_%H%M%S’)”: “20220307_055109”
実行結果の詳細
{
"lookup('pipe','date +%Y%m%d_%H%M%S')": "20220307_055109",
"_ansible_verbose_always": true,
"_ansible_no_log": false,
"changed": false
}
コメント