nicholab Posted June 30, 2017 Posted June 30, 2017 I am considering using https://chocolatey.org/ for deploying software like Java, flash and possibly chrome. What do people think? I do have sccm but this software changes so quickly it is hard deploy before it causes issues.
browolf Posted June 30, 2017 Posted June 30, 2017 (edited) We've used https://ninite.com/ for years. It looks similar and is cheap per year for an education site license. Edited June 30, 2017 by browolf
habz99 Posted June 30, 2017 Posted June 30, 2017 (edited) $260???? i was recently quoted $130 per month and that includes the 50% educational discount. and that's for 130 pc's Edited June 30, 2017 by habz99
LeMarchand Posted June 30, 2017 Posted June 30, 2017 What are the advantages over deploying the msi files via GPO?
jthompson Posted June 30, 2017 Posted June 30, 2017 My memory of dabbling with PDQ the other year was that it needed client machines to be on when you start a deployment, whereas a GPO could just be left in place to be picked up by machines as and when they were in use or get moved into/out of the scope of the GPO. Am I remembering PDQ wrongly?
NB9457 Posted June 30, 2017 Posted June 30, 2017 My memory of dabbling with PDQ the other year was that it needed client machines to be on when you start a deployment, whereas a GPO could just be left in place to be picked up by machines as and when they were in use or get moved into/out of the scope of the GPO. Am I remembering PDQ wrongly? That's true of the free version, but with the paid version (around £250) you can schedule deployments and set it to retry offline machines
ADMaster Posted June 30, 2017 Posted June 30, 2017 +1 PDQ with inventory you can take it a couple steps further. deploy to only the machines with the old version inventory detects when the PC is online (heartbeat) deploy to all the online machines then schedule a deployment on heartbeat will get the rest as they come online. The retry mentioned previously just tries every hour. Also the paid version has package and collection libraries, so all you need to do is select the packages and click import. They do the rest.
box_l Posted June 30, 2017 Posted June 30, 2017 Chocolatey works really well in the schools where they have Software like Impero or ABTutor as you can run this very easily with the remote CMD tools. This is true for both the install of chocolatey and the install of the packages. The user is unaware of the install and it can be installed with very little effort. Windows 10 has support for oneget (windows version, sort of) built in. https://github.com/OneGet/oneget BoX 2
mavhc Posted November 4, 2019 Posted November 4, 2019 https://blogs.msdn.microsoft.com/garretts/2015/05/05/10-things-about-oneget-that-are-completely-different-than-you-think/
mavhc Posted November 4, 2019 Posted November 4, 2019 https://chocolatey.org/docs/how-to-setup-offline-installation The link to the offline installer has moved, and it's a slightly different line to change for the local path to the chocolatey.0.10.15.nupkg file. Once you have your own local copy on a file share Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('\\dfs.share\sharename$\ChocolateyLocalInstall.ps1')) Will install it locally, and not overwrite if already installed
mavhc Posted November 4, 2019 Posted November 4, 2019 Simplest choco deployment system I could think of: Generally we're following https://chocolatey.org/docs/how-to-setup-offline-installation But most of it can be skipped. In fact most of section 0 can be skipped because we're not really doing a whole push packages to a server thing, just copying .nupkg files to a file share. https://chocolatey.org/docs/how-to-setup-offline-installation#exercise-2c-set-up-a-file-share-repository and https://chocolatey.org/docs/how-to-setup-offline-installation#exercise-6a-installing-chocolatey-on-clients-directly-using-powershell are more relevent. So, you want a read-only share that anonymous users can read, for the computer machine user, like GPO installs. 3 folders in that, files, packages, config In package: never delete or overwrite a package, only add new ones, all files have versions in their filename, so not too hard. Download nupkg files from Chocolatey website, reconfigure them to have the actual exe/msi/etc files embedded if you wish https://chocolatey.org/docs/how-to-recompile-packages In files: I have an install.bat file to be added to a startup/shutdown/timed run: Powershell.exe -executionpolicy Bypass -File "\\dfs.share\share$\choco\files\install-command.ps1" An install-command.ps1 file: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('\\dfs.share\choco\files\ChocolateyLocalInstall.ps1')) choco source remove --name="'chocolatey'" choco source add --name="'internal_server'" --source="\\dfs.share\choco\packages" --priority="'1'" choco feature enable -n allowGlobalConfirmation \\dfs.share\choco\files\run-command.ps1 That last line just runs the command to actually install stuff straight away run-command.ps1: $name = $env:computername $nameparts = $name.split("-") $currentprefix = "" ForEach ($part in $nameparts) { if ($currentprefix.Length -gt 0) { $currentprefix += "-" + $part } else { $currentprefix = $part } write-host $part, $currentprefix $path = "\\dfs.share\choco\config\" + $currentprefix + ".config" choco install $path } $path = "\\dfs.share\choco\config\default.config" choco install $path That will run various combinations of .config files, sn-site1-it-04 would run sn.config, sn-site1.config, sn-site1-it.config, and then default.config Lets you do more complex stuff than just install the same packages everywhere the .config files look like: Just add more package id= lines. All those .config files go in the config folder. And finally ChocolateyLocalInstall.ps1 which is from set 27 in https://chocolatey.org/docs/how-to-setup-offline-installation#exercise-0-prepare-for-internal-use although the correct link is https://chocolatey.org/docs/installation#completely-offline-install Change line 46 to something like: $localChocolateyPackageFilePath = '\\dfs.share\choco\packages\chocolatey.0.10.15.nupkg'
mavhc Posted November 5, 2019 Posted November 5, 2019 Don't forget the dependencies, even if they're already installed, eg .net, still need them to check Running the install/run script when it was already installed took about 10 seconds, but it's async so won't hold up the startup phase. Current list of things I've tried: Turns out lightworks requires registration though.
mavhc Posted December 10, 2019 Posted December 10, 2019 Couple of extra things 1. You want to add "choco upgrade all" to the script somewhere 2. "choco outdated" will you show you packages that are out of date compared to your local repo 3. "choco outdated -s https://chocolatey.org/api/v2/" to compared to public repo, now you know which new package files to download 4. https://chocolatey.org/packages/choco-cleaner will install a scheduled task to clean up old installers etc
mavhc Posted January 6, 2020 Posted January 6, 2020 $name = $env:computername $nameparts = $name.split("-") $currentprefix = "" ForEach ($part in $nameparts) { if ($currentprefix.Length -gt 0) { $currentprefix += "-" + $part } else { $currentprefix = $part } write-host $part, $currentprefix $path = "\\domain.local\choco\config\" + $currentprefix + ".config" choco install $path } $path = "\\domain.local\choco\config\dm.config" choco install $path choco upgrade all $a = New-ScheduledTaskSettingsSet -StartWhenAvailable Set-ScheduledTask "choco-cleaner" -Settings $a $pathname = "\\domain.local\logs\choco\"+$name+".txt" choco outdated > $pathname Now it will update existing installs, edit the scheduled task choco-cleaner adds to run after reboot if time missed, and output any outdated packages to a shared log folder # example https://chocolatey.org/api/v2/package/tuxguitar/1.5.3 write-host "Getting list of outdated packages" $output = choco outdated --limit-output -s https://chocolatey.org/api/v2/ $output | ForEach-Object { write-host "Downloading $_" $a = $_.split("|") $b = "https://chocolatey.org/api/v2/package/$($a[0])/$($a[2])" Invoke-WebRequest -uri $b -OutFile "$($a[0]).$($a[2]).nupkg" } This will get a list of outdated packages on the local computer (run it on a computer with everything installed), compared to the master internet list, not your local shared drive, and download all the new packages, so you can easily copy them to your local shared drive 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now