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.