initial push
This commit is contained in:
50
roles/pallxk.code_server/tasks/check-code-server.yml
Normal file
50
roles/pallxk.code_server/tasks/check-code-server.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
- name: Check code-server binary exists
|
||||
stat:
|
||||
path: "{{ code_server_bin_dir }}/code-server"
|
||||
follow: yes
|
||||
register: code_server_exists
|
||||
|
||||
# This check is compatible with code-server v1, v2 and v3
|
||||
#
|
||||
# v3.6.0:
|
||||
# 3.6.0 a4a03c14922ccaec2a9ff8d1b7b2af8522a4214d
|
||||
#
|
||||
# v3.5.0:
|
||||
# [2020-09-01T06:20:36.864Z] info Using config file ~/.config/code-server/config.yaml
|
||||
# 3.5.0 de41646fc402b968ca6d555fdf2da7de9554d28a
|
||||
#
|
||||
# v3.4.1:
|
||||
# info Using config file ~/.config/code-server/config.yaml
|
||||
# 3.4.1 48f7c2724827e526eeaa6c2c151c520f48a61259
|
||||
#
|
||||
# v3.0.2:
|
||||
# 3.0.2 e480f6527e11344a7c69b7cd024bce9379cea7f0
|
||||
#
|
||||
# v3:
|
||||
# 3.0.0
|
||||
#
|
||||
# v2:
|
||||
# info 2.1698-vsc1.41.1
|
||||
# info f51e045cd5483561afc07694f39307fb673b6d1d
|
||||
# info x64
|
||||
#
|
||||
# v1:
|
||||
# 1.1156-vsc1.33.1
|
||||
- name: Check installed code-server version
|
||||
shell: 'set -o pipefail; code-server --version | grep -P -o "(?<=^|info )\d+(\.\d+)+(-[^ ]+)?"'
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: code_server_version
|
||||
when: code_server_exists.stat.exists
|
||||
changed_when: no
|
||||
|
||||
- name: Check latest code-server version
|
||||
uri:
|
||||
url: https://api.github.com/repos/cdr/code-server/releases
|
||||
register: code_server_releases
|
||||
when: code_server_ver is undefined
|
||||
|
||||
- name: Set code-server latest version
|
||||
set_fact:
|
||||
code_server_ver: "{{ code_server_releases.json[0].tag_name }}"
|
||||
when: code_server_ver is undefined
|
||||
19
roles/pallxk.code_server/tasks/configure-code-server.yml
Normal file
19
roles/pallxk.code_server/tasks/configure-code-server.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
- name: Create code-server data dir
|
||||
file:
|
||||
path: "{{ code_server_data_dir }}"
|
||||
state: directory
|
||||
|
||||
- name: Copy code-server env file
|
||||
template:
|
||||
src: env
|
||||
dest: "{{ code_server_data_dir }}"
|
||||
mode: 0600
|
||||
notify: Restart code-server
|
||||
when: code_server_password is defined or
|
||||
code_server_env|length > 0
|
||||
|
||||
- block:
|
||||
- import_tasks: copy-certs.yml
|
||||
rescue:
|
||||
- import_tasks: copy-certs.yml
|
||||
become: yes
|
||||
21
roles/pallxk.code_server/tasks/copy-certs.yml
Normal file
21
roles/pallxk.code_server/tasks/copy-certs.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
- name: Copy TLS certificate
|
||||
copy:
|
||||
remote_src: "{{ code_server_tls_cert_remote }}"
|
||||
src: "{{ code_server_tls_cert }}"
|
||||
dest: "{{ code_server_data_dir }}/tls.cert"
|
||||
owner: "{{ code_server_user }}"
|
||||
group: "{{ ansible_user_gid|string }}"
|
||||
mode: 0440
|
||||
notify: Restart code-server
|
||||
when: code_server_tls_cert is defined
|
||||
|
||||
- name: Copy TLS key
|
||||
copy:
|
||||
remote_src: "{{ code_server_tls_key_remote }}"
|
||||
src: "{{ code_server_tls_key }}"
|
||||
dest: "{{ code_server_data_dir }}/tls.key"
|
||||
owner: "{{ code_server_user }}"
|
||||
group: "{{ ansible_user_gid|string }}"
|
||||
mode: 0440
|
||||
notify: Restart code-server
|
||||
when: code_server_tls_key is defined
|
||||
18
roles/pallxk.code_server/tasks/deprecate.yml
Normal file
18
roles/pallxk.code_server/tasks/deprecate.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
- name: Check usage of deprecated variables
|
||||
debug:
|
||||
msg: "'{{ item }}' is deprecated, please use 'code_server_{{ item }}'"
|
||||
when: "{{ item }} is defined"
|
||||
with_items:
|
||||
- tls_cert
|
||||
- tls_key
|
||||
- tls_cert_remote
|
||||
- tls_key_remote
|
||||
|
||||
- name: Set corresponding code_server_ variables
|
||||
set_fact: code_server_{{ item }}={{ lookup('vars', item) }}
|
||||
when: "{{ item }} is defined"
|
||||
with_items:
|
||||
- tls_cert
|
||||
- tls_key
|
||||
- tls_cert_remote
|
||||
- tls_key_remote
|
||||
@@ -0,0 +1,12 @@
|
||||
- name: Download code-server legacy
|
||||
become: yes
|
||||
unarchive:
|
||||
remote_src: yes
|
||||
src: "{{ code_server_tar_url }}"
|
||||
dest: "{{ code_server_bin_dir }}"
|
||||
extra_opts:
|
||||
- --strip-components=1
|
||||
- --wildcards
|
||||
- "*/code-server"
|
||||
notify: Restart code-server
|
||||
when: code_server_download_needed
|
||||
@@ -0,0 +1,13 @@
|
||||
- name: Copy code-server systemd unit file
|
||||
become: yes
|
||||
template:
|
||||
src: code-server.service
|
||||
dest: "{{ code_server_service_dir }}"
|
||||
notify: Restart code-server
|
||||
|
||||
- name: Copy code-server systemd override file
|
||||
become: yes
|
||||
template:
|
||||
src: code-server.service.d/restart.conf
|
||||
dest: "{{ code_server_service_dir }}/code-server.service.d/"
|
||||
notify: Restart code-server
|
||||
34
roles/pallxk.code_server/tasks/install-code-server.yml
Normal file
34
roles/pallxk.code_server/tasks/install-code-server.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
- name: Clean up {{ code_server_dir }}
|
||||
become: yes
|
||||
file:
|
||||
state: absent
|
||||
path: "{{ code_server_dir }}"
|
||||
when: code_server_download_needed
|
||||
|
||||
- name: Create {{ code_server_dir }}
|
||||
become: yes
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ code_server_dir }}"
|
||||
|
||||
- name: Download code-server
|
||||
become: yes
|
||||
unarchive:
|
||||
remote_src: yes
|
||||
src: "{{ code_server_tar_url }}"
|
||||
dest: "{{ code_server_dir }}"
|
||||
extra_opts:
|
||||
- --strip-components=1
|
||||
notify: Restart code-server
|
||||
when: code_server_download_needed
|
||||
|
||||
- name: Add {{ code_server_bin_dir }}/code-server
|
||||
become: yes
|
||||
file:
|
||||
state: link
|
||||
src: "{{ code_server_dir }}{{ '/bin' if code_server_cleaned_ver is version('3.3.0', '>=') else '' }}/code-server"
|
||||
dest: "{{ code_server_bin_dir }}/code-server"
|
||||
# force is required if upgrade from v1 or v2,
|
||||
# in which case dest exists and is a file.
|
||||
force: yes
|
||||
notify: Restart code-server
|
||||
64
roles/pallxk.code_server/tasks/main.yml
Normal file
64
roles/pallxk.code_server/tasks/main.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
- name: Check usage of deprecated role variables
|
||||
include_tasks: deprecate.yml
|
||||
when: >
|
||||
tls_cert is defined
|
||||
or tls_key is defined
|
||||
or tls_cert_remote is defined
|
||||
or tls_key_remote is defined
|
||||
|
||||
# Always gather facts as we use ansible_user_id and ansible_user_dir
|
||||
- name: Gather Facts
|
||||
setup:
|
||||
gather_subset: '!all'
|
||||
|
||||
- name: Check systemd version
|
||||
shell: "set -o pipefail; systemctl --version | head -1 | cut -d' ' -f2"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: systemctl_version
|
||||
changed_when: no
|
||||
|
||||
- name: Create {{ code_server_service_dir }}
|
||||
become: yes
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ code_server_service_dir }}"
|
||||
|
||||
- name: Check code-server
|
||||
include_tasks: check-code-server.yml
|
||||
|
||||
- import_tasks: install-code-server-legacy.yml
|
||||
when: code_server_major|int < 3
|
||||
|
||||
- import_tasks: install-code-server.yml
|
||||
when: code_server_major|int >= 3
|
||||
|
||||
- import_tasks: install-code-server-service.yml
|
||||
|
||||
- name: Configure code-server
|
||||
include_tasks: configure-code-server.yml
|
||||
|
||||
- name: Configure service
|
||||
set_fact:
|
||||
code_server_configure_service: yes
|
||||
tags:
|
||||
- service
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
- name: Enable code-server service
|
||||
become: yes
|
||||
systemd:
|
||||
name: code-server
|
||||
enabled: yes
|
||||
tags:
|
||||
- service
|
||||
|
||||
- name: Report
|
||||
include_tasks: report.yml
|
||||
|
||||
- name: Sanity Test
|
||||
include_tasks: tests.yml
|
||||
tags:
|
||||
- tests
|
||||
10
roles/pallxk.code_server/tasks/report.yml
Normal file
10
roles/pallxk.code_server/tasks/report.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
- name: List installed files
|
||||
debug:
|
||||
msg:
|
||||
- "{{ code_server_dir }}"
|
||||
- "{{ code_server_bin_dir }}/code-server"
|
||||
- "{{ code_server_service_dir }}/code-server.service"
|
||||
- "{{ code_server_service_dir }}/code-server.service.d/restart.conf"
|
||||
- "{% if code_server_password is defined %}{{ code_server_data_dir }}/env{% endif %}"
|
||||
- "{% if code_server_tls_cert is defined %}{{ code_server_data_dir }}/tls.cert{% endif %}"
|
||||
- "{% if code_server_tls_key is defined %}{{ code_server_data_dir }}/tls.key{% endif %}"
|
||||
13
roles/pallxk.code_server/tasks/tests.yml
Normal file
13
roles/pallxk.code_server/tasks/tests.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
- name: Test connectivity locally
|
||||
wait_for:
|
||||
port: "{{ code_server_port }}"
|
||||
timeout: 15
|
||||
|
||||
- name: Test connectivity remotely
|
||||
wait_for:
|
||||
host: "{{ inventory_hostname }}"
|
||||
port: "{{ code_server_port }}"
|
||||
timeout: 15
|
||||
delegate_to: localhost
|
||||
ignore_errors: yes
|
||||
Reference in New Issue
Block a user