{%- macro service_dropin(service_name, unit=[], service=[]) %} {%- if not '.' in service_name -%} {%- set service_name = service_name ~ '.service' -%} {%- endif -%} {{ service_name }}_custom: file.managed: - name: /etc/systemd/system/{{ service_name }}.d/salt.conf - makedirs: True - contents: - {{ pillar['managed_by_salt'] | yaml_encode }} {%- if unit %} - '[Unit]' {%- for line in unit %} - '{{ line }}' {%- endfor %} {%- endif %} {#- close unit #} {%- if service %} - '[Service]' {%- for line in service %} - '{{ line }}' {%- endfor %} {%- endif %} {#- close service #} {%- endmacro %} {%- macro puma_service_dropin(service, append=[]) %} {{ service_dropin(service, service=['Environment=RAILS_LOG_TO_STDOUT=1'] + append) }} {%- endmacro %} {%- macro known_hosts(hosts, user) %} {%- for target, keys in salt['mine.get'](hosts, 'ssh_host_keys', 'list').items() %} {%- if 'ed25519.pub' in keys %} known_hosts_{{ target }}: ssh_known_hosts.present: - name: {{ target }} - user: {{ user }} - key: {{ keys['ed25519.pub'].split()[1] }} - enc: ssh-ed25519 - hash_known_hosts: False {%- endif %} {%- endfor %} {%- endmacro %}