ansible-role-djangoapp/tasks/main.yml

108 lines
2.8 KiB
YAML
Raw Permalink Normal View History

2020-09-10 22:31:09 +00:00
---
2021-08-30 12:59:41 +00:00
# tasks file for django
2020-09-10 22:31:09 +00:00
- name: 'install dependencies'
package:
name:
- 'python3-django'
- 'curl'
- 'tar'
2021-08-31 10:22:23 +00:00
- 'git'
2020-09-10 23:08:02 +00:00
- 'python3-psycopg2'
- 'python3-gunicorn'
2022-05-30 07:47:37 +00:00
- 'gunicorn'
2020-09-10 22:31:09 +00:00
state: 'present'
2021-08-05 19:55:10 +00:00
- name: Install multi python packages
pip:
name:
2021-08-06 22:34:18 +00:00
- bootstrap4
2022-05-30 08:16:05 +00:00
- whitenoise
2021-08-05 19:55:10 +00:00
2021-08-30 12:59:41 +00:00
- name: 'Create django user'
2020-09-10 22:31:09 +00:00
user:
2021-08-30 12:59:41 +00:00
name: "{{ django_user }}"
comment: "django user"
home: "{{ django_home }}"
2020-09-10 22:31:09 +00:00
shell: "/bin/false"
2021-08-31 10:22:23 +00:00
- name: Clone git repositories
git:
repo: "{{ django_app_gitrepo }}"
dest: "{{ django_home }}/{{ django_appname }}"
version: "{{ django_app_gitversion }}"
2021-09-14 13:14:58 +00:00
force: yes
2020-09-10 23:08:02 +00:00
2021-08-30 12:59:41 +00:00
- name: 'install pip dependencies'
pip:
requirements: '{{ django_home }}/{{ django_appname }}/requirements.txt'
notify: "Restart djangoapp"
2020-09-10 22:31:09 +00:00
- name: "Setup systemd service"
template:
2021-08-30 12:59:41 +00:00
src: djangoapp.service.j2
dest: "/lib/systemd/system/{{ django_appname }}.service"
2020-09-10 22:31:09 +00:00
owner: root
group: root
mode: 0644
notify:
- "Reload systemd"
2021-08-30 12:59:41 +00:00
- "Restart djangoapp"
2020-09-10 22:31:09 +00:00
when: ansible_service_mgr == "systemd"
2021-08-30 12:59:41 +00:00
- name: "Configure djangoapp"
2020-09-10 22:31:09 +00:00
template:
2021-09-14 13:00:49 +00:00
src: "{{ django_home }}/{{ django_appname }}/settings_template.py.j2"
2021-08-31 10:06:24 +00:00
dest: "{{ django_home }}/{{ django_appname }}/settings.py"
2021-08-30 12:59:41 +00:00
owner: "{{ django_user }}"
group: "{{ django_group }}"
2021-09-14 13:16:26 +00:00
remote_src: yes
2020-09-10 22:31:09 +00:00
mode: 0600
2021-08-30 12:59:41 +00:00
notify: "Restart djangoapp"
2020-09-10 22:31:09 +00:00
2021-08-30 12:59:41 +00:00
- name: 'migrate django app'
2020-09-10 22:31:09 +00:00
django_manage:
2020-09-10 23:08:02 +00:00
command: migrate
2021-08-31 10:06:24 +00:00
app_path: "{{ django_home }}/{{ django_appname }}/"
become: true
2021-08-30 12:59:41 +00:00
become_user: "{{ django_user }}"
- name: check if django superuser exists
django_manage:
command: 'shell -c "from django.contrib.auth.models import User; print(User.objects.filter(is_superuser=True).exists())"'
2021-08-31 10:06:24 +00:00
app_path: "{{ django_home }}/{{ django_appname }}/"
register: superuser_exists
become: true
2021-08-30 12:59:41 +00:00
become_user: "{{ django_user }}"
2020-09-10 22:31:09 +00:00
2021-08-30 12:59:41 +00:00
- name: "create superjuser for django app if it doesn't exist"
2020-09-10 22:31:09 +00:00
django_manage:
2021-08-31 10:06:24 +00:00
command: "createsuperuser --noinput --username=admin --email={{ django_admin_email }}"
app_path: "{{ django_home }}/{{ django_appname }}/"
become: true
2021-08-30 12:59:41 +00:00
become_user: "{{ django_user }}"
when: superuser_exists.out.find("True") == -1
2020-09-10 22:31:09 +00:00
2021-08-30 12:59:41 +00:00
- name: "set superuser password"
2020-09-12 00:15:11 +00:00
django_manage:
2021-09-14 13:00:49 +00:00
command: shell -c "from django.contrib.auth.models import User; usr = User.objects.get(username='admin'); usr.set_password('{{ django_admin_password }}'); usr.save()"
2021-08-31 10:06:24 +00:00
app_path: "{{ django_home }}/{{ django_appname }}/"
2020-09-12 00:15:11 +00:00
become: true
2021-08-30 12:59:41 +00:00
become_user: "{{ django_user }}"
2020-09-12 00:15:11 +00:00
2020-09-10 22:31:09 +00:00
- name: 'collect static content'
django_manage:
2020-09-10 23:08:02 +00:00
command: "collectstatic"
2021-08-31 10:06:24 +00:00
app_path: "{{ django_home }}/{{ django_appname }}/"
2020-09-10 22:31:09 +00:00
2021-08-30 12:59:41 +00:00
- name: "Service djangoapp"
2020-09-10 22:31:09 +00:00
service:
2021-08-30 12:59:41 +00:00
name: "{{ django_appname }}"
2020-09-10 22:31:09 +00:00
state: started
enabled: true
when: ansible_service_mgr == "systemd"