Distributing script dependencies?

How are people distributing dependency files for scripts, such as .rpm, .msi, .exe and other files that would need to be locally available to a system.

Is there a feature in foreman similar to SCCM distribution points?

One example scenario would be that I have a .sh script, accompanying RPM file (which isn’t available for public download) and a config file that gets applied after the product is installed…

In general, the content is shipped as RPM or DEB which can define dependencies. It’s configuration is done through configuration management tools like Puppet or Ansible.

If the script is to be just distributed, you can bundle it into some RPM or DEB and distribute that as a regular content. However you can also disttribute small files through config management tools, then they need to live in Puppet modules or Ansible roles. None of the solution above automatically solves dependencies.

In the case you used as an example, I’d put that RPM to Katello repository and make it available for machines that should end up having it installed. Then I’d write an Ansible role for installing that RPM, creating a config file based on the template and uploading the .sh script to the desired location as well as configuring it’s owner, group and permissions, e.g. 644. Then I’d assign that role to all Hosts where I’d like this confiugration to be applied and ran Ansible roles on all such machines.

I hope I got your question well and this is at least a bit useful.

Interesting, i’ll have to look at that, I’m assuming it would then be distributed accordingly via foreman content proxies?
Do you have any similar reccomendstions for windows script dependencies? My current idea is embeddeding credentials for mounting a windows DFS share using read only creds, although that’s kind of clunky and has some drawbacks.

Yes, though how to get the ansible roles or puppet modules to the proxies is currently up to the user. In future we plan to distribute ansible pieces transparently.

Afaik both puppet and ansible can be used also for Windows targets. But that’s not my domain.