aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/nomad
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/roles/nomad')
-rw-r--r--ansible/roles/nomad/files/nomad.service9
-rw-r--r--ansible/roles/nomad/handlers/main.yml5
-rw-r--r--ansible/roles/nomad/tasks/main.yml49
-rw-r--r--ansible/roles/nomad/templates/nomad.hcl.j230
4 files changed, 93 insertions, 0 deletions
diff --git a/ansible/roles/nomad/files/nomad.service b/ansible/roles/nomad/files/nomad.service
new file mode 100644
index 0000000..cabfafc
--- /dev/null
+++ b/ansible/roles/nomad/files/nomad.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Nomad
+
+[Service]
+ExecStart=/usr/local/bin/nomad agent -config /etc/nomad
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/ansible/roles/nomad/handlers/main.yml b/ansible/roles/nomad/handlers/main.yml
new file mode 100644
index 0000000..0274673
--- /dev/null
+++ b/ansible/roles/nomad/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+
+- name: restart nomad
+ service: name=nomad state=restarted
+
diff --git a/ansible/roles/nomad/tasks/main.yml b/ansible/roles/nomad/tasks/main.yml
new file mode 100644
index 0000000..e6e6e10
--- /dev/null
+++ b/ansible/roles/nomad/tasks/main.yml
@@ -0,0 +1,49 @@
+- name: "Set nomad version"
+ set_fact:
+ nomad_version: 0.8.6
+
+- name: "Download and install Nomad for armv7l"
+ unarchive:
+ src: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_linux_arm.zip"
+ dest: /usr/local/bin
+ remote_src: yes
+ when:
+ - "ansible_architecture == 'armv7l'"
+ notify:
+ - restart nomad
+
+- name: "Download and install Nomad for x86_64"
+ unarchive:
+ src: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_linux_amd64.zip"
+ dest: /usr/local/bin
+ remote_src: yes
+ when:
+ - "ansible_architecture == 'x86_64'"
+ notify:
+ - restart nomad
+
+- name: "Download and install Nomad for arm64"
+ unarchive:
+ src: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_linux_arm64.zip"
+ dest: /usr/local/bin
+ remote_src: yes
+ when:
+ - "ansible_architecture == 'aarch64'"
+ notify:
+ - restart nomad
+
+- name: "Create Nomad configuration directory"
+ file: path=/etc/nomad/ state=directory
+
+- name: "Deploy Nomad configuration"
+ template: src=nomad.hcl.j2 dest=/etc/nomad/nomad.hcl
+ notify:
+ - restart nomad
+
+- name: "Deploy Nomad systemd service"
+ copy: src=nomad.service dest=/etc/systemd/system/nomad.service
+ notify:
+ - restart nomad
+
+- name: "Enable Nomad systemd service at boot"
+ service: name=nomad state=started enabled=yes daemon_reload=yes
diff --git a/ansible/roles/nomad/templates/nomad.hcl.j2 b/ansible/roles/nomad/templates/nomad.hcl.j2
new file mode 100644
index 0000000..8107410
--- /dev/null
+++ b/ansible/roles/nomad/templates/nomad.hcl.j2
@@ -0,0 +1,30 @@
+addresses {
+ http = "0.0.0.0"
+ rpc = "0.0.0.0"
+ serf = "0.0.0.0"
+}
+
+advertise {
+ http = "{{ public_ip }}"
+ rpc = "{{ public_ip }}"
+ serf = "{{ public_ip }}"
+}
+
+data_dir = "/var/lib/nomad"
+
+server {
+ enabled = true
+ bootstrap_expect = 3
+}
+
+consul {
+ address="127.0.0.1:8500"
+}
+
+client {
+ enabled = true
+ #cpu_total_compute = 4000
+ servers = ["127.0.0.1:4648"]
+ network_interface = "{{ interface }}"
+}
+