【Ansible Tower/AWX】マジック変数やその他の特別な変数


この記事はプロモーションを含みます。

Ansible

ホーム > 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_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) を含む変数です。

この変数は、以下のようにプレイブックに定義し、最初にファクト情報を収集した場合のみ利用可能です。
また、ファクト情報の収集を行うとジョブの実行開始が少し遅くなります。

gather_facts: True

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
}

 

コメント

タイトルとURLをコピーしました