On 11/2/20 3:30 PM, Luke C wrote: > All right, so I created a callback plugin which saves information > automatically about each executed task to external > database, to put it concisely it holds of lots of information about task > execution (output, hostname etc) + other needed > by users. > For each task unique identifier (not Anisble TASKUUID) is also generated - it > is a combination of few fields. > That Custom UUID is being saved to that database as well. > > The idea is to not execute any tasks in that playbook(s) more than once, for > this purpose Custom UUID should be checked. > Tasks shouldn't be executed more than once on a server because of > irreversible actions done by those external legacy > scripts. (no comments on that, can't be changed for now) > > With when condition it would be problematic to check Custom_UUID for each > task because it's not and can't be hardcoded > (can differ). > So, my first thought was to create or rather enhance my callback plugin to > GET data from DB to check whether this > particular task has been already executed or not. > If yes, it should be omitted. >
I'm not sure if your setup really makes sense ... it has a smell of
overengineering. Ansible is suppose to at least
go through the tasks to ensure that to ascertain that the desired status has
been reached.
Regards
Racke
>
>
> poniedziałek, 2 listopada 2020 o 14:40:14 UTC+1 [email protected] napisał(a):
>
> On Mon, Nov 2, 2020 at 8:08 AM Luke C <[email protected]> wrote:
> >
> > Thanks for the reply.
> > Yes I know ... :)
> >
> > The problem is that I want to have dynamic when conditions for huge
> amount of tasks.
> > With standard when condition I would have to provide a particular
> static condition for each task (which in fact
> are mostly external script executions).
> > I thought it would be just easier and faster with additional callback
> module.
> >
> I too am confused. I use when() to include an entire task file
> or just do a task. And I could swear I have whens that looked like
>
> when:
> - variable-I-populated-or-registered-a-few-lines-ago.stdout ==
> variable-I-populated-in-an-earlier-task-file-on-my-way-here.stdout
>
> > Kind regards
> > Luke
> >
> >
> > poniedziałek, 2 listopada 2020 o 13:57:43 UTC+1 [email protected]
> napisał(a):
> >>
> >> On 11/2/20 1:49 PM, Luke C wrote:
> >> > Hey guys
> >> >
> >> > I would like to ask whether it's possible to SKIP task
> programmatically, using python & callback module?
> >> >
> >> > I've been trying to do this for 3 days and I still don't know how.
> >> > Is there some special variable which I could use in
> *v2_runner_on_start *or *v2_playbook_on_task_start* methods?
> >> >
> >> > I don't want to use ansible's when condition, task should be omitted
> dynamically basing on the results gathered
> earlier.
> >> >
> >> > e.g.:
> >> > def v2_runner_on_start(self, host, task):
> >> > if self.checksomething():
> >> > print("Task should be omitted")
> >> > <OMIT TASK, DO NOT RUN IT>
> >> > else:
> >> > print("Yes, task should be executed, proceed")
> >> >
> >> >
> >>
> >> Do you know that Ansible's when conditions can be very well based on
> results gathered earlier?
> >>
> >> Regards
> >> Racke
> >>
> >> >
> >> >
> >> > --
> >> > 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]
> <mailto:[email protected]>.
> >> > To view this discussion on the web visit
> >> >
> https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com
>
> <https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com>
> >> >
>
> <https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com?utm_medium=email&utm_source=footer
>
> <https://groups.google.com/d/msgid/ansible-project/34e2ed5a-2fad-40cf-a852-f94af07fd096n%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
> >>
> >>
> >> --
> >> Ecommerce and Linux consulting + Perl and web application programming.
> >> Debian and Sympa administration. Provisioning with Ansible.
> >
> > --
> > 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/f1b9d8c6-f367-4c75-b812-226a4eb7b82bn%40googlegroups.com
>
> <https://groups.google.com/d/msgid/ansible-project/f1b9d8c6-f367-4c75-b812-226a4eb7b82bn%40googlegroups.com>.
>
> --
> 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]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/da81770a-1ca3-4211-8f4b-98184d55a404n%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/da81770a-1ca3-4211-8f4b-98184d55a404n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.
--
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/20c9973f-526f-4f84-929a-d9aa3a946a32%40linuxia.de.
OpenPGP_0x5B93015BFA2720F8.asc
Description: application/pgp-keys
OpenPGP_signature
Description: OpenPGP digital signature
