[ { "name": "packages", "become": true, "ansible.builtin.apt": { "update_cache": true, "pkg": [ "git", "gcc", "libldap2-dev", "libsasl2-dev", "python3-venv", "python3-dev", "gunicorn", "nodejs", "yarnpkg" ] } }, { "name": "user and directory", "become": true, "ansible.builtin.user": { "name": "{{var_tandoor_user}}", "create_home": true, "home": "{{var_tandoor_directory}}" } }, { "name": "sources", "become": true, "become_user": "{{var_tandoor_user}}", "ansible.builtin.git": { "repo": "{{var_tandoor_repository_url}}", "version": "{{var_tandoor_repository_reference}}", "single_branch": true, "dest": "{{var_tandoor_directory}}/program", "force": true } }, { "name": "venv", "become": true, "become_user": "{{var_tandoor_user}}", "ansible.builtin.command": { "chdir": "{{var_tandoor_directory}}", "cmd": "python3 -m venv program" } }, { "name": "python requirements", "become": true, "become_user": "{{var_tandoor_user}}", "ansible.builtin.pip": { "virtualenv": "{{var_tandoor_directory}}/program", "virtualenv_python": "python3", "requirements": "{{var_tandoor_directory}}/program/requirements.txt" } }, { "name": "initialize", "become": true, "become_user": "{{var_tandoor_user}}", "environment": { "VIRTUAL_ENV": "{{var_tandoor_directory}}/program", }, "loop": [ "migrate", "collectstatic --no-input", "collectstatic_js_reverse" ], "ansible.builtin.shell": { "chdir": "{{var_tandoor_directory}}/program", "cmd": "bin/python3 manage.py {{item}}" } }, { "name": "frontend stuff", "become": true, "become_user": "{{var_tandoor_user}}", "ansible.builtin.shell": { "chdir": "{{var_tandoor_directory}}/program/vue", "cmd": "yarnpkg install && yarnpkg build" } }, { "name": "configuration", "become": true, "become_user": "{{var_tandoor_user}}", "ansible.builtin.template": { "src": "conf.j2", "dest": "{{var_tandoor_directory}}/program/.env" } }, { "name": "systemd unit", "become": true, "ansible.builtin.template": { "src": "systemd-unit.j2", "dest": "/etc/systemd/system/tandoor.service" } }, { "name": "start", "become": true, "ansible.builtin.systemd_service": { "enabled": true, "state": "started", "name": "tandoor" } } ]