From dd2d39297ed2439b21f3e89a3a97c0256219bc0d Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO <ynerant@crans.org> Date: Wed, 31 Mar 2021 12:22:46 +0200 Subject: [PATCH] =?UTF-8?q?[galene]=20Deploy=20Gal=C3=A8ne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Yohann D'ANELLO <ynerant@crans.org> --- plays/galene.yml | 2 +- roles/galene/handlers/main.yml | 5 ++ roles/galene/tasks/main.yml | 77 +++++++++++++++++++ .../systemd/system/galene.service.j2 | 16 ++++ .../templates/update-motd.d/05-service.j2 | 3 + 5 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 roles/galene/handlers/main.yml create mode 100644 roles/galene/tasks/main.yml create mode 100644 roles/galene/templates/systemd/system/galene.service.j2 create mode 100755 roles/galene/templates/update-motd.d/05-service.j2 diff --git a/plays/galene.yml b/plays/galene.yml index a60aaf31..fb5de458 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 00000000..cf0b5792 --- /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 00000000..6b33c661 --- /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 00000000..8e967e44 --- /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 00000000..ede51c43 --- /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. -- GitLab