106 lines
2.5 KiB
YAML
106 lines
2.5 KiB
YAML
---
|
|
# tasks file for im
|
|
- name: 'install dependencies'
|
|
package:
|
|
name:
|
|
- 'python3-django'
|
|
- 'curl'
|
|
- 'tar'
|
|
- 'python3-psycopg2'
|
|
- 'python3-gunicorn'
|
|
- 'python3-whitenoise'
|
|
state: 'present'
|
|
|
|
- name: 'Create im user'
|
|
user:
|
|
name: "{{ im_user }}"
|
|
comment: "im user"
|
|
home: "{{ im_home }}"
|
|
shell: "/bin/false"
|
|
|
|
- name: 'download latest im stable'
|
|
get_url:
|
|
dest: "{{im_home}}/im-latest.tar.gz"
|
|
url: https://gitea.caret.be/jens/im/archive/main.tar.gz
|
|
owner: im
|
|
group: im
|
|
mode: '0400'
|
|
force: true
|
|
|
|
- name: 'remove previous install stable'
|
|
file:
|
|
dest: "{{im_home}}/im"
|
|
state: absent
|
|
|
|
- name: 'unarchive latest im stable'
|
|
unarchive:
|
|
src: "{{im_home}}/im-latest.tar.gz"
|
|
remote_src: yes
|
|
dest: "{{ im_home }}"
|
|
owner: im
|
|
group: im
|
|
notify: "Restart im"
|
|
|
|
- name: "Setup systemd service"
|
|
template:
|
|
src: im.service.j2
|
|
dest: /lib/systemd/system/im.service
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify:
|
|
- "Reload systemd"
|
|
- "Restart im"
|
|
when: ansible_service_mgr == "systemd"
|
|
|
|
|
|
- name: "Configure im"
|
|
template:
|
|
src: "settings.py.j2"
|
|
dest: "{{im_home}}/im/im/settings.py"
|
|
owner: "{{ im_user }}"
|
|
mode: 0600
|
|
notify: "Restart im"
|
|
|
|
- name: 'migrate django im app'
|
|
django_manage:
|
|
command: migrate
|
|
app_path: "{{im_home}}/im"
|
|
become: true
|
|
become_user: "{{im_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())"'
|
|
app_path: "{{im_home}}/im"
|
|
register: superuser_exists
|
|
become: true
|
|
become_user: "{{im_user}}"
|
|
|
|
- name: "create superjuser for django im app if it doesn't exist"
|
|
django_manage:
|
|
command: "createsuperuser --noinput --username=admin --email={{im_admin_email}}"
|
|
app_path: "{{im_home}}/im"
|
|
become: true
|
|
become_user: "{{im_user}}"
|
|
when: superuser_exists.out.find("True") == -1
|
|
|
|
- name: "set superjuser password"
|
|
django_manage:
|
|
command: shell -c "from django.contrib.auth.models import User; usr = User.objects.get(username='admin'); usr.set_password('{{im_admin_password}}'); usr.save()"
|
|
app_path: "{{im_home}}/im"
|
|
become: true
|
|
become_user: "{{im_user}}"
|
|
|
|
- name: 'collect static content'
|
|
django_manage:
|
|
command: "collectstatic"
|
|
app_path: "{{im_home}}/im"
|
|
|
|
- name: "Service im"
|
|
service:
|
|
name: im
|
|
state: started
|
|
enabled: true
|
|
when: ansible_service_mgr == "systemd"
|