--- # 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/nmgfitness/archive/main.tar.gz owner: im group: im mode: '0400' force: true - name: 'remove previous install stable' file: dest: "{{im_home}}/nmgfitness" 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}}/nmgfitness/nmgfitness/settings.py" owner: "{{ im_user }}" mode: 0600 notify: "Restart im" - name: 'migrate django im app' django_manage: command: migrate app_path: "{{im_home}}/nmgfitness" 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}}/nmgfitness" 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}}/nmgfitness" 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}}/nmgfitness" become: true become_user: "{{im_user}}" - name: 'collect static content' django_manage: command: "collectstatic" app_path: "{{im_home}}/nmgfitness" - name: "Service im" service: name: im state: started enabled: true when: ansible_service_mgr == "systemd"