aboutsummaryrefslogtreecommitdiff
path: root/os_config/roles/nomad
diff options
context:
space:
mode:
Diffstat (limited to 'os_config/roles/nomad')
-rw-r--r--os_config/roles/nomad/files/nomad.service15
-rw-r--r--os_config/roles/nomad/tasks/main.yml23
-rw-r--r--os_config/roles/nomad/templates/nomad.hcl.j234
3 files changed, 72 insertions, 0 deletions
diff --git a/os_config/roles/nomad/files/nomad.service b/os_config/roles/nomad/files/nomad.service
new file mode 100644
index 0000000..50116be
--- /dev/null
+++ b/os_config/roles/nomad/files/nomad.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Nomad
+After=network-online.target
+After=glusterd.service
+After=consul.service
+Wants=network-online.target
+Wants=glusterd.service
+Wants=consul.service
+
+[Service]
+ExecStart=/usr/local/bin/nomad agent -config /etc/nomad
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/os_config/roles/nomad/tasks/main.yml b/os_config/roles/nomad/tasks/main.yml
new file mode 100644
index 0000000..7c73362
--- /dev/null
+++ b/os_config/roles/nomad/tasks/main.yml
@@ -0,0 +1,23 @@
+- name: "Set nomad version"
+ set_fact:
+ nomad_version: 0.12.0-beta2
+
+- 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'"
+
+- 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
+
+- name: "Deploy Nomad systemd service"
+ copy: src=nomad.service dest=/etc/systemd/system/nomad.service
+
+- name: "Enable Nomad systemd service at boot"
+ service: name=nomad state=started enabled=yes daemon_reload=yes
diff --git a/os_config/roles/nomad/templates/nomad.hcl.j2 b/os_config/roles/nomad/templates/nomad.hcl.j2
new file mode 100644
index 0000000..b0be6a8
--- /dev/null
+++ b/os_config/roles/nomad/templates/nomad.hcl.j2
@@ -0,0 +1,34 @@
+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 }}"
+ options {
+ docker.privileged.enabled = "true"
+ docker.volumes.enabled = "true"
+ }
+}
+