작업의 값을 사용할 수 있도록 현재 호스트의 MAC 주소를 가져 오려고합니다. 문서를 읽은 후에도이를 수행하는 방법에 대해 머리를 감싸는 것처럼 보입니다. 나는 값을 버려서 구조를 알아 내려고 노력했다. 역할을 부르는 작전표는 사실을 수집합니다.MAC 주소 가져 오기 역할의 가능한 사실
- name: Get the MAC address
debug: msg="{{ hostvars[inventory_hostname] }}"
이것은 다음과 같은 내용 (일부) 생산 :
이
는 작업이 무엇 나는이 얻을- name: Insert the mac address into the customer license
debug: msg="{{ hostvars[inventory_hostname][ansible_default_ipv4] }}"
을 :
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"
},
을하지만 참조 할 때 오류, 어떤 분노에 내가 찾고있는 데이터가 :
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