Alvaro,

Thanks again for your direction.  I started testing out the private feature 
of Atlas' boxes and am going to do what you suggested.  I'll keep my public 
box public still but for my developers we'll have a private box that is 
fully loaded and ready to go.

On Friday, February 12, 2016 at 9:35:37 PM UTC-8, Christopher wrote:
>
> Thanks Alvaro.  Always a great help.
>
> I've definitely considered everything you're saying but I'm doing most of 
> my work for an enterprise using our MSDN license for the software installs 
> (developer boxes with enterprise Visual Studio and SQL Server).
>
> I know I can make a private box up on Atlas with only certain people 
> having access (that's my understanding at least) but I'm trying to do a one 
> time deploy for my team.  We generally don't build up and tear down boxes 
> so it's not a terribly big issue with the install times and the time gained 
> from a standardized configuration is already good enough.
>
> Ideally, what you suggest about building a box on top of a base one is 
> what I want to do but I gotta take baby steps since I'm trying to influence 
> and change the working culture.  "VMs as cattle" (VAC?) is barely starting 
> to become part of our vocabulary in my organization.  Once I've got this 
> box created I probably start work on your suggestion.
>
> Thanks for the push in the right direction!
>
> Regards,
>
> Chris
>
> On Friday, February 12, 2016 at 1:07:14 AM UTC-8, Alvaro Miranda Aguilera 
> wrote:
>>
>> Hello Christopher,
>>
>> Couple of comments here.
>>
>> 1. I have seen lots of people use chocolatey to install software, I think 
>> they got MS VS there too,
>> 2. Once the VM is installed, you should think into either package the box 
>> and create your own box with MS VS Installed, so you save time on the next 
>> run
>> or, you can create your own box with MS VS installed.
>>
>> the box it self will be a bit larger, but having the software on it, will 
>> make it easier to run :)
>>
>> For 2.a (chocolatey on vagrant) have a look at this:
>>
>> http://digitaldrummerj.me/vagrant-provisioning-with-chocolatey/
>>
>> For 2.b, (packer)
>>
>> you can see the installer of chocolatey here:
>>
>> https://github.com/dylanmei/packer-windows-templates/blob/master/scripts/chocolatey.ps1
>>
>> And a sample project here:
>> https://github.com/dylanmei/packer-windows-templates
>>
>> Hope this helps
>> Alvaro.
>>
>> On Wed, Feb 10, 2016 at 11:19 AM, Christopher <[email protected]> 
>> wrote:
>>
>>> Thanks your help Alvaro.  Sorry for the late response on this but your 
>>> response got me headed in the right direction.  Your solution specifically 
>>> mentions Linux.  I am on Windows so I figured I would put my solution up as 
>>> well.
>>>
>>> I took what you said and adjusted my Vagrantfile and provisioners to 
>>> mount one .iso at time.  Once the application is finished uninstalling, I 
>>> unmount the .iso and then mount the next one.
>>>
>>> There was a gotcha though.  I had to copy over the .iso file to a 
>>> temporary folder first so that I could properly mount it.  I also did it in 
>>> a way where I did not have to target a specific drive letter.
>>>
>>> Here's the relevant portion of my Vagrantfile:
>>>
>>> Vagrant.configure(2) do |config|
>>> ...
>>>   # =================================================================
>>>   # PROVISIONING
>>>   # Additional provisioners such as Puppet, Chef, Ansible, Salt, and 
>>> Docker are also available.
>>>   # Please see the Vagrant documentation for more information about 
>>> their specific syntax and use.
>>>   # =================================================================
>>>   config.vm.provision "file", source: 
>>> "C:/Hashicorp/Vagrant/provisioners/install-visualstudio.ps1", 
>>> destination: "C:/tmp/vagrant-shell/install-visualstudio.ps1"
>>>
>>>   # Provision Visual Studio
>>>   config.vm.provision "shell", inline: 
>>> "C:/tmp/vagrant-shell/install-visualstudio.ps1", run: "always"
>>> ...
>>> end
>>>
>>> And here's my install-visualstudio.ps1 file:
>>>
>>> $vspath = "C:\Program Files (x86)\Microsoft Visual Studio 12.0"
>>> if (test-path $vspath)
>>> {
>>>  Write-Host "Visual Studio is already installed...we can skip this 
>>> step."
>>> }
>>> else {
>>>  Write-Host "Installing Visual Studio 2013 with Update 5..."
>>>  Write-Host "This will take a while so maybe grab some coffee or tea?"
>>>  Write-Host "Copying ISO file to local file system"
>>>  Copy-Item "\\VBOXSVR\ISO_Installers\Microsoft\Visual Studio\2013 with 
>>> Update 5\en_visual_studio_ultimate_2013_with_update_5_x86_dvd_6815896.iso" 
>>> -Destination "C:\tmp\"
>>>
>>>  Write-Host "Mounting the ISO file"
>>>  $iso = "C:/tmp/
>>> en_visual_studio_ultimate_2013_with_update_5_x86_dvd_6815896.iso"
>>>  Mount-DiskImage -verbose -ImagePath $iso -StorageType ISO
>>>
>>>  # Get the drive letter that the ISO was mounted to so that we can 
>>> access the installer.
>>>  $image = Get-DiskImage -ImagePath $iso | Get-Volume
>>>  $drive = "$([string]$image.DriveLetter):"
>>>
>>>  $p = New-Object System.Diagnostics.Process
>>>  $pinfo = New-Object System.Diagnostics.ProcessStartInfo("$drive\
>>> vs_ultimate.exe", "/full /quiet /norestart");
>>>  $p.StartInfo = $pinfo;
>>>  $start = Get-Date -displayhint time
>>>  $p.Start();
>>>  $p.WaitForExit();
>>>  $end = Get-Date -displayhint time
>>>  $time = NEW-TIMESPAN -Start $start -End $end
>>>  Write-Host "Visual Studio 2013 with Update 5 installed.  Time taken (
>>> minutes): " $time.TotalMinutes
>>>  Write-Host "Dismounting the Visual Studio ISO file..."
>>>  Dismount-DiskImage -ImagePath $iso
>>> }
>>>
>>> Write-Host "Deleting the Visual Studio 2013 with Update 5 ISO file..."
>>> $file = "C:/tmp/
>>> en_visual_studio_ultimate_2013_with_update_5_x86_dvd_6815896.iso"
>>> if (Test-Path $file){
>>>  Remove-Item $file
>>> }
>>>
>>>
>>> Write-Host "install-visualstudio.ps1 complete..."
>>>
>>> You'll notice that even if the provisioner runs every time, it does not 
>>> attempt to install Visual Studio if it is already completed.
>>>
>>> Hope this helps anyone else that comes across the same issue.
>>>
>>> Christopher
>>>
>>> On Monday, February 1, 2016 at 11:45:08 PM UTC-8, Alvaro Miranda 
>>> Aguilera wrote:
>>>>
>>>> Hello Christopher.
>>>>
>>>> What you can do, is use the IDE controller for your iso, so you will 
>>>> now is always IDE.
>>>>
>>>> However, you may hit the same issue,
>>>>
>>>> depening on the OS where the box was created, it could be
>>>>
>>>> SATA Controller or SATA
>>>>
>>>> so maybe the ide would be
>>>>
>>>> IDE Controller vs IDE
>>>>
>>>> If the box is linux, you should be able to mount the iso just fine.
>>>>
>>>> Do a shared folder to path/to/
>>>>
>>>> then on the OS:
>>>>
>>>> mkdir -p /mnt/dvd
>>>> mount -o loop,ro /path/file.iso /mnt/dvd
>>>>
>>>> <magic>
>>>>
>>>> umount /mnt/dvd
>>>>
>>>> Hope this helps
>>>> Alvaro.
>>>>
>>>>
>>>> On Tue, Feb 2, 2016 at 11:43 AM, Christopher <[email protected]> 
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm looking to make my vagrant file idempotent and almost have it.  
>>>>> However, when I run *vagrant up --provision* on a machine that has 
>>>>> already been created, I get an error about my SATA storage controller.  
>>>>> To 
>>>>> avoid this, I have to manually delete the controller in Virtualbox and 
>>>>> run 
>>>>> the command again.  Removing my SATA controller is ok because it is only 
>>>>> used to host ISO files that I am accessing directly to install some 
>>>>> software.
>>>>>
>>>>> Is this even possible?  I'd like to make my provision a little smarter 
>>>>> in case I have to force provision an already created machine.  Here's my 
>>>>> provider config below:
>>>>>
>>>>> config.vm.provider "virtualbox" do |vb|
>>>>>     # Display the VirtualBox GUI when booting the machine
>>>>>     vb.gui = true
>>>>>     
>>>>>     # Customize the amount of memory on the VM:
>>>>>     vb.memory = 4096
>>>>>     
>>>>>     # Customize the amount of CPUs the VM will use:
>>>>>     vb.cpus = 2
>>>>>     vb.customize ["modifyvm", :id, "--vram", "128"]
>>>>>     vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
>>>>>     # Customize additional Virtualbox settings
>>>>>     vb.customize ["sharedfolder", "add", :id, "--name", "VM_Share", 
>>>>> "--hostpath", "path/to/share/folder/", "--automount"]
>>>>>
>>>>>
>>>>>     #below commented SATA customize will only work when the VM has 
>>>>> already been created...on a fresh run this will error since the SATA 
>>>>> controller does not exist
>>>>>     #vb.customize ["storagectl", :id, "--name", "SATA", "--remove" ]
>>>>>     vb.customize ["storagectl", :id, "--name", "SATA", "--add", "sata" 
>>>>> ]
>>>>>
>>>>>
>>>>>     # Add an ISO file here
>>>>>     vb.customize ["storageattach", :id, "--storagectl", "SATA", 
>>>>> "--port", "0", "--device", "0", "--type", "dvddrive", "--medium", 
>>>>> "path/to/file.iso"]
>>>>>
>>>>>
>>>>>     # Add another ISO file here
>>>>>     vb.customize ["storageattach", :id, "--storagectl", "SATA", 
>>>>> "--port", "1", "--device", "0", "--type", "dvddrive", "--medium", 
>>>>> "path/to/file.iso"]
>>>>>   end
>>>>>
>>>>> Thanks in advance,
>>>>>
>>>>> Christopher
>>>>>
>>>>> -- 
>>>>> This mailing list is governed under the HashiCorp Community Guidelines 
>>>>> - https://www.hashicorp.com/community-guidelines.html. Behavior in 
>>>>> violation of those guidelines may result in your removal from this 
>>>>> mailing 
>>>>> list.
>>>>>  
>>>>> GitHub Issues: https://github.com/mitchellh/vagrant/issues
>>>>> IRC: #vagrant on Freenode
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Vagrant" 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/vagrant-up/890ada33-53a2-4950-bdf9-72c951193c32%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/vagrant-up/890ada33-53a2-4950-bdf9-72c951193c32%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>>> This mailing list is governed under the HashiCorp Community Guidelines - 
>>> https://www.hashicorp.com/community-guidelines.html. Behavior in 
>>> violation of those guidelines may result in your removal from this mailing 
>>> list.
>>>  
>>> GitHub Issues: https://github.com/mitchellh/vagrant/issues
>>> IRC: #vagrant on Freenode
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Vagrant" 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/vagrant-up/05a6169c-a0ad-422e-bace-c030a1514cf3%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/vagrant-up/05a6169c-a0ad-422e-bace-c030a1514cf3%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/vagrant/issues
IRC: #vagrant on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" 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/vagrant-up/660691eb-8d06-4ee5-b498-1c886bf5cca9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to