Thanks Tom and Scott, Both replies very helpful! Thanks!
On Tuesday, December 30, 2014 2:51:09 PM UTC-6, Scott Sturdivant wrote: > > As with Tom, I too use the 'in' keyword for substring compares. That > said, the reason why your 'when' is failing is because .find(str) is > returning the index into the string where the match (if found) begins. In > your case, it should be returning 20 for a successful match. For no match, > it will return -1. It seems like you've just omitted the negative sign in > your comparison. > > On Tue, Dec 30, 2014 at 1:45 PM, Tom Bamford <[email protected] <javascript:> > > wrote: > >> Hi >> >> For substring comparisons, I use the ‘in’ keyword like this: >> >> - name: Get timezone info >> shell: date >> register: zoneinfo >> changed_when: no >> - name: If timezone is not CST then remove /etc/localtime and call set >> timezone handler >> file: path=/etc/localtime state=absent >> when: '"CST" in zoneinfo.stdout' >> notify: set timezone >> >> The entire conditional is quoted in order to conform to yaml syntax. You >> could also add changed_when: no to the first task that runs date, so >> that Ansible doesn’t report it as a changed task. >> >> In this case, I would probably use a task rather than a handler for ‘set >> timezone’ - should your playbook run fail, the handler will not be invoked >> and the timezone will not get configured. >> >> Regards >> >> Tom >> >> >> On 30 December 2014 at 22:22, <[email protected] <javascript:>> wrote: >> >>> Hello everyone! >>> >>> Conditionals seem to be very difficult to get right for some reason so I >>> am hoping someone can explain why the following doesn't seem to work. Or >>> show me the way. :) >>> >>> I am simply trying to check the current timezone of the server and if it >>> doesn't match CST then run a handler to update it. Here's the code: >>> - name: Get timezone info >>> shell: date >>> register: zoneinfo >>> >>> Then just to make sure I have the right data I use debug to print the >>> zoneinfo var I just registered: >>> - name: Print zoneinfo for debug >>> debug: var="zoneinfo.stdout" >>> >>> This outputs: >>> TASK: [common | Print zoneinfo for debug] >>> ************************************* >>> ok: [10.10.10.10] => { >>> "zoneinfo.stdout": "Tue Dec 30 14:11:03 CST 2014" >>> } >>> >>> Referring to the Ansible docs I can use something like when: >>> zoneinfo.stdout.find('CST') != 1 but no matter what I try I can't get it to >>> work. >>> >>> I have tried the following: >>> >>> - name: If timezone is not CST then remove /etc/localtime and call set >>> timezone handler >>> file: path=/etc/localtime state=absent >>> when: zoneinfo.stdout.find('CST') != 1 >>> notify: >>> - set timezone >>> >>> I have tried not true. Is not. == 1 == 0 and several other options but >>> its not working. >>> >>> Any suggestions? >>> >>> Thanks! >>> >>> -- >>> 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] <javascript:>. >>> To post to this group, send email to [email protected] >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ansible-project/1c7a5e23-6375-4136-9b75-38777dbf1e41%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ansible-project/1c7a5e23-6375-4136-9b75-38777dbf1e41%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/CAAnNz0M3oPZ4TYuNMRDsEQmoA42o%2BuVWQZYVjL-Kq_rAYzXj-w%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/ansible-project/CAAnNz0M3oPZ4TYuNMRDsEQmoA42o%2BuVWQZYVjL-Kq_rAYzXj-w%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/017f7dc0-73cd-41f8-863d-95d5865925a0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
