diff options
Diffstat (limited to 'ansible/roles/nomad')
-rw-r--r-- | ansible/roles/nomad/files/nomad.service | 9 | ||||
-rw-r--r-- | ansible/roles/nomad/handlers/main.yml | 5 | ||||
-rw-r--r-- | ansible/roles/nomad/tasks/main.yml | 49 | ||||
-rw-r--r-- | ansible/roles/nomad/templates/nomad.hcl.j2 | 30 |
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 }}" +} + |