-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.yml
175 lines (158 loc) · 5.28 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# user
django_system_user: "django"
django_system_group: "www-data"
django_system_user_home: "/home/{{ django_system_user }}"
# python
django_python_apt_ppa: "ppa:deadsnakes/ppa"
django_python_packages:
- "{{ django_python_version }}"
- "{{ django_python_version }}-dev"
- "{{ django_python_version }}-distutils"
- python3-pip
- python3-setuptools
django_python_version: "python3.9"
django_pip_executable: "pip3"
# git
django_git_url:
django_git_version: "master"
django_git_key_content:
django_git_key_ssh_file:
django_git_key_filename: "id_ed25519"
django_remove_git_key: true
django_copy_key_from_file: false
django_optional_git_packages:
# system-wide dependencies
django_system_wide_dependencies:
- build-essential
- git
# service
django_service_name: "{{ django_system_user }}"
django_service_type: "notify"
django_service_restart: "on-failure"
django_service_group: "{{ django_system_group }}"
django_service_unit_after: "network.target"
django_service_install_wantedby: "multi-user.target"
django_pid_socks_dir: "/var/run/{{ django_service_name }}"
django_manage_services: false
django_env_name: "prod"
django_codebase_path: "{{ django_system_user_home }}/app"
django_versioned_path: "{{ django_codebase_path }}-versioned"
django_checkout_path: "{{ django_versioned_path }}/{{ ansible_date_time['epoch'] }}"
django_venv_path: "{{ django_system_user_home }}/.virtualenvs/{{ django_system_user }}"
django_log_path: "/var/log/{{ django_service_name }}"
django_pid_file: "{{ django_pid_socks_dir }}/{{ django_service_name }}.pid"
django_proxy_read_timeout: "300s"
django_environment_script_name: environment.sh
django_environment_vars: []
django_celeryd_extra_env_vars: []
django_celerybeat_extra_env_vars: []
# Python packages
django_install_virtualenv: true
django_recreate_virtual_env: false
django_setuptools_version:
## pipenv
django_use_pipenv: false
## dependency pip packages
## packages you'd want to install before install packages in the requirement's file
django_dependency_pip_packages: []
## pip
django_use_regular_old_pip: true
django_pip_paths:
- "{{ django_checkout_path }}/requirements.txt"
## poetry
django_use_poetry: false
## other pip packages not in requirements files
django_pip_packages:
- celery
- uwsgi
django_pip_packages_extra_args:
# Django
django_local_settings_path:
django_init_commands:
- migrate --noinput
- collectstatic --noinput
django_static_path: "/var/www/static/"
django_media_path: "/var/www/media/"
django_media_path_mode: "0755"
django_settings_module:
# template settings path
django_settings_template_path: "../templates/local_settings.py.j2"
## Django settings
django_settings:
BASE_DIR: "os.path.dirname(os.path.dirname(__file__))"
SITE_ID: 1
DATABASES: |
{
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'sqlite3.db',
}
}
STATICFILES_DIRS: |
(
os.path.join(BASE_DIR, "static"),
)
CACHES: |
{
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
}
}
STATIC_ROOT: "'{{ django_static_path }}'"
STATIC_URL: "'/static/'"
MEDIA_ROOT: "'{{ django_media_path }}'"
MEDIA_URL: "'/media/'"
EMAIL_BACKEND: "'django.core.mail.backends.console.EmailBackend'"
EMAIL_HOST: "'localhost'"
EMAIL_PORT: "1025"
DEFAULT_FROM_EMAIL: "'Hello World <hello@example.com>'"
ALLOWED_HOSTS: "[]"
DEBUG: True # yamllint disable-line rule:truthy
## python statements included at the top of settings file
django_top_python_statements:
- import os
## python statements included at the bottom of settings file
django_bottom_python_statements:
# wsgi
django_wsgi_use_cheaper: false
django_wsgi_cheaper_algo: "spare"
django_wsgi_cheaper_min_workers: 3
django_wsgi_cheaper_max_workers: 10
django_wsgi_cheaper_spawn_rate: 1
django_wsgi_cheaper_overload: 30
django_wsgi_module:
django_wsgi_processes: 3
django_wsgi_harakiri: 240
django_wsgi_max_requests: 5000
django_wsgi_http:
django_wsgi_socket: "{{ django_pid_socks_dir }}/{{ django_service_name }}.sock"
django_wsgi_chmod_socket: 777
django_wsgi_user: "{{ django_system_user }}"
django_wsgi_group: "{{ django_system_group }}"
django_wsgi_vacuum: true
django_wsgi_master: true
django_wsgi_logto: "{{ django_log_path }}/uwsgi_{{ django_service_name }}.log"
django_wsgi_virtualenv: "{{ django_venv_path }}"
django_wsgi_static_map: "/static={{ django_static_path }}"
django_wsgi_buffer_size: 8192
django_wsgi_env: "HTTPS=on"
django_wsgi_stats: "{{ django_pid_socks_dir }}/{{ django_service_name }}_stats.sock"
django_wsgi_enable_threads: false
django_wsgi_memory_report: false
django_wsgi_env_variables:
# SOME_ENV: "some value"
# celery
django_enable_celery: true
django_celery_app:
django_celeryd_nodes: "{{ django_service_name }}"
django_celeryd_service_name: "celeryd-{{ django_service_name }}"
django_celerybeat_service_name: "celerybeat-{{ django_service_name }}"
django_celeryd_opts: "--time-limit=300 --concurrency=8"
django_celeryd_log_level: "INFO"
django_celerybeat_log_level: "INFO"
django_celeryd_pid_directory: "/run/celery-{{ django_system_user }}"
django_celeryd_pid_file: "{{ django_celeryd_pid_directory }}/%n.pid"
django_celery_beat_pid_directory: "/var/run/{{ django_system_user }}"
django_celery_beat_pid_file: "{{ django_celery_beat_pid_directory }}/celerybeat.pid"
# Celery systemd service
django_celeryd_timeoutsec: 100