diff --git a/plays/galene.yml b/plays/galene.yml index a60aaf31dc6a4b852242498bdfe5699d48377b5c..fb5de458da8fdb80226e04bd65710a9d3964bf01 100755 --- a/plays/galene.yml +++ b/plays/galene.yml @@ -8,4 +8,4 @@ roles: - certbot - nginx - # - galene + - galene diff --git a/roles/galene/handlers/main.yml b/roles/galene/handlers/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..cf0b5792b2732259a0772cb4ac6820b5ee8e4c5a --- /dev/null +++ b/roles/galene/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart galène + systemd: + name: galene + state: restarted diff --git a/roles/galene/tasks/main.yml b/roles/galene/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..6b33c66135911e9302f951d90c01a19846a14bee --- /dev/null +++ b/roles/galene/tasks/main.yml @@ -0,0 +1,77 @@ +--- +- name: Install golang and git + apt: + update_cache: true + install_recommends: false + name: + - git + - golang + register: apt_result + retries: 3 + until: apt_result is succeeded + +- name: Create galene account + user: + name: galene + comment: Galène + home: "" + create_home: false + +- name: Create Galène directory + file: + path: /var/local/galene + state: directory + owner: galene + group: galene + mode: u+rw,g+rws,o+r + +- name: Clone Galène + git: + repo: https://github.com/jech/galene.git + dest: /var/local/galene + register: git_result + become_user: galene + +- name: Build galene + when: git_result.changed + shell: "go build -ldflags='-s -w'" + args: + chdir: /var/local/galene + environment: + CGO_ENABLED: 0 + notify: Restart galène + +- name: Install systemd unit + template: + src: systemd/system/galene.service.j2 + dest: /etc/systemd/system/galene.service + owner: root + group: root + mode: 0644 + notify: Restart galène + +- name: Enable systemd unit + systemd: + name: galene + enabled: yes + daemon_reload: yes + state: started + +- name: Create directory for streaming front page + file: + path: /var/www/galene-stream-frontend + state: directory + owner: www-data + group: www-data + mode: u+rw,g+rws,o+r + +- name: Clone stream front + git: + repo: https://gitlab.adm.crans.org/erdnaxe/galene-stream-frontend.git + dest: /var/www/galene-stream-frontend + +- name: Indicate role in motd + template: + src: update-motd.d/05-service.j2 + dest: /etc/update-motd.d/05-galene + mode: 0755 diff --git a/roles/galene/templates/systemd/system/galene.service.j2 b/roles/galene/templates/systemd/system/galene.service.j2 new file mode 100644 index 0000000000000000000000000000000000000000..8e967e440e4fcdce0f1eeab89b40ef0e1f57fba7 --- /dev/null +++ b/roles/galene/templates/systemd/system/galene.service.j2 @@ -0,0 +1,16 @@ +{{ ansible_header }} + +[Unit] +Description=Galene +After=network.target + +[Service] +Type=simple +WorkingDirectory=/var/local/galene +User=galene +Group=galene +ExecStart=/var/local/galene/galene --insecure +LimitNOFILE=65536 + +[Install] +WantedBy=multi-user.target diff --git a/roles/galene/templates/update-motd.d/05-service.j2 b/roles/galene/templates/update-motd.d/05-service.j2 new file mode 100755 index 0000000000000000000000000000000000000000..ede51c43c7c49bb01c9f639553d751499ea93fc7 --- /dev/null +++ b/roles/galene/templates/update-motd.d/05-service.j2 @@ -0,0 +1,3 @@ +#!/usr/bin/tail +14 +{{ ansible_header | comment }} +[0m> [38;5;82mGalène[0m a été déployé sur cette machine. Voir [38;5;6m/var/local/galene/[0m.