当前位置:首页 > CN2资讯 > 正文内容

ansible远程在Windows server 2012 R2 安装vcredist(2008 2010 2012 2013)

10小时前CN2资讯

需求:

远程在windows server 2012 R2上安装vcredist 2008, 2010, 2012和2013 四个版本。


首先在ansible的官方文档找了一下看有没有适合的模块直接能使用的。

最开始找到的是win_package模块: http://docs.ansible.com/ansible/win_package_module.html ,同时看到它给出来的例子.

感觉可以直接拿来就用啊。把path路径换成要安装的exe 放置的本地路径,不就可以了吗?

后来发现,win_package里的product_id 是必须的,但是在系统没有安装vcredist之前,这些product_id 是获取不到的。尝试了先在系统手动安装四个vcredist 版本,然后再去注册表找到product_id。然后再将product_id 写到ansible-playbook里,没错,最后还是失败了。

好吧,只能找其他办法了,尝试使用powershell脚本实现。


刚开始,测试安装vcredits2008 的脚本是这样的:

vcredist_2008.ps1

$pathvargs_2008 = {C:\tmp\vcredist2008_x64.exe /S /v/qn }

Invoke-Command -ScriptBlock $pathvargs_2008


然后ansible-playbook脚本是这样的:

win_shell.yml :

--- - name: run win_shell   hosts: ec2_windows   gather_facts: false   tasks:     - name: Install 2008 ...       win_shell: c:\tmp\vcredist_2008.ps1


ansible-playbook  win_shell.yml 执行一下,发现居然成功了。


依样画葫芦,咔咔咔,就把其他三个版本的脚本,换了个安装包的名字,就以为可以了。

后来,发现vcredist2010的版本总是安装不上。手动安装比较了一下,软件在安装的时候,2010提示的信息和其余三个版本的有点差异,应该在powershell脚本的参数上是不一样的。

好吧,继续在网上找原因。

终于找到了一篇有用的文章:《Mailbag: How to perform a silent install of the Visual C++ 2010 redistributable packages》https://blogs.msdn.microsoft.com/astebner/2010/10/20/mailbag-how-to-perform-a-silent-install-of-the-visual-c-2010-redistributable-packages/


原来在微软的官网上一直躺着我要找的答案。文章里提到了Silent install, Unattended install,  Silent repair,  Silent uninstall. 四种方式,我现在要找的就是Unattended install模式,不需要人工交互的方式。马上将参数复制黏贴过来使用。


所以,现在的vcredist_2010.ps1 的命令变成了这样:

$pathvargs_2010 = {C:\tmp\vcredist2010_x64.exe /passive /norestart }

Invoke-Command -ScriptBlock $pathvargs_2010


就是2010 版本安装的脚本不一样而已,其他的都一样。


最终的ansible-playbook 是这样的:

vim   win_shell.yml :

---

- name: run win_shell

  hosts: ec2_windows

  gather_facts: false

  tasks:

    - name: Install 2013 ...

      win_shell: c:\tmp\vcredist_2013.ps1

    - name: Install 2008 ...

      win_shell: c:\tmp\vcredist_2008.ps1

    - name: Install 2012

      win_shell: c:\tmp\vcredist_2012.ps1

    - name: Install 2010 ...

      win_shell: c:\tmp\vcredist_2010.ps1


测试:

先把服务器上之前安装的vcredist都卸载了,再运行 ansible-playbook win_shell.yml 。

我就静静地等待结果,最终看到四个成功的提示。然后,在server 2012 R2 服务器上,查看注册表,四个版本的vcredist 都成功安装了。


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/29220.html

    分享给朋友:

    “ansible远程在Windows server 2012 R2 安装vcredist(2008 2010 2012 2013)” 的相关文章

    Hostodo官网打不开?快速解决DNS、HSTS、TLS 1.3等问题的终极指南

    DNS解析问题 有时候,Hostodo官网打不开可能是因为DNS解析出了问题。DNS就像是一个电话簿,负责将域名转换成IP地址。如果DNS服务器出现问题,浏览器就无法找到Hostodo的服务器。我们可以尝试手动设置DNS服务器地址,比如使用Google的8.8.8.8或Cloudflare的1.1....

    腾讯云建站停止服务的影响与应对策略

    腾讯云建站(CloudPages)作为腾讯云的一项重大创新,一直以来都旨在简化网站建设过程。这个一站式自研模板建站SaaS产品,背后的团队努力希望通过无代码和零基础的设计,帮助更多的中小企业顺利实现数字化转型。我的朋友们也曾尝试过这个平台,发现它在解决数字化营销关键痛点方面表现出色。 CloudPa...

    如何高效使用测速脚本监测网络性能

    在互联网的快速发展中,网络测速变得越来越重要。作为一个互联网用户,了解自己的网络性能是否稳定,以及在不同时间与地点的表现,能帮助我们更好地选择服务和进行问题排查。网络速度直接影响了我们的在线体验,无论是看视频、玩游戏,还是进行远程办公,网络性能都扮演着至关重要的角色。 测速脚本出现在这样的背景下,它...

    inet.ws VPS测评:揭示高性价比主机服务的真实体验与分析

    在如今这个互联网发展的时代,选择一个可靠的虚拟专用服务器(VPS)提供商至关重要。我们要介绍的就是 inet.ws,一家国外的主机服务商。inet.ws 的主营业务是销售全球多节点的 VPS 服务器。自从 2023 年 8 月推出了全场 13 个机房的 7.5 折优惠活动后,它的性价比愈发吸引了许多...

    选择最佳印度尼西亚 VPS 服务商的终极指南

    在了解印度尼西亚的虚拟专用服务器(VPS)之前,我们先来讲讲VPS的基本概念。简单来说,VPS是一种将一台物理服务器划分为多个虚拟服务器的技术。每个虚拟服务器都有独立的操作系统、资源和配置,让用户可以像使用独立服务器一样,获得更高的灵活性和控制权。这种方式不但能满足各种规模的业务需求,还能显著降低成...

    如何有效使用WP Rocket插件提升WordPress网站性能

    WP Rocket是一个强大的高级WordPress缓存插件,它的使用对于提升网站的速度和性能起着至关重要的作用。如今,网站的加载速度对于用户体验和SEO排名都有着重要的影响。WP Rocket通过一系列功能和设置,帮助用户轻松优化自己的网站,进而增加访问量和客户满意度。 在使用WP Rocket插...