gpt4 book ai didi

.net - 使用 Ansible 安装 .Net Framework 4.6.1

转载 作者:行者123 更新时间:2023-12-04 00:42:38 24 4
gpt4 key购买 nike

我正在尝试使用 Ansible 安装 .Net Framework 4.6.1,但直到现在我都没有运气。

我试过这些方法:

  • 运行一个 win_package 来安装它,但它只是挂到无穷大
    - name: Install Microsoft NET Framework
    win_package:
    path: "http://path/to/dotNetFramework4.6.1.exe"
    product_id: '{BD6F5371-DAC1-30F0-9DDE-CAC6791E28C3}'
    register: dotnetfx_exe
  • 运行 PowerShell 脚本来安装它(第一个不起作用,第二个抛出堆栈溢出异常):
    Install-WindowsFeature Net-Framework-Core -source C:\temp\dotNetFramework4.6.1.exe

    或者
    Start-Process -FilePath C:\temp\dotNetFramework4.6.1.exe -ArgumentList "/q /norestart" -Wait -Verb RunAs
  • 我尝试使用 win_feature 来安装它,但它什么也不做。
    - name: Install NET-Framework-Core
    win_feature:
    name: NET-Framework-Core
    state: present
    source: C:\temp\dotNetFramework4.6.1.exe
    include_sub_features: no
    include_management_tools: yes
    register: result
  • 试图运行一个批处理脚本来安装它,但没有运气:
    start /wait c:\temp\dotNetFramework4.6.1.exe /q /norestart /log %TEMP%\dotNetFx4.6.1.log

  • 有没有人使用 Ansible 成功安装 .Net Framework 4.6.1?

    任何人都可以分享他们安装它的任务/角色吗?

    最佳答案

    我们通过 Ansible 调用 Chocolatey 来安装 .NET 4.6.1,但遇到了一些复杂的问题。相反,我重写了我们的剧本来进行“ native ”安装。我想您遇到了与我尝试运行离线安装程序时遇到的相同问题。这让我看到了您的帖子和 this thread .这是我必须做的才能让它工作。

    提取离线安装程序的内容:

    NDP461-KB3102436-x86-x64-AllOS-ENU.exe /s /x /b"C:\tmp\dotnet\dotnet461" /v"/qn"

    如果 .NET 已经安装,此命令可以卸载它。我只是在一个新的 vagrant VM 上运行它,而不是试图解决这个问题。

    压缩该文件夹的内容,将其上传到内部主机或网络共享,然后使用您的剧本下载/解压缩/运行它。
      - name: Download Microsoft .NET Framework 4.6.1 installer
    win_get_url:
    url: http://www.path.to/package/dotnet461.zip
    dest: C:\tmp\dotnet\dotnet461.zip

    - name: Unzip Microsoft .NET Framework 4.6.1 installer
    win_unzip:
    src: C:\tmp\dotnet\dotnet461.zip
    dest: C:\tmp\dotnet
    rm: true

    - name: Run Microsoft .NET Framework 4.6.1 installer
    raw: C:\tmp\dotnet\dotnet461\Setup.exe /q /norestart /log C:\tmp\dotnet\dotnet461\log.txt /x86 /x64 /redist
    register: dotnet_install

    - name: Reboot as required by Microsoft .NET Framework 4.6.1 installer
    win_reboot:

    install 命令中的参数很重要,否则安装程序将失败。你也许可以删除“/log C:\tmp\dotnet\dotnet461\log.txt”,但我会让你测试一下:D

    这也不是幂等的。安装程序每次都会执行。您可以通过将这些任务放在单独的 .yml 文件中并根据注册表检查执行条件包含以查看是否已安装来解决此问题。

    像这样:
      - name: Check for current Microsoft .NET Framework 4 version
    win_reg_stat:
    path: HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
    name: Version
    register: dotnet_version

    - name: Install Microsoft .NET Framework 4.6.1
    include: install_dotnet.yml
    when: dotnet_version.value | version_compare('4.6.01', '<', strict=True)

    关于.net - 使用 Ansible 安装 .Net Framework 4.6.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41835740/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com