Rollback in Ansible ?

Hey all,

I want know when i play one task who failed if possible that ansible do rollback ?

Exemple :

  • name: “create file”
    shell: touch test_file.txt

When i play this task, she failed so i want one task or method for rollback please ?

I see in documentation officielle the module aci_config_rollback but i don’t konw how works this module…

https://docs.ansible.com/ansible/latest/modules/aci_config_rollback_module.html

Can you help me ?

Thanks community ansible !! :slight_smile:

Regards,

Hey all,

I want know when i play one task who failed if possible that ansible do rollback ?

Exemple :

- name: "create file"
shell: touch test_file.txt

When i play this task, she failed so i want one task or method for rollback please ?

Hello Ryad,

what do you have in mind for the rollback for this task. Usually, if "touch" fails nothing changes on the target
system.

I see in documentation officielle the module *aci_config_rollback* but i don't konw how works this module...

https://docs.ansible.com/ansible/latest/modules/aci_config_rollback_module.html

That looks like it applies for a very specific use case.

Regards
        Racke

Hey stefan,

Yes but if i want one procedure for install one application, exemple:

  • block:

  • name: task 1

  • name: task 2

i want that if one task fails, I want him to go back on all the tasks that play it.

Do you understand what i say or no ?

Can you help me please :slight_smile:

Regards

Hey stefan,

Yes but if i want one procedure for install one application, exemple:

- block:

     - name: task 1
        ......
        .....

    - name: task 2
      ......
      ......

i want that if one task fails, I want him to go back on all the tasks that
play it.

You can write rollback tasks in a `rescue` section, followed by a fail task, but there is no automatic rollback functionality unless you write it yourself.

V/r,
James Cassell

Hey,

Ok, thank you very much for your help !!

I will try rescue

Regards,

The problem you have is that ansible does not retain the old state of the machine when it makes changes. The fact that you executed the command “touch test_file.txt” does not indicate whether test_file.txt did or did not exist prior to running the command. So to “roll back”, do you erase the file? Change the date-stamp back to what it was?

Probably the closest thing you will find is a “block” with a “rescue” section attached, to specify what you want to happen in the event of an error.

https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html

–EbH

Hey,

It is really very interesting this section rescue but if in my block I execute for example a script sql which does a lot of actions and that there is an error …

So what to put in the rescue section?

Thanks for your help ! :slight_smile:

Regards,

Hey,

It is really very interesting this section rescue but if in my block I
execute for example a script sql which does a lot of actions and that there
is an error ...

This is beyond the scope of ansible. You should have the rescue block do what is necessary to recover from your SQL script, or use something like a SQL transaction, but, again, it's beyond the scope of ansible.

V/r,
James Cassell

Ok, i will play with rescue fonctionnality for do one rollback if there is one error in my block.

Thank you very much for your answer goy !! :wink:

Regards,