ansible-base/roles/hedgedoc/tasks/main.json
Christian Fraß c70362e5ef [int]
2025-10-08 12:26:20 +02:00

119 lines
2.3 KiB
JSON

[
{
"name": "show vars",
"when": "switch_show_vars",
"ansible.builtin.debug": {
"var": "vars.cfg_hedgedoc"
}
},
{
"name": "packages",
"become": true,
"ansible.builtin.apt": {
"update_cache": true,
"pkg": [
"acl",
"git",
"nodejs",
"npm",
"yarnpkg"
]
}
},
{
"name": "yarn link",
"become": true,
"ansible.builtin.file": {
"state": "link",
"src": "/usr/bin/yarnpkg",
"dest": "/usr/bin/yarn"
}
},
{
"name": "user",
"become": true,
"ansible.builtin.user": {
"name": "{{cfg_hedgedoc.user_name}}",
"create_home": true,
"home": "{{cfg_hedgedoc.directory}}"
}
},
{
"name": "database",
"when": "cfg_hedgedoc.database.kind == 'sqlite'",
"block": [
{
"name": "database | directory",
"become": true,
"ansible.builtin.file": {
"state": "directory",
"path": "{{cfg_hedgedoc.database.data.sqlite.path | dirname}}",
"owner": "{{cfg_hedgedoc.user_name}}"
}
},
{
"name": "database | file",
"become": true,
"ansible.builtin.file": {
"state": "touch",
"path": "{{cfg_hedgedoc.database.sqlite.data.path}}",
"owner": "{{cfg_hedgedoc.user_name}}"
}
}
]
},
{
"name": "download",
"become": false,
"ansible.builtin.get_url": {
"url": "https://github.com/hedgedoc/hedgedoc/releases/download/{{cfg_hedgedoc.version}}/hedgedoc-{{cfg_hedgedoc.version}}.tar.gz",
"dest": "/tmp/hedgedoc.tar.gz"
}
},
{
"name": "extract",
"become": true,
"ansible.builtin.unarchive": {
"remote_src": true,
"src": "/tmp/hedgedoc.tar.gz",
"dest": "{{cfg_hedgedoc.directory | dirname}}",
"owner": "{{cfg_hedgedoc.user_name}}"
}
},
{
"name": "setup script",
"become": true,
"become_user": "hedgedoc",
"ansible.builtin.command": {
"chdir": "{{cfg_hedgedoc.directory}}",
"cmd": "bin/setup"
}
},
{
"name": "configuration",
"become": true,
"ansible.builtin.template": {
"src": "config.json.j2",
"dest": "{{cfg_hedgedoc.directory}}/config.json"
}
},
{
"name": "systemd unit",
"become": true,
"ansible.builtin.template": {
"src": "systemd-unit.j2",
"dest": "/etc/systemd/system/hedgedoc.service"
}
},
{
"name": "start",
"become": true,
"ansible.builtin.systemd_service": {
"enabled": true,
"state": "started",
"name": "hedgedoc"
}
}
]