ansible-base/roles/tandoor/tasks/main.json

136 lines
3.1 KiB
JSON

[
{
"name": "packages",
"become": true,
"ansible.builtin.apt": {
"update_cache": true,
"pkg": [
"git",
"gcc",
"libpq-dev",
"libldap2-dev",
"libsasl2-dev",
"python3-venv",
"python3-dev",
"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": "configuration",
"become": true,
"become_user": "{{var_tandoor_user}}",
"ansible.builtin.template": {
"src": "conf.j2",
"dest": "{{var_tandoor_directory}}/program/.env",
"mode": "644"
}
},
{
"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": "admin account",
"become": true,
"become_user": "{{var_tandoor_user}}",
"environment": {
"VIRTUAL_ENV": "{{var_tandoor_directory}}/program"
},
"ansible.builtin.shell": {
"chdir": "{{var_tandoor_directory}}/program",
"cmd": "DJANGO_SUPERUSER_PASSWORD={{var_tandoor_admin_password}} bin/python3 manage.py createsuperuser --no-input --username {{var_tandoor_admin_username}} --email {{var_tandoor_admin_email}}"
}
},
{
"name": "frontend stuff | core",
"become": true,
"become_user": "{{var_tandoor_user}}",
"ansible.builtin.shell": {
"chdir": "{{var_tandoor_directory}}/program/vue",
"cmd": "yarnpkg install && yarnpkg build"
}
},
{
"name": "frontend stuff | link",
"become": true,
"become_user": "{{var_tandoor_user}}",
"ansible.builtin.file": {
"type": "link",
"src": "{{var_tandoor_directory}}/program/cookbook/static/vue",
"dest": "{{var_tandoor_directory}}/program/staticfiles/vue",
}
},
{
"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"
}
}
]