I wrote below script to reload ASA firewall. The script reloads ASA 
firewall but the fact that reload has happened does not get passed back to 
ansible. So the script waits forever until command_timeout occurs. I tried 
some alternate solutions and none of them worked:

   1. 
   
   Changed connction type from network_cli to local but didn't help.
   2. 
   
   Removed ASA_command module and used cli_command module with prompt 
   options but didn't work.
   3. 
   
   Changed commnand from "reload noconfirm" to "reload noconfirm in 01" but 
   didn't help.
   4. 
   
   Gave the 'reload noconfirm' using asa_config module but didn't help.
   5. 
   
   Ran script with -vvvv option but didn't provide any useful insight. 
   Pasting output of the task when run with -vvvv below.
   
Please note prompt option doesn't seem to exists for asa_command module 
(like it exists for ios_command module). So i had to use 'reload noconfirm' 
command.



- name: RELOAD

      asa_command:

        commands: "reload noconfirm"

      vars:

        ansible_command_timeout: 180

        connection: local


- name: WAIT FOR FIREWALL TO REBOOT

        wait_for:

          host: "{{ ansible_host }}"

          port: 22

          delay: 180

          timeout: 4800

        delegate_to: localhost
--------------------------------------------------------

- name: run command expecting user confirmation
  cli_command:
    command: reload
    prompt: [confirm]
    answer: y
  vars:
    ansible_command_timeout: 300

--------------------------------------------------------------------
OUTPUT WHEN -VVVV IS ENABLED:

TASK [RELOAD] 
*****************************************************************************************************************************************************************************************************
task path: /root/AsaUpgradeSTANDALONE.yaml:121
redirecting (type: connection) ansible.builtin.network_cli to 
ansible.netcommon.network_cli
redirecting (type: terminal) ansible.builtin.asa to cisco.asa.asa
redirecting (type: cliconf) ansible.builtin.asa to cisco.asa.asa
<10.82.86.253> attempting to start connection
<10.82.86.253> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/bin/ansible-connection
<10.82.86.253> found existing local domain socket, using it!
<10.82.86.253> Response received, triggered 
'persistent_buffer_read_timeout' timer of 0.1 seconds
<10.82.86.253> Response received, triggered 
'persistent_buffer_read_timeout' timer of 0.1 seconds
<10.82.86.253> updating play_context for connection
<10.82.86.253>
<10.82.86.253> local domain socket path is /root/.ansible/pc/217564bb08
redirecting (type: action) ansible.builtin.asa to cisco.asa.asa
redirecting (type: action) ansible.builtin.asa to cisco.asa.asa
<10.82.86.253> ANSIBLE_NETWORK_IMPORT_MODULES: disabled
<10.82.86.253> ANSIBLE_NETWORK_IMPORT_MODULES: module execution time may be 
extended
<10.82.86.253> ESTABLISH LOCAL CONNECTION FOR USER: root
<10.82.86.253> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo 
/root/.ansible/tmp/ansible-local-99435r1nq464 `"&& mkdir "` echo 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061
 
`" && echo ansible-tmp-1634360158.3046613-10213-138442598470061="` echo 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061
 
`" ) && sleep 0'
redirecting (type: modules) ansible.builtin.asa_command to 
cisco.asa.asa_command
Using module file 
/root/.ansible/collections/ansible_collections/cisco/asa/plugins/modules/asa_command.py
<10.82.86.253> PUT 
/root/.ansible/tmp/ansible-local-99435r1nq464/tmppz_j513g TO 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061/AnsiballZ_asa_command.py
<10.82.86.253> EXEC /bin/sh -c 'chmod u+x 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061/
 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061/AnsiballZ_asa_command.py
 
&& sleep 0'
<10.82.86.253> EXEC /bin/sh -c '/usr/bin/python3 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061/AnsiballZ_asa_command.py
 
&& sleep 0'



<10.82.86.253> EXEC /bin/sh -c 'rm -f -r 
/root/.ansible/tmp/ansible-local-99435r1nq464/ansible-tmp-1634360158.3046613-10213-138442598470061/
 
> /dev/null 2>&1 && sleep 0'
The full traceback is:
  File 
"/tmp/ansible_asa_command_payload_c2ij8p4i/ansible_asa_command_payload.zip/ansible_collections/cisco/asa/plugins/module_utils/network/asa/asa.py",
 
line 147, in run_commands
    return connection.run_commands(commands=commands, check_rc=check_rc)
  File 
"/tmp/ansible_asa_command_payload_c2ij8p4i/ansible_asa_command_payload.zip/ansible/module_utils/connection.py",
 
line 195, in __rpc__
    raise ConnectionError(to_text(msg, errors='surrogate_then_replace'), 
code=code)
fatal: [FW50]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "authorize": null,
            "commands": [
                "reload noconfirm"
            ],
            "context": null,
            "interval": 1,
            "match": "all",
            "passwords": null,
            "provider": null,
            "retries": 10,
            "wait_for": null
        }
    },
    "msg": "command timeout triggered, timeout value is 900 secs.\nSee the 
timeout setting options in the Network Debug and Troubleshooting Guide."
}

Regards,
Vikram

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/39a02ace-9f8f-4397-8b1a-132913cb3697n%40googlegroups.com.

Reply via email to