需求:

远程在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_shellhosts: ec2_windowsgather_facts: falsetasks:- 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://blog.51cto.com/hellocjq/1923528

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

  1. windows server 12 r2安装Hyper-V

    安装Hyper-V是为了安装虚拟机centos系统,做服务器使用 1.点击左下角开始处,打开服务管理器 2.点击添加角色和功能 3.直接下一步 3.勾选Hyper-v,然后点下一步,笔者这里已经安装 ...

  2. 使用MDT部署Windows Server 2003 R2

    由于Windows Server 2003 R2安装光盘由两种,所以使用Microsoft Deployment Toolkit部署有其特殊性.以下介绍两种方法来通过Microsoft Deploym ...

  3. 腾讯云Windows Server 2012 R2安装wamp2.5提示缺少msvcr100.dll文件的解决方案

    腾讯云Windows Server 2012 R2安装wamp2.5提示缺少msvcr100.dll文件的解决方案! 楼上是摘要~点击这里查看 腾讯云Windows Server 2012 R2安装w ...

  4. kb2919442不适用计算机,Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机(示例代码)...

    原因:我的系统是Windows Server 2012 R2 Standard首先我是想要安装SVN客户端,然后系统让我安装Windows Server 2012 R2 安装补丁KB2999226 思 ...

  5. windows server 2008 R2、windows 10、windows server 2012 R2安装windows media player

    **windows server 2008 R2.windows 10.windows server 2012 R2安装windows media player** windows 10: 1.打开控 ...

  6. “Windows Server 2012 R2安装VMwareTools提示“安装程序无法验证是否已安装所需的Microsoft更新KB2919355”的解决办法

    Windows Server 2012 R2安装VMwareTools提示"安装程序无法验证是否已安装所需的Microsoft更新KB2919355 网上查询资料说是Windows Serv ...

  7. 戴尔服务器r530 windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案

    戴尔服务器r530 windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案 关于在戴尔 ...

  8. SQL Server研习录(24)——Windows Server 2012 R2安装数据库时提示KB2919355安装问题解决

    SQL Server研习录(24)--Windows Server 2012 R2安装数据库时提示KB2919355安装问题解决 版权声明 一.问题描述 二.解决办法 版权声明 本文原创作者:清风不渡 ...

  9. Windows Server 2012 R2 安装 SQL server 2008 r2(兼容性问题已处理)

    本文转自:https://www.jianshu.com/p/70d525710371 Windows Server 2012 R2 安装 SQL server 2008 r2(兼容性问题已处理) 正 ...

  10. Windows Server 2012 R2安装图解

    Windows Server 2012 R2安装图解  本文以光盘安装为例,如是U盘安装可能有所不同的地方,请大家根据实际情况操作,基本相同 1首先选择安装语言--时间和键盘的接入方式: 2开始安装: ...

最新文章

  1. 将Model对象转换成json文本或者json二进制文件
  2. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
  3. 分享一些好用的 Chrome 扩展
  4. 读书笔记 -《深入理解计算机系统》2.1
  5. C - Swaps 2(树状数组,思维)
  6. c++查找pair,使用map,unordered_map,vector
  7. 摇杆怎么映射到键盘_[评测]YAMAHA PSRSX900:雅马哈升级幅度最大的高端编曲键盘键盘中国原创评测...
  8. 《深入理解ES6》4.扩展的对象功能
  9. HTML学习教程之终极篇
  10. 抹机王怎么一键新机_ir新机工具箱手机版下载-ir新机抹机王盒子v5.6.6 免登陆版-007游戏网...
  11. NBU备份恢复Vmware
  12. ADI超声解决方案 和系统成像设计
  13. 怎么编写微博爬虫 图片爬虫
  14. 如何主动退出小程序(微信小程序)
  15. 百度地图API和高德地图API资料集锦
  16. 【转】用生命之花制定自己的月计划
  17. 最新的三星android版本号,三星率先公布Android 12/13升级机型名单,可惜S9/Note9被抛弃...
  18. 线性代数学习笔记(二十二)——向量间的线性关系(二)
  19. 计科学硕考研初试经验贴(11408)
  20. 国防科技大学计算机学院 网络与信息安全研究所所长,为网络铸盾,国防科大战队再获佳绩!...

热门文章

  1. 订票系统java源码_航空订票系统java源码
  2. 基于SSM框架的BS微博系统的设计与实现
  3. 乐优商城(02)--商品分类
  4. 5. DICOM图像层级分类-DCMTK-压缩图像PixelData读取
  5. 模拟电路 - 半导体基本知识
  6. 5.2 imnoise函数
  7. python计算矩阵的散度_数据集相似度度量之KLJS散度
  8. 使用openssl 来生成rsa pkcs1 2048格式的公私钥
  9. NV12等常用YUV数据格式
  10. matlab 获取axes图片,matlabaxes显示图片