Browse Source

Add clients/360south/sms_feed.

Andrew Klopper 8 years ago
parent
commit
5fb37d0b43

+ 1 - 0
base/_modules

@@ -0,0 +1 @@
1
+../../salt-modules/modules

+ 1 - 0
base/_states

@@ -0,0 +1 @@
1
+../../salt-modules/states

+ 1 - 1
base/circusd/lib.jinja

@@ -35,7 +35,7 @@
35 35
     - context: {{ context }}
36 36
 {% endif %}
37 37
     - require:
38
-      - pkg: circusd
38
+      - file: /etc/circus/conf.d
39 39
     - onchanges_in:
40 40
       - module: circusd.reloadconfig
41 41
 

+ 7 - 0
base/clients/360south/init.sls

@@ -0,0 +1,7 @@
1
+include:
2
+  - clients
3
+
4
+/data/clients/360south:
5
+  file.directory:
6
+    - require:
7
+      - file: /data/clients

+ 32 - 0
base/clients/360south/sms_feed/files/settings_local.py

@@ -0,0 +1,32 @@
1
+{% import 'globals.jinja' as globals -%}
2
+{% set settings = pillar['clients']['360south']['sms_feed'] -%}
3
+import os
4
+
5
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
6
+
7
+DEBUG = False
8
+USE_X_FORWARDED_HOST = False
9
+
10
+ALLOWED_HOSTS = ['{{ settings['server_name'] }}']
11
+
12
+SECRET_KEY = '{{ settings['secret_key'] }}'
13
+LANGUAGE_CODE = 'en-za'
14
+TIME_ZONE = 'Africa/Johannesburg'
15
+
16
+USE_I18N = False
17
+USE_L10N = False
18
+DATE_FORMAT = 'j N Y'
19
+DATETIME_FORMAT = 'j N Y, P'
20
+SHORT_DATE_FORMAT = 'Y-m-d'
21
+SHORT_DATETIME_FORMAT = 'Y-m-d H:i:s'
22
+TIME_FORMAT = 'P'
23
+
24
+DATABASES = {
25
+    'default': {
26
+        'ENGINE': 'django.db.backends.sqlite3',
27
+        'NAME': os.path.join(BASE_DIR, 'db/db.sqlite3'),
28
+    }
29
+}
30
+
31
+EMAIL_HOST = '{{ globals.config.mail.host }}'
32
+EMAIL_PORT = {{ globals.config.mail.port }}

+ 19 - 0
base/clients/360south/sms_feed/files/sms_feed.ini

@@ -0,0 +1,19 @@
1
+[watcher:sms_feed]
2
+cmd = /data/virtualenvs/sms_feed/bin/chaussette --fd $(circus.sockets.sms_feed) sms_feed.wsgi.application
3
+working_dir = /data/clients/360south/sms_feed
4
+use_sockets = True
5
+numprocesses = {{ grains['num_cpus'] * 2 + 1 }}
6
+uid = www-data
7
+gid = www-data
8
+stdout_stream.class = FileStream
9
+stdout_stream.max_bytes = 1048576
10
+stdout_stream.backup_count = 7
11
+stdout_stream.filename = /var/log/circus/sms_feed.log
12
+stderr_stream.class = FileStream
13
+stderr_stream.max_bytes = 1048576
14
+stderr_stream.backup_count = 7
15
+stderr_stream.filename = /var/log/circus/sms_feed_err.log
16
+
17
+[socket:sms_feed]
18
+host = 127.0.0.1
19
+port = {{ settings.listen_port }}

+ 44 - 0
base/clients/360south/sms_feed/files/sms_feed.nginx

@@ -0,0 +1,44 @@
1
+server {
2
+	listen 80;
3
+	server_name {{ settings.server_name }};
4
+
5
+	include /etc/nginx/include/certbot.conf;
6
+
7
+	location /static/ {
8
+	    alias /data/clients/360south/sms_feed/static/;
9
+	    expires 30d;
10
+	    autoindex off;
11
+	}
12
+
13
+	location / {
14
+	    # The trailing '/' is important as it causes nginx to send the
15
+	    # cleaned URI through to the destination service (double slashes
16
+	    # removed, etc.).
17
+	    proxy_pass          http://127.0.0.1:{{ settings.listen_port }}/;
18
+	    include		/etc/nginx/include/proxy.conf;
19
+	}
20
+}
21
+
22
+server {
23
+	listen 443 ssl;
24
+	server_name {{ settings.server_name }};
25
+
26
+	include /etc/nginx/include/ssl.conf;
27
+
28
+	ssl_certificate /etc/nginx/ssl.d/{{ settings.server_name }}/fullchain.pem;
29
+	ssl_certificate_key /etc/nginx/ssl.d/{{ settings.server_name }}/privkey.pem;
30
+
31
+	location /static/ {
32
+	    alias /data/clients/360south/sms_feed/static/;
33
+	    expires 30d;
34
+	    autoindex off;
35
+	}
36
+
37
+	location / {
38
+	    # The trailing '/' is important as it causes nginx to send the
39
+	    # cleaned URI through to the destination service (double slashes
40
+	    # removed, etc.).
41
+	    proxy_pass          http://127.0.0.1:{{ settings.listen_port }}/;
42
+	    include		/etc/nginx/include/proxy.conf;
43
+	}
44
+}

+ 81 - 0
base/clients/360south/sms_feed/init.sls

@@ -0,0 +1,81 @@
1
+{% import 'globals.jinja' as globals %}
2
+{% import 'circusd/lib.jinja' as circusd %}
3
+{% from 'nginx/lib.jinja' import nginx_ssl_cert_present %}
4
+{% set settings = pillar['clients']['360south']['sms_feed'] %}
5
+
6
+include:
7
+  - clients.360south
8
+  - pip.virtualenvwrapper
9
+
10
+/data/clients/360south/sms_feed:
11
+  file.directory:
12
+    - require:
13
+      - file: /data/clients/360south
14
+
15
+/data/clients/360south/sms_feed/static:
16
+  file.directory:
17
+    - require:
18
+      - file: /data/clients/360south/sms_feed
19
+
20
+sms_feed:
21
+  git.latest:
22
+    - name: git@git.codefans.co.za:360south/sms_feed.git
23
+    - target: /data/clients/360south/sms_feed
24
+    - rev: {{ settings.rev }}
25
+    #- unless: test -d /data/clients/360south/sms_feed/.git
26
+    - submodules: True
27
+    - identity: {{ globals.config.git.identity_file }}
28
+    - require:
29
+      - file: /data/clients/360south/sms_feed
30
+  {{ circusd.circusd_watcher_running() }}
31
+
32
+{{ circusd.circusd_watcher_configuration(
33
+     'sms_feed',
34
+     'salt://clients/360south/sms_feed/files/sms_feed.ini',
35
+     {'settings': settings},
36
+     [],
37
+     [
38
+        'git: sms_feed',
39
+        'file: sms_feed_config',
40
+        'virtualenv: /data/virtualenvs/sms_feed',
41
+     ]
42
+) }}
43
+
44
+/data/virtualenvs/sms_feed:
45
+  virtualenv.managed:
46
+    - requirements: /data/clients/360south/sms_feed/requirements.txt
47
+    - require:
48
+      - pkg: pip
49
+      - file: /data/virtualenvs
50
+      - git: sms_feed
51
+
52
+sms_feed_config:
53
+  file.managed:
54
+    - name: /data/clients/360south/sms_feed/sms_feed/settings_local.py
55
+    - source: salt://clients/360south/sms_feed/files/settings_local.py
56
+    - template: jinja
57
+    - require:
58
+      - git: sms_feed
59
+
60
+/etc/nginx/sites-enabled/sms_feed:
61
+  file.managed:
62
+    - source: salt://clients/360south/sms_feed/files/sms_feed.nginx
63
+    - template: jinja
64
+    - context:
65
+        settings: {{ settings }}
66
+    - require:
67
+      - file: nginx_conf
68
+    - watch_in:
69
+      - service: nginx
70
+
71
+sms_feed_collectstatic:
72
+  cmd.run:
73
+    - name: /data/virtualenvs/sms_feed/bin/python2 /data/clients/360south/sms_feed/manage.py collectstatic --noinput --verbosity 0 --clear --link
74
+    - require:
75
+      - file: /data/clients/360south/sms_feed/static
76
+    - onchanges:
77
+      - virtualenv: /data/virtualenvs/sms_feed
78
+      - git: sms_feed
79
+      - file: sms_feed_config
80
+
81
+{{ nginx_ssl_cert_present(settings.server_name) }}

+ 4 - 0
base/clients/init.sls

@@ -0,0 +1,4 @@
1
+/data/clients:
2
+  file.directory:
3
+    - require:
4
+      - file: /data

+ 8 - 0
base/gitea/deploy.sls

@@ -0,0 +1,8 @@
1
+{% import 'globals.jinja' as globals %}
2
+
3
+{{ globals.config.git.identity_file }}:
4
+  file.managed:
5
+    - contents_pillar: env:{{ globals.deploy_env }}:git:ssh_key
6
+    - mode: 400
7
+    - require:
8
+      - sls: root_user

+ 2 - 1
base/top.sls

@@ -15,13 +15,14 @@ base:
15 15
   'admin1':
16 16
     - match: list
17 17
     - admin
18
-    - firewall.public.http
19 18
 
20 19
   hosting1:
21 20
     - circusd
21
+    - clients.360south.sms_feed
22 22
     - firewall.public.http
23 23
     - firewall.public.https
24 24
     - gitea
25
+    - gitea.deploy
25 26
     - mariadb.server
26 27
     - nginx.ssl
27 28
     - vmail