Instead of specialized case-by-case publishers, there can be a generic configuration which tells:
which repository (from system_repositories)
which way to publish (HTTP, SMB, FTP, salt://, SSH, etc.)
which role among defined ones is responsible for this configuration.
Consider both (double indirection):
physical location of resources (configured under system_repositories - see see #2) on the filesystem
logical location of resources exposed through specific URI_scheme
It is architecturally (conceptually) clear to have (e.g. webserver) configuration and layout the same for each repository server. However, physical storage requirements make it difficult (without logical redirection via mounting, symlinking, etc.) to place large content on fast (expensive) default filesystem location where webserver expects it to be (when filesystem root / and /var and /etc directories are not split across different mounts by default).
NOTE:
This is already implemented de facto in several roles:
depository_role
local_yum_mirrors_role
vagrant_box_publisher_role
They all have content directories (which should, in fact, be absolute paths configured per one of the system_repositories).
The idea is that many of the
system_repositories
(see #2) can be published on a web server.As of now, there are different roles for that:
depository_role
vagrant_box_publisher_role
local_yum_mirrors_role
salt_master_role
Instead of specialized case-by-case publishers, there can be a generic configuration which tells:
system_repositories
)salt://
, SSH, etc.)Consider both (double indirection):
system_repositories
- see see #2) on the filesystemIt is architecturally (conceptually) clear to have (e.g. webserver) configuration and layout the same for each repository server. However, physical storage requirements make it difficult (without logical redirection via mounting, symlinking, etc.) to place large content on fast (expensive) default filesystem location where webserver expects it to be (when filesystem root
/
and/var
and/etc
directories are not split across different mounts by default).NOTE: This is already implemented de facto in several roles:
depository_role
local_yum_mirrors_role
vagrant_box_publisher_role
They all have content directories (which should, in fact, be absolute paths configured per one of thesystem_repositories
).