Hi Todd,

Can you please let me know how you have entered expected values in  
customer-expects.txt 
( in the sample playbook that you had provided earlier )

On Tuesday, January 4, 2022 at 2:20:38 PM UTC+5:30 Marian Saldhana wrote:

> Hi Todd,
>
> Thanks for assisting me on it, I did configure the playbook on my test 
> machines and here is the output:
>
> root@ansible-master /]# ansible-playbook hostname1.yml
>
> PLAY [all] 
> ******************************************************************************************************************************
>
> TASK [Gathering Facts] 
> ******************************************************************************************************************
> ok: [ansible-client]
> ok: [ansible-client1]
>
> TASK [show file contents] 
> ***************************************************************************************************************
> ok: [ansible-client] => {
>     "msg": "Linux ansible-client 4.18.0-348.el8.x86_64\nLinux 
> ansible-client1 4.18.0-348.el8.x86_64"
> }
> ok: [ansible-client1] => {
>     "msg": "Linux ansible-client 4.18.0-348.el8.x86_64\nLinux 
> ansible-client1 4.18.0-348.el8.x86_64"
> }
>
> TASK [Correct kernel?] 
> ******************************************************************************************************************
> ok: [ansible-client]
> ok: [ansible-client1]
>
> TASK [Report via Debug] 
> *****************************************************************************************************************
> ok: [ansible-client] => {
>     "msg": "Kernel_expectations_missed:\n\nKernel_expectations_matched:\n- 
> ansible-client\n- ansible-client1\n\nKernel_expectations_error:\n\n"
> }
>
> PLAY RECAP 
> ******************************************************************************************************************************
> ansible-client             : ok=4    changed=0    unreachable=0   
>  failed=0    skipped=0    rescued=0    ignored=0
> ansible-client1            : ok=3    changed=0    unreachable=0   
>  failed=0    skipped=0    rescued=0    ignored=0
>
> [root@ansible-master /]#
>
> On Friday, December 31, 2021 at 10:56:42 AM UTC+5:30 Marian Saldhana wrote:
>
>> Thanks Todd, appreciate your guidance.
>>
>> On Thursday, December 30, 2021 at 8:59:08 PM UTC+5:30 [email protected] 
>> 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: [email protected]: 
>>> 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 [email protected] 
>>> 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 [email protected] 
>>>> 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 
>>>>> [email protected] 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, 
>>>>>> [email protected] 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 
>>>>>>> [email protected] 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 <[email protected]> 
>>>>>>>> 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 [email protected].
>>>>>>>>> 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 [email protected].
>>>
>>> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/e255ab70-822c-4371-90e9-6f80b28a30d4n%40googlegroups.com.

Reply via email to