- /srv/http:
- file:
- - directory
- {% for project_name, project_data in salt['pillar.get']('projects', {}).items() %}
- user_{{ project_name }}:
- user.present:
- - name: {{ project_name }}
- - shell: {{ project_data.get('shell', '/bin/false') }}
- - home: /srv/http/{{ project_name }}
- - createhome: True
- - require:
- - file: /srv/http
- {% for domain, site_data in project_data.items() %}
- {% if site_data.get('vhost', False) == True %}
- vhost_{{ domain|replace('.','_') }}:
- file.directory:
- - name: /srv/http/{{ project_name }}/hosts/{{ domain }}/public
- - user: {{ project_name }}
- - group: {{ project_name }}
- - makedirs: True
- - mode: 660
- file.managed:
- - name: /etc/apache2/sites/available/{{ domain }}.conf
- - source: {{ site_data.get('template_file', 'salt://templates/apache/vhosts/default.tmpl') }}
- - template: {{ site_data.get('template_engine', 'jinja') }}
- - context:
- domain: {{ domain|json }}
- user: {{ project_name|json }}
- cmd.run:
- - name: /usr/sbin/a2ensite {{ domain|json }}
- {% endif %}
- {% endfor %}
- {% endfor %}