可以在Vagrant中自动安装桌面应用程序

时间:2016-06-11 19:13:26

标签: powershell automation vagrant

我拥有:我需要安装的流浪桌面应用程序(Windows应用程序(exe)),在公司网络中共享的文件夹(保存应用程序版本)。

我需要做什么:

  1. 安装Vagrant(现在我手动完成) - 完成;
  2. 安装Windows 8.1和Windows 10盒子(现在我手动完成) - 完成;
  3. 从公司网络中共享的文件夹中获取最新版本的应用程序(.exe文件)(该文件夹中有多个文件),将其放入Vagrant机器(例如Win 8)并静默安装在。 / LI>

    所有流程都应尽可能自动化。

    但是我无法将Vagrant和复制/安装应用程序组合到Vagrant机器上。我深入研究了PowerShell - 但没有运气......我有用于静默安装的PowerShell脚本,但也许有能力为所有这些操作创建一个脚本(例如在PowerShell中)?我知道我可以使用Chocolatey,但我需要一个可以一步一步动作的脚本。

1 个答案:

答案 0 :(得分:0)

我通过创建非常简单的脚本来解决问题,该脚本基于Chocolatey命令(脚本安装Vagrant,VirtualBox,我需要的副本文件,创建我需要的文件夹):

# Set PowerShell policy to Unrestricted

Set-ExecutionPolicy Unrestricted -Force

# Install Chocolatey
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

# Turn off confirmation in Chocolatey
chocolatey feature enable -n=allowGlobalConfirmation

# Install Vagrant
choco install vagrant

# Install VirutalBox
choco install virtualbox

# Create folder where Vagrant box will be placed
New-Item -ItemType directory -Path "D:\VagrantBoxes\Win8"

# Create folder where release will be placed
New-Item -ItemType directory -Path "D:\Release"

# Map network drive (release folder)
New-PSDrive –Name “B” –PSProvider FileSystem –Root 
“\\r\P\A\OS\D B\R 2\x64” –Persist

# Map network drive (vagrant boxes folder)

New-PSDrive –Name “B” –PSProvider FileSystem –Root 
“\\r\P\A\A\V M\V m” –Persist

# Copy Vagrant box from network folder
Copy-Item -Path 
"B:\windows_81x64-enterprise_virtualbox_15.07.17.box" -Destination "D:\VagrantBoxes\Win8"

# Copy newest build from network folder to remote machine

Get-ChildItem "B:\" -Filter '*.exe' | Where Name -NotMatch '.*NoDB\.exe$' | Sort LastWriteTime -Descending | Select -First 1 | Copy-Item -Destination 'D:\'

# Navigate to folder where Vagrant file will be placed

CD "D:\VagrantBoxes\Win8"

# Mount Windows box

vagrant init windows_81x64-enterprise_virtualbox_15.07.17.box

# Run Vagrant

vagrant up

第二个脚本用于Windows机器内软件的安装过程(我不能在此处发布此代码)。