Use idempotent way. It will be installed if it has not already been 
installed

        -   ansible.windows.win_package:
            path: 'c:\path\to\ndp48-x86-x64-allos-enu.exe'
            product_id: "{BAAF5851-0759-422D-A1E9-90061B597188}"
            arguments: "/q /norestart"

среда, 19 января 2022 г. в 21:33:41 UTC+3, Nitrous: 

> This is what I get:
>
> TASK [net481 : Check if .net 4.8 is installed] 
> **************************************************************************************************************************************************************************
> task path: /etc/ansible/roles/net481/tasks/main.yml:1
> [WARNING]: conditional statements should not include jinja2 templating 
> delimiters such as {{ }} or {% %}. Found: '4.8' in {{ script_run }}
> fatal: [xxxxx]: FAILED! => {
>     "msg": "The conditional check ''4.8' in {{ script_run }}' failed. The 
> error was: error while evaluating conditional ('4.8' in {{ script_run }}): 
> 'script_run' is undefined\n\nThe error appears to be in 
> '/etc/ansible/roles/net481/tasks/main.yml': line 1, column 3, but may\nbe 
> elsewhere in the file depending on the exact syntax problem.\n\nThe 
> offending line appears to be:\n\n\n- name: Check if .net 4.8 is installed\n 
>  ^ here\n"
> }
>
> Role is this:
>
> - import_role:
>       name: net481
>     when: "'4.8' in {{ script_run }}"
>
> Task Ran:
>
> - name: Check if .net 4.8 is installed
>   ansible.windows.win_shell:
>     (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\NET Framework 
> Setup\NDP\v4\Full").version -lt 4.8
>   register: script_run  - name: Install .net 4.8, if not installed
>   ansible.builtin.script: /etc/ansible/roles/onprembaseline/files/net48.ps1
>   register: script_run
>
> On Thursday, December 30, 2021 at 12:25:32 PM UTC-6 Niek wrote:
>
>> Probably check: 
>> https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
>>
>> Op donderdag 30 december 2021 om 19:24:36 UTC+1 schreef Niek:
>>
>>> Not a ansible hero here, but i think you can do something with the when: 
>>> command in your playbook. 
>>>
>>> So somewhere in de the task where you check the version you will do a
>>> register: dotnet_version
>>>
>>> And in the taks where you execute it: 
>>> when: "'4.8' in {{ dotnet_version }}"
>>>
>>> Op woensdag 29 december 2021 om 17:57:20 UTC+1 schreef Nitrous:
>>>
>>>> anyone with ideas?
>>>>
>>>> On Tuesday, December 21, 2021 at 3:25:23 PM UTC-6 Nitrous wrote:
>>>>
>>>>> any suggestions?
>>>>>
>>>>> On Monday, December 20, 2021 at 9:09:51 AM UTC-6 Nitrous wrote:
>>>>>
>>>>>> How can I incorporate this registry check before my playbook runs to 
>>>>>> install .net 4.8:
>>>>>>
>>>>>> (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\NET Framework 
>>>>>> Setup\NDP\v4\Full").version -lt 4.8
>>>>>>
>>>>>> The above should only run my playbook, if 4.8 isnt installed. If 
>>>>>> version is less than 4.8 run the below playbook, else skip
>>>>>>
>>>>>> My playbook to install .net 4.8:
>>>>>> - name: Copy .net 4.8 Files
>>>>>>   ansible.windows.win_copy:
>>>>>>     src: /etc/ansible/roles/net481/files/ndp48-x86-x64-allos-enu.exe
>>>>>>     dest: C:\Scripts\
>>>>>>     state: present
>>>>>>
>>>>>> - name: Install .net 4.8
>>>>>>
>>>>>>   ansible.builtin.script: 
>>>>>> /etc/ansible/roles/onprembaseline/files/net48.ps1
>>>>>>   register: script_run
>>>>>>
>>>>>> - name: Reboot after .NET 4.8 Install
>>>>>>   ansible.windows.win_reboot:
>>>>>>
>>>>>> 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/336d8259-efce-45cd-8083-13a0c26de5bdn%40googlegroups.com.

Reply via email to