If a user supplies a server.yaml file it is overwritten on all target machines. The user is assumed to know what they are doing. The file provided by the user is never modified.
If the user does nothing a server.yaml containing a generated SECRET_KEY is placed on the target systems. This is a sparse file, it is not the fully commented file. If a server.yaml already exists, there no changes are ever made. This ensures idempotent behavior.
If `pulp3_settings_source_path` is defined: Install file to `server_settings_target_path | default('/etc/pulp/settings.yaml')` on target host. Don't alter the file that's being copied to the target host. (i.e. don't insert a SECRET_KEY) Else: If `server_settings_target_path | default('/etc/pulp/settings.yaml')` exists on the target host: Do nothing. Else: Create `server_settings_target_path | default('/etc/pulp/settings.yaml')` on target host. Make sure to insert SECRET_KEY into file.
- server.yaml is required due to SECRET_KEY
- we don't want to fully template server.yaml. Fully templating would mean that for every update to Pulp's settings file syntax, there would need to be a corresponding update to this Ansible role.