回答編集履歴
3
コード修正
answer
CHANGED
@@ -10,6 +10,26 @@
|
|
10
10
|
`hostvars`をデバックしてみて頂ければピンとくるかと思います。
|
11
11
|
|
12
12
|
```yaml
|
13
|
+
- name: debugテスト
|
14
|
+
hosts: all
|
15
|
+
user: Administrator
|
16
|
+
gather_facts: no
|
17
|
+
environment:
|
18
|
+
no_proxy: 127.0.0.1,localhost
|
19
|
+
tasks:
|
20
|
+
- name: Get disk facts
|
21
|
+
community.windows.win_disk_facts:
|
22
|
+
|
23
|
+
- set_fact:
|
24
|
+
disksize_gib_human: '{{ disk.size|filesizeformat(true) }}'
|
25
|
+
disksize_gib: '{{ (disk.size/1024|pow(3))|round|int }} GiB'
|
26
|
+
disksize_gb_human: '{{ disk.size|filesizeformat }}'
|
27
|
+
disksize_gb: '{{ (disk.size/1000|pow(3))|round|int }} GB'
|
28
|
+
|
29
|
+
```
|
30
|
+
|
31
|
+
|
32
|
+
```yaml
|
13
33
|
# item.keyはホスト名
|
14
34
|
# item.valueはそのホストで使用可能な変数
|
15
35
|
#
|
@@ -24,6 +44,10 @@
|
|
24
44
|
- debug:
|
25
45
|
msg: "{{ item.key }}"
|
26
46
|
with_dict: "{{ hostvars }}"
|
47
|
+
|
48
|
+
# ANSIBLE-2019で定義されたもしくは読み込まれた変数を表示します。
|
49
|
+
- debug:
|
50
|
+
msg: "{{ hostvars['ANSIBLE-2019'] }}"
|
27
51
|
```
|
28
52
|
|
29
53
|
なお、他のホスト変数を更新はできない。
|
2
デバックコードを追記
answer
CHANGED
@@ -10,7 +10,20 @@
|
|
10
10
|
`hostvars`をデバックしてみて頂ければピンとくるかと思います。
|
11
11
|
|
12
12
|
```yaml
|
13
|
+
# item.keyはホスト名
|
14
|
+
# item.valueはそのホストで使用可能な変数
|
15
|
+
#
|
16
|
+
# hostvarsは以下のような構造になっています
|
17
|
+
#
|
18
|
+
# -------------------------------------
|
19
|
+
# hostvars[host1][disksize_gib_human]
|
20
|
+
# [disksize_gib]
|
21
|
+
# hostvars[host2][disksize_gib_human]
|
22
|
+
# [[disksize_gib]]
|
23
|
+
# --------------------------------------
|
24
|
+
- debug:
|
25
|
+
msg: "{{ item.key }}"
|
13
|
-
|
26
|
+
with_dict: "{{ hostvars }}"
|
14
27
|
```
|
15
28
|
|
16
29
|
なお、他のホスト変数を更新はできない。
|
1
文書校正
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
playのdegugテストで各ホストで`win_disk_facts`した結果を各変数に格納しています。
|
1
|
+
playの「degugテスト」で各ホストで`win_disk_facts`した結果を各変数に格納しています。
|
2
2
|
それらの変数は競合しないように**ホストごと**に管理されています。
|
3
3
|
|
4
4
|
例えば、host1とhost2がある場合は、host1のdisksize_gib_humanとhost2のdisksize_gib_humanがそれぞれ管理されています。
|
5
|
-
つまり、host1でdisksize_gib_humanを呼び出した時や値を格納するときはhost1のdisksize_gib_humanが使われます。
|
5
|
+
つまり、host1でdisksize_gib_humanを呼び出した時や値を格納するときはhost1のdisksize_gib_humanが使われます。host2のdisksize_gib_humanに影響はない。
|
6
6
|
|
7
7
|
では、playの「Ansibleを基にServerSpecの設定を作成」のホストはlocalhostなので、host1とhost2の変数はそのまま呼び出せないようになっています。
|
8
8
|
|