registering a variable isn't meant to be skipped, it works as designed. If you want to build something like this you'll have to register different variables, and then use set_vars to create the output one
Adrian Paraschiv <[email protected]> napisał: > > >I have a role that I need to use for more values. For each task within >the >role I register a variable: checkdeps (it's the same for all tasks >within >this role - during a run it always has at least one value/output - I >need >it like this because the path differs "/opt/play/apps/default-ace", >"default-device" etc.) and in the end I do an echo to view the output >of >checkdeps.stdout. > >Below I've put one task that will output ok and one that will >intentionally >will be skipped. If I use the parameter dep: APK_PARSER in the playbook > >what it does is: first checkdeps registers the output and in the second > >task the value of checkdeps is replaced with nothing! Even though the >task >is skipped due to no matching dep parameter. > >Why does the value of checkdeps is replaced if the condition is not met >? > >- name: "output ok" > shell: "cd /opt/play/apps/default-ace && play deps {{ dep }}" > register: checkdeps > when: "dep == \"APK_PARSER\"" > >- name: "example to skip" > shell: "cd /opt/play/apps/default-device && play deps {{ dep }}" > register: checkdeps > when: "dep == \"I\" or dep == \"II\"" > >- name: "echo ok if Done!" > shell: "echo \"OK - {{ dep }} Dependencies {{ checkdeps.stdout }}\"" > >And it gives me error: > >One or more undefined variables: 'dict' object has no attribute >'stdout' > >I've modified the last line without the stdout: > >shell: "echo \"OK - {{ dep }} Dependencies {{ checkdeps }}\"" > >and it gives the output: > >stdout: >OK - APK_PARSER Dependencies {u'skipped': True, u'changed': False} > >did the variable checkdeps register the "skipping: [...]" ? Why it is >changing it's value if the condition is not met ? > >-- >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 post to this group, send email to [email protected]. >To view this discussion on the web visit >https://groups.google.com/d/msgid/ansible-project/2c5e1ae5-c6bc-45c0-b442-6050c37fd997%40googlegroups.com. >For more options, visit https://groups.google.com/d/optout. -- Wysłane za pomocą K-9 Mail. -- 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 post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/176bfe65-9e10-4ec0-9039-d5decbb5d333%40email.android.com. For more options, visit https://groups.google.com/d/optout.
