現在のホストのMACアドレスを取得しようとしています。その値をタスクで使用できるようにしています。ドキュメントを読んだ後でさえ、私はこれを行う方法について私の頭を包んでいるようです。私は値をダンプして構造を理解しようとしています。役割を呼んでいる作戦は事実を集める。ロール内の可能なファクトからMACアドレスを取得する
これは、タスクが持っているものです。
- name: Get the MAC address
debug: msg="{{ hostvars[inventory_hostname] }}"
これは、次の(切り捨て)を生成します。
ok: [steve.dev.v4-1-0] => {
"msg": {
"ansible_all_ipv4_addresses": [
"10.1.3.144"
],
"ansible_all_ipv6_addresses": [
"fe80::250:56ff:fe8b:1051"
],
"ansible_architecture": "x86_64",
"ansible_bios_date": "09/21/2015",
"ansible_bios_version": "6.00",
"ansible_check_mode": false,
"ansible_cmdline": {
"KEYBOARDTYPE": "pc",
"KEYTABLE": "us",
"LANG": "en_US.UTF-8",
"SYSFONT": "latarcyrheb-sun16",
"crashkernel": "[email protected]",
"quiet": true,
"rd_NO_DM": true,
"rd_NO_LUKS": true,
"rd_NO_LVM": true,
"rd_NO_MD": true,
"rhgb": true,
"ro": true,
"root": "UUID=408345fe-146b-4dec-b62c-31fe6d60b376"
},
"ansible_date_time": {
"date": "2016-10-24",
"day": "24",
"epoch": "1477329455",
"hour": "10",
"iso8601": "2016-10-24T17:17:35Z",
"iso8601_basic": "20161024T101735509516",
"iso8601_basic_short": "20161024T101735",
"iso8601_micro": "2016-10-24T17:17:35.509824Z",
"minute": "17",
"month": "10",
"second": "35",
"time": "10:17:35",
"tz": "MST",
"tz_offset": "-0700",
"weekday": "Monday",
"weekday_number": "1",
"weeknumber": "43",
"year": "2016"
},
"ansible_default_ipv4": {
"address": "10.1.3.144",
"alias": "eth1",
"broadcast": "10.1.3.255",
"gateway": "10.1.0.10",
"interface": "eth1",
"macaddress": "00:50:56:8b:10:51",
"mtu": 1500,
"netmask": "255.255.252.0",
"network": "10.1.0.0",
"type": "ether"
},
しかし、私は、参照してみてください:
- name: Insert the mac address into the customer license
debug: msg="{{ hostvars[inventory_hostname][ansible_default_ipv4] }}"
私はこれを取得エラーは、私が探しているデータが怒っている:
fatal: [steve.dev.v4-1-0]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: dict object has no element {u'macaddress': u'00:50:56:8b:10:51', u'network': u'10.1.0.0', u'mtu': 1500, u'broadcast': u'10.1.3.255', u'alias': u'eth1', u'netmask': u'255.255.252.0', u'address': u'10.1.3.144', u'interface': u'eth1', u'type': u'ether', u'gateway': u'10.1.0.10'}\n\nThe error appears to have been in '/opt/deployment_data/playbooks/roles/eti_license/tasks/main.yml': line 13, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Insert the mac address into the customer license\n^here\n"}
私はここで間違っていますか?
これは '{{ansible_default_ipv4.macaddress}} 'の代わりにどのようなメリットがありますか。それは動作します(2.2現在) – Moshohayeb