wttr: service.running: - enable: True - watch: - file: /srv/ephemeral/start.sh - git: wttr-repo - require: - pkg: wttr-dependencies - git: wttr-repo - cmd: wego - archive: geolite-db # package names are from Ubuntu 18.04, you may need to adjust if on a different distribution wttr-dependencies: pkg.installed: - pkgs: - golang - gawk - python-setuptools - python-dev - python-dnspython - python-geoip2 - python-geopy - python-gevent - python-flask - python-pil - authbind wttr-repo: git.latest: - name: https://github.com/chubin/wttr.in - rev: master - target: /srv/ephemeral/wttr.in - require: - /srv/ephemeral wttr-start: file.managed: - name: /srv/ephemeral/start.sh - source: salt://wttr/start.sh - mode: '0770' - user: srv - group: srv wegorc: file.managed: - name: /srv/ephemeral/.wegorc - user: srv - group: srv - source: salt://wttr/wegorc - template: jinja - context: apikey: {{ pillar['wttr']['apikey'] }} geolite-db: archive.extracted: - name: /srv/ephemeral - source: http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz - source_hash: http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz.md5 - keep_source: True - options: --strip-components=1 # flatten directory structure - enforce_toplevel: False # Could benefit from improvement, won't get updated automatically at all wego: cmd.run: - onlyif: 'test ! -e /srv/ephemeral/bin/wego' - env: - GOPATH: /srv/ephemeral - name: go get -u github.com/schachmat/wego && go install github.com/schachmat/wego - cwd: /srv/ephemeral/ - require: - pkg: wttr-dependencies - file: wegorc /srv/ephemeral: file.directory: - makedirs: True {% for dir in '/srv/ephemeral/wttr.in/log','/srv/ephemeral/wttr.in/cache' %} {{ dir }}: file.directory: - user: srv - group: srv - makedirs: True - recurse: - user - group - require_in: - service: wttr {% endfor %} /etc/systemd/system/wttr.service: file: - managed - source: salt://wttr/wttr.service - require: - file: wttr-start - file: authbind-80 - require_in: - service: wttr authbind-80: file: - managed - name: /etc/authbind/byport/80 - user: srv - group: srv - mode: 770 - replace: False - require: - pkg: wttr-dependencies