0

デバイスへの構成コミットの前後の出力を取得したいと考えています。

アンシブルコード:

- name: Get device information
  hosts: working_hosts
  connection: local
  gather_facts: false

  vars:
    ansible_network_os: junipernetworks.junos.junos
    connection_info:
      port: '{{ ansible_ssh_port }}'
      user: '{{ ansible_ssh_user }}'
      passwd: '{{ ansible_ssh_pass }}'
      
  tasks:
    - name: load configure lines into device and commit to device
      junipernetworks.junos.junos_config:
        update: 'merge'
        lines:
        - set security address-book global address 10.xxx.x.xxx 10.xxx.x.xxx/xx

        check_commit: yes
        confirm_commit: yes
      register: junos_output
      diff: true

    - debug:
        var: junos_output

以下の出力には、コミットされた以前の構成と現在の構成の差分が表示されていません。ここで何か間違ったことをしている場合は助けてください。

出力:

ok: [xx.xx.xxx.xx] => {
    "changed": false,
    "invocation": {
        "module_args": {
            "backup": false,
            "backup_options": null,
            "check_commit": true,
            "comment": "configured by junos_config",
            "confirm": 0,
            "confirm_commit": false,
            "lines": [
                "set security address-book global address 10.xxx.x.xxx 10.xxx.x.xxx/xx"
            ],
            "provider": null,
            "replace": null,
            "rollback": null,
            "src": null,
            "src_format": null,
            "update": "merge",
            "zeroize": false
        }
    }
}

次のコマンドを使用して、候補構成を以前にコミットされた構成と比較できます。

show | compare rollback rollback-number

show | compare rollback 1

出力:

[edit security address-book global]
+    address xx.xxx.xx.xx { ... }
+    address xx.xxx.xx.xx {
+        xx.xxx.x.xxx/xx;
+    }

juniper.device.config モジュールを使用して期待どおりに出力を取得できますが、junipernetworks.junos.junos_config モジュールで必要です。

- name: Print diff between current and rollback 1. No check. No commit.
  juniper.device.config:
    rollback: 1
    diff: true
    check: false
    commit: false
  register: response

- name: Print the msg.
  debug:
    var: response.diff_lines

前もって感謝します。

4

1 に答える 1

0

複数の試行で何とか問題を修正しました。

- name: Load configure lines into device
  junipernetworks.junos.junos_config:
    lines:
      - set security address-book global address 10.xxx.x.xxx 10.xxx.x.xxx/xx

    confirm_commit: yes
  register: device_status
  ignore_errors: yes

- name: Compare rollback the configuration
  junipernetworks.junos.junos_config:
    rollback: 1
    check_commit: no
    confirm_commit: no
  diff: yes
  register: status_message
  when: device_status.failed is false

これにより、デバイスで最近コミットされた出力が得られます。

于 2021-08-09T09:02:21.340 に答える