hm. try to use win_reg_stat with register variable to determine what 
version your need is installed/not 
installed 
https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#use-registry-editor
and wrap all other installation tasks with block and when condition

пятница, 4 февраля 2022 г. в 01:09:06 UTC+3, Nitrous: 

>
> Thanks.
>
> I have a pretask before installing, where it copies files to the target 
> server, and then run your idempotent way.
>
> How can I do a check, before copying the .net 4.8 exe, if 4.8 exists, and 
> only run the copy/install if .net 4.8 isnt installed/exists.
>
> If it exists, then skip.
>
> Thanks
> On Friday, January 21, 2022 at 2:51:09 PM UTC-6 [email protected] 
> wrote:
>
>> 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/f4ab9ffa-f330-4e64-9426-c26a7916e61cn%40googlegroups.com.

Reply via email to