How to handle services with associated data changing with time ?

25 views
Skip to first unread message

Christophe Meessen

unread,
Jan 20, 2016, 9:12:29 AM1/20/16
to Ansible Project
Apparently I need the concept of method or specific action on a role and I don't how to implement it.

Consider a service with associated data changing in time on a remote host.

I need to perform three distinct actions on this service.

1. install or update to code and configuration
2. backup the associated data
3. restore the associated data from the backup

All three actions can be implemented by ansible.

But I don't see how to pack them in one role. This is because (as I understood) invoking a role executes only one action defined in roles/X/tasks/main.yml.

That's Ok for Install let say. But how could I add the set of tasks to do a backup or a restore ?

I thought we could use tags for that, but the problem is that by default (without specifying a tag on the playbook invocation) the special tag 'all' is used which result in executing all tasks. This would be a mess if the install, backup and restore tasks are all called if the user forgot to specify a tag.

One thing that could save my day is if it was possible to define a default tag different from 'all' in the ansible configuration ? I could the define the default tag ass 'install' or 'install,config' that will ensure that the tasks tagged as 'backup' or 'restore' are not executed.
I couldn't find such an option in the ansible configure documentation.

Otherwise is there a solution with the existing code ? 


Brian Coca

unread,
Jan 20, 2016, 9:18:13 AM1/20/16
to Ansible Project
> But I don't see how to pack them in one role. This is because (as I
> understood) invoking a role executes only one action defined in
> roles/X/tasks/main.yml.

not true, all tasks defined in main.yml get executed.


--
Brian Coca

Christophe Meessen

unread,
Jan 20, 2016, 9:38:44 AM1/20/16
to Ansible Project
Yes sorry. That was what I mean. There is only one file main.yml that is always invoked and all tasks in it are executed.

Brian Coca

unread,
Jan 20, 2016, 9:40:04 AM1/20/16
to Ansible Project
tasks in that file can be conditional, you can also have includes
> --
> 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 ansible-proje...@googlegroups.com.
> To post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/87e45908-31c2-4397-8f06-1df4c8e9e270%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.



--
Brian Coca

Christophe Meessen

unread,
Jan 20, 2016, 9:42:10 AM1/20/16
to Ansible Project
Apparently I'm not the first to ask this. I just found this stackoverfow question asking the exact same thing.

http://stackoverflow.com/questions/28789912/ansible-default-explicit-tags

It looks like allowing to override the default value of tags command line argument in the ansible configuration would be the simplest solution.

Reply all
Reply to author
Forward
0 new messages