source オプションで running を指定すると、running-config を NETCONF / YANG 形式で取得できます。
Playbook
- hosts: ios
gather_facts: no
tasks:- name: get runnnig-config
netconf_get:source: running
register: result
- name: debug result
debug:msg:"{{ result.stdout }}"
- hosts: ios
gather_facts: no
tasks:- name: get interfaces state
netconf_get:filter: |-
<interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
</interfaces-state>
register: result
- name: debug result
debug:msg:"{{ result.stdout }}"
実行結果
TASK [get interfaces state] *****************************************************************************************************************************
unable to load netconf plugin for network_os ios, falling back to default plugin
ok: [ios1]
TASK [debug result] *************************************************************************************************************************************
ok: [ios1] => {
"msg": "<data xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><interfaces-state xmlns=\"urn:ietf:params:xml:ns:yang:ietf-interfaces\"><interface><name>GigabitEthernet1</name><type xmlns:ianaift=\"urn:ietf:params:xml:ns:yang:iana-if-type\">ianaift:ethernetCsmacd</type><admin-status>up</admin-status><oper-status>up</oper-status><last-change>2020-06-12T23:57:31.000876+00:00</last-change><if-index>1</if-index><phys-address>00:50:56:bb:e9:9c</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2020-06-12T23:56:13.00004+00:00</discontinuity-time><in-octets>5425046053</in-octets><in-unicast-pkts>9040594</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>36343921</out-octets><out-unicast-pkts>118825</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>GigabitEthernet2</name><type xmlns:ianaift=\"urn:ietf:params:xml:ns:yang:iana-if-type\">ianaift:ethernetCsmacd</type><admin-status>down</admin-status><oper-status>down</oper-status><last-change>2020-06-12T23:57:23.000416+00:00</last-change><if-index>2</if-index><phys-address>00:50:56:bb:77:1a</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2020-06-12T23:56:13.00004+00:00</discontinuity-time><in-octets>300</in-octets><in-unicast-pkts>5</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>0</out-octets><out-unicast-pkts>0</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>GigabitEthernet3</name><type xmlns:ianaift=\"urn:ietf:params:xml:ns:yang:iana-if-type\">ianaift:ethernetCsmacd</type><admin-status>down</admin-status><oper-status>down</oper-status><last-change>2020-06-12T23:57:23.00042+00:00</last-change><if-index>3</if-index><phys-address>00:50:56:bb:eb:1e</phys-address><speed>1024000000</speed><statistics><discontinuity-time>2020-06-12T23:56:13.00004+00:00</discontinuity-time><in-octets>120</in-octets><in-unicast-pkts>2</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>0</out-octets><out-unicast-pkts>0</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface><interface><name>Control Plane</name><type xmlns:ianaift=\"urn:ietf:params:xml:ns:yang:iana-if-type\">ianaift:other</type><admin-status>up</admin-status><oper-status>up</oper-status><last-change>2020-06-12T23:57:20.000993+00:00</last-change><if-index>0</if-index><phys-address>00:00:00:00:00:00</phys-address><speed>10240000000</speed><statistics><discontinuity-time>2020-06-12T23:56:13.00004+00:00</discontinuity-time><in-octets>0</in-octets><in-unicast-pkts>0</in-unicast-pkts><in-broadcast-pkts>0</in-broadcast-pkts><in-multicast-pkts>0</in-multicast-pkts><in-discards>0</in-discards><in-errors>0</in-errors><in-unknown-protos>0</in-unknown-protos><out-octets>0</out-octets><out-unicast-pkts>0</out-unicast-pkts><out-broadcast-pkts>0</out-broadcast-pkts><out-multicast-pkts>0</out-multicast-pkts><out-discards>0</out-discards><out-errors>0</out-errors></statistics></interface></interfaces-state></data>"
}
If a value after a colon starts with a “{“, YAML will think it is a dictionary, so you must quote it
とあります。
例えば、以下のような場合は囲う必要があります。
msg:"{{ greeting }}" # OK
以下のように、囲わない場合は、エラーになります。
msg:{{ greeting }} # エラー
エラー
ERROR! We were unable to read either as JSON nor YAML, these are the errors we got from each:
JSON: Expecting value: line 1 column 1 (char 0)
Syntax Error while loading YAML.
found unacceptable key (unhashable type: 'AnsibleMapping')
The error appears to be in '/home/studentXX/ansible-files/test.yml': line 11, column 15, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
debug:
msg: {{ greeting }}
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"