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.