Thanks Todd, appreciate your guidance. On Thursday, December 30, 2021 at 8:59:08 PM UTC+5:30 uto...@gmail.com wrote:
> Assuming “hostname” means a fully qualified domain name, then the > following may help you. > > ---- hosts: all > gather_facts: True > become: false > tasks: > - name: show file contents > debug: > msg: "{{ lookup('file', 'customer-expects.txt') }}" > > - name: Correct kernel? > set_fact: > # These dashes matter. > expectation: |- > {%- if lookup('file', 'customer-expects.txt') > is regex([ansible_system,ansible_fqdn,ansible_kernel]|join(' > ')|regex_escape()) -%} > matched > {%- else -%} > missed > {%- endif -%} > - name: Report via Debug > run_once: True > debug: > msg: | > {% for exp in ['missed', 'matched', 'error'] %} > Kernel_expectations_{{ exp }}: > {% for hosti in ansible_play_hosts_all|sort %} > {% if hostvars[hosti]['expectation']|d('error') == exp %} > - {{ hosti }} > {% endif %} > {% endfor %} > {% endfor %} > > This produces the following output given the command > > ANSIBLE_STDOUT_CALLBACK=yaml ansible-playbook customer-expects.yml --limit > flakey.sample.net,shaggy.sample.net,scooby.sample.net,clyde.sample.net -v > > Using /home/utoddl/.ansible.cfg as config file > > PLAY [all] ****************************** > > TASK [Gathering Facts] **************** > fatal: [flakey.sample.net]: UNREACHABLE! => changed=false > msg: 'Failed to connect to the host via ssh: uto...@flakey.sample.net: > Permission denied (publickey,gssapi-keyex,gssapi-with-mic).' > unreachable: true > ok: [scooby.sample.net] > ok: [shaggy.sample.net] > ok: [clyde.sample.net] > > TASK [show file contents] ************** > ok: [clyde.sample.net] => > msg: |- > Linux flakey.sample.net 5.15.11-200.fc35.x86_64 > Linux clyde.sample.net 5.15.11-200.fc35.x86_64 > Linux shaggy.sample.net 5.15.11-200.fc35.x86_64 > Linux scooby.sample.net 5.15.11-200.fc35.x86_64 > Linux loaner.sample.net 5.15.11-200.fc35.x86_64 > > TASK [Correct kernel?] ***************** > ok: [clyde.sample.net] => changed=false > ansible_facts: > expectation: matched > ok: [shaggy.sample.net] => changed=false > ansible_facts: > expectation: missed > ok: [scooby.sample.net] => changed=false > ansible_facts: > expectation: matched > > TASK [Report via Debug] ************** > ok: [clyde.sample.net] => > msg: |- > Kernel_expectations_missed: > - shaggy.sample.net > > Kernel_expectations_matched: > - clyde.sample.net > - scooby.sample.net > > Kernel_expectations_error: > - flakey.sample.net > > PLAY RECAP ***************************clyde.sample.net : ok=4 > changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 > shaggy.sample.net : ok=2 changed=0 unreachable=0 failed=0 > skipped=0 rescued=0 ignored=0 flakey.sample.net : ok=0 > changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0 > scooby.sample.net : ok=2 changed=0 unreachable=0 failed=0 > skipped=0 rescued=0 ignored=0 > > On 12/29/21 9:46 PM, Marian Saldhana wrote: > > Thanks for your reply. > > *Expected value is: - Linux hostname 4.18.0-193.el8.x86_64 ( The customer > has RHEL 8.2 running in its env )* > I have 100 such lines given to me by the customer ( OS inventory ) where > 80% of the values that I receive by running the ansible standard module > matches with the expected value given by the customer. I need to understand > how these values can be matched with the values given by the customer. > > > > > On Wednesday, December 29, 2021 at 10:56:06 PM UTC+5:30 uto...@gmail.com > wrote: > >> What, exactly, do the "values given by the customer" look like? It almost >> certainly isn't going to match the output of `uname -a`. (I'm guessing. >> But please, don't make us guess; give us the details of the actual problem.) >> >> On Monday, December 27, 2021 at 11:58:39 PM UTC-5 marian....@gmail.com >> wrote: >> >>> Hi All, >>> >>> This is my code: >>> >>> --- >>> # tasks file for uname >>> >>> - name: Kernel version number >>> register: uname_a >>> command: "uname -a" >>> >>> - debug: >>> var: uname_a.stdout_lines >>> >>> +++ >>> >>> TASK [uname_tab1 : debug] >>> *************************************************************************************************************** >>> ok: [192.168.43.237] => { >>> "uname_a.stdout_lines": [ >>> "Linux ansible-client 4.18.0-348.el8.x86_64 #1 SMP Tue Oct 19 >>> 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux" >>> ] >>> } >>> ok: [192.168.43.6] => { >>> "uname_a.stdout_lines": [ >>> "Linux ansible-client1 4.18.0-348.el8.x86_64 #1 SMP Tue Oct 19 >>> 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux" >>> ] >>> } >>> >>> ++++ >>> >>> Now I need to compare these values with the values given by the customer >>> ( Linux ansible-client1 4.18.0-348.el8.x86_64 ) hence request your >>> assistance out here to write a program. >>> On Wednesday, December 22, 2021 at 5:36:21 AM UTC+5:30 rjr...@gmail.com >>> wrote: >>> >>>> That kind of info can be obtained with "gather facts" step, which is >>>> the first step when running a playbook. >>>> >>>> You just have to comparte returned info in ansible variables like >>>> "ansible_distribution" and "ansible_distribution_version" with the >>>> expected >>>> value. You can store expected value in a local dictionary that uses >>>> hostname as the key value. >>>> >>>> El martes, 21 de diciembre de 2021 a la(s) 08:15:15 UTC-3, >>>> marian....@gmail.com escribió: >>>> >>>>> Thanks for your reply. >>>>> >>>>> I want to automate tasks such as verifying the OS version of remote >>>>> nodes. >>>>> >>>>> The customer has given me the expected value i.e. Centos version 8.2 >>>>> >>>>> Through automation I wish to get the OS version of the remotes nodes >>>>> and then compare that value with the value that I have received from the >>>>> customer through ansible playbooks. >>>>> On Tuesday, December 21, 2021 at 4:06:57 PM UTC+5:30 >>>>> dick....@geant.org wrote: >>>>> >>>>>> You need to elaborate some more, I can't make anything of your story. >>>>>> Give some real world examples of the tasks that you're trying to >>>>>> automate. >>>>>> >>>>>> On Tue, 21 Dec 2021 at 07:22, Marian Saldhana <marian....@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> As I am new to ansible i need to write a role which compares input >>>>>>> /output value. >>>>>>> >>>>>>> Let me elaborate. >>>>>>> >>>>>>> I need to write a role where I already have expected value, for eg >>>>>>> hostname of ansible remote node - abc. >>>>>>> >>>>>>> Now I need to write a role which first will fetch the value from the >>>>>>> remote node and then compare the fetched value with the expected value >>>>>>> ( >>>>>>> abc ) I have with me. >>>>>>> >>>>>>> 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 ansible-proje...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/ansible-project/b708d4e2-ded7-44f0-b68a-866e93ec860bn%40googlegroups.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/ansible-project/b708d4e2-ded7-44f0-b68a-866e93ec860bn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>>> Sent from a mobile device - please excuse the brevity, spelling and >>>>>> punctuation. >>>>>> >>>>> -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/3f4e20ff-2ece-4441-ae03-d70a5802ca2cn%40googlegroups.com > > <https://groups.google.com/d/msgid/ansible-project/3f4e20ff-2ece-4441-ae03-d70a5802ca2cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > > -- > Todd > > -- 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-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/da19fb7a-9207-4cc5-a99b-4eca86ef3f31n%40googlegroups.com.