Copy zip file from one server to many target servers using Octopus

(Rock26in) #1

I have a requirement where I want Octopus Master Server to pull zip file from a directory file path of a remote windows server (consider as an external feed) and transfer/copy that to one/multiple deployment target servers (via tentacle).

Source Server (ZIP File) ----- Pull ----> Octopus Master ----- Copy -----> Deployment Target Servers

Note: I don’t have an option to use External Feeds (Artifactory, Nexus, etc.) or Octopus in-built repository.

How can I achieve this?

Any help would be highly appreciated!


(Justin Walsh) #3

Hi @rock26in!

Sadly there’s not an easy way of doing this - one possible method could be using deployment artifacts: pulling in the file as an artifact on your first step, then using API calls to get the contents of the artifact in subsequent steps. Sadly, this would all need to be done in scripts, and you couldn’t reference them in most of the step templates that ship with Octopus.

If you want some further information on this, please see this topic, which discussed the matter previously.

Obviously, publishing the zip file to a feed (such as Octopus’ built-in feed) would be the most ideal, but you mentioned that you can’t do that. If you don’t mind me asking, what’s your use case here that you can’t use a package feed?

I hope this helps!

(Rock26in) #4

Thanks @Justin_Walsh!

Actually we’re trying to use Octopus Deploy for automating application patching on the window/linux servers. I know Octopus is not meant for doing patching related activities and also that there are many tools available in the market which does the job like Bigfix, SSCM, etc.

Reason we are not allowed to use Artifactory, or Octopus built-in repo is that the zip file would contain one or more application patches and the size of the zip file could be very large (MB’s or GB’s).

But is it really possible to use External Feeds like Artifactory, GitHub, etc. to store standard zip files which Octopus could pull and transfer to the target machines? If not, then I should completely rule out this option. Request your expert advise!

Reason why I’m asking this question is because I found below Octopus documentation link which says ‘Standard zip files are compatible with the built-in repository only’. Link:

If it is possible with Octopus built-in repository only, then I will try to ask permission for it.

The need of the hour is just to copy/transfer ZIP file from one source server to one/many target servers using Octopus. And then PowerShell script will run on that target server, unzip the file and start installing patches.

Octopus project will have just 2 steps:

  1. Copy zip file from source server to target machines (don’t know where to source zip files?)
  2. Run Powershell script to unzip file and install patches