Update to 2022-08-03 16:00

This commit is contained in:
Daniel Berteaud
2022-08-03 16:00:16 +02:00
parent a11f21e9c6
commit 5715cdb046
18 changed files with 198 additions and 11 deletions

View File

@@ -7,6 +7,13 @@ nomad_archive_url: https://releases.hashicorp.com/nomad/{{ nomad_version }}/noma
# Expected sha256 of the archive
nomad_archive_sha256: fc6b3800935c621633d98148ea30737ab8ac1f698020f45b28b07ac61fbf4a96
# List of plugins to install
nomad_plugins:
podman:
version: 0.4.0
archive_url: https://releases.hashicorp.com/nomad-driver-podman/0.4.0/nomad-driver-podman_0.4.0_linux_amd64.zip
sha256: f905f9c38db8cec1542b92f69233488d5bf94e30fe9a0fae9ac03b30c1e2cfea
# Root dir where Nomad will be installed
nomad_root_dir: /opt/nomad
@@ -62,8 +69,7 @@ nomad_base_conf:
# cni: macvlan,ipvlan
meta: {}
# List of enabled drivers, and their options. Valid ones are
# exec, raw_exec, docker, java.
# List of enabled drivers, and their options.
task_drivers:
exec:
enabled: True
@@ -74,6 +80,10 @@ nomad_base_conf:
enabled: False
java:
enabled: False
qemu:
enabled: False
podman:
enabled: False # Note on EL8, it cannot be used with docker as there are package conflicts, see https://bugs.centos.org/view.php?id=16892
# Server related settings
server:

View File

@@ -3,3 +3,5 @@
dependencies:
- role: docker
when: nomad_conf.client.enabled and nomad_conf.client.task_drivers.docker.enabled
- role: cni_plugins
when: nomad_conf.client.enabled

View File

@@ -4,7 +4,18 @@
file: path={{ nomad_root_dir }}/archives/{{ nomad_current_version }} state=directory
tags: nomad
- name: Backup previous version
copy: src={{ nomad_root_dir }}/bin/nomad dest={{ nomad_root_dir }}/archives/{{ nomad_current_version }}/ remote_src=True
- name: Snapshot nomad data
command: "{{ nomad_root_dir }}/bin/nomad operator save {{ nomad_root_dir }}/archives/{{ nomad_current_version }}/nomad.snap"
tags: nomad
- name: Backup previous version
synchronize:
src: "{{ item }}"
dest: "{{ nomad_root_dir }}/archives/{{ nomad_current_version }}/"
compress: False
delegate_to: "{{ inventory_hostname }}"
loop:
- bin
- plugins
tags: nomad

View File

@@ -26,6 +26,9 @@
- dir: data
owner: "{{ nomad_user }}"
group: "{{ nomad_user }}"
- dir: plugins
owner: "{{ nomad_user }}"
group: "{{ nomad_user }}"
- dir: etc
owner: root
group: "{{ nomad_user }}"

View File

@@ -33,9 +33,8 @@
- when: nomad_bin.stat.exists and nomad_current_version != nomad_version
set_fact: nomad_install_mode='upgrade'
- debug: msg={{ nomad_conf.client.task_drivers | dict2items }}
tags: nomad
- name: Build a list of enabled task drivers
set_fact: nomad_enabled_task_drivers={{ nomad_conf.client.task_drivers | dict2items | selectattr('value.enabled', 'equalto', True) | map(attribute='key') }}
tags: nomad

View File

@@ -15,6 +15,14 @@
notify: restart nomad
tags: nomad
- when: nomad_install_mode == 'upgrade'
name: Clear plugin dir on upgrades
file: path={{ nomad_root_dir }}/plugins state={{ item }} owner={{ nomad_user }} group={{ nomad_user }}
loop:
- absent
- directory
tags: nomad
- when: nomad_install_mode != 'none'
block:
- name: Download nomad
@@ -35,10 +43,37 @@
dest: "{{ nomad_root_dir }}/bin/nomad"
remote_src: True
mode: 755
notify: restart nomad
- name: Link in /usr/local/bin
file: src={{ nomad_root_dir }}/bin/nomad dest=/usr/local/bin/nomad state=link force=True
- name: Download plugins
get_url:
url: "{{ nomad_plugins[item].archive_url }}"
dest: "{{ nomad_root_dir }}/tmp"
checksum: sha256:{{ nomad_plugins[item].sha256 }}
register: nomad_plugin_dl
loop: "{{ nomad_plugins.keys() | list }}"
- name: Extract nomad plugins
unarchive:
src: "{{ item.dest }}"
dest: "{{ nomad_root_dir }}/plugins/"
remote_src: True
loop: "{{ nomad_plugin_dl.results }}"
notify: restart nomad
tags: nomad
# Nomad looks for the qemu-system-x86_64 bin in $PATH
# so it needs to be available for Nomad to detect it
- name: Link qemu-kvm to qemu-system-x86_64
file:
src: /usr/libexec/qemu-kvm
dest: /usr/local/bin/qemu-system-x86_64
state: link
when: nomad_conf.client.enabled and 'qemu' in nomad_enabled_task_drivers
tags: nomad
- name: Install bash completion support

View File

@@ -1,4 +1,5 @@
data_dir = "{{ nomad_root_dir }}/data"
plugin_dir = "{{ nomad_root_dir }}/plugins"
log_level = "{{ nomad_conf.log_level }}"
bind_addr = "0.0.0.0"
@@ -41,8 +42,9 @@ server {
}
}
{% if nomad_conf.client.enabled %}
client {
enabled = {{ nomad_conf.client.enabled | ternary('true', 'false') }}
enabled = true
servers = [
{% for server in nomad_servers %}
"{{ server }}",
@@ -96,7 +98,11 @@ plugin "raw_exec" {
}
{% endif %}
{% endif %}
{% else %}
client {
enabled = false
}
{% endif %}
ui {
enabled = {{ nomad_conf.ui.enabled | ternary('true', 'false') }}
{% if nomad_conf.ui.consul_ui is defined %}

View File

@@ -3,3 +3,8 @@
nomad_task_driver_packages:
java:
- java-17-openjdk-headless
qemu:
- qemu-kvm
podman:
- podman
- podman-docker

View File

@@ -1,2 +0,0 @@
---