From 8654b0126afaced14f326627fbffc41414808b57 Mon Sep 17 00:00:00 2001 From: vincent Date: Sun, 13 Mar 2022 16:03:33 +0100 Subject: [PATCH] build role --- README.md | 17 ++++++++++++++ defaults/main.yml | 5 ++++ handlers/main.yml | 6 +++++ meta/main.yml | 52 +++++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 33 ++++++++++++++++++++++++++ templates/config.hcl.j2 | 22 +++++++++++++++++ tests/inventory | 2 ++ tests/test.yml | 4 ++++ vars/Archlinux.yml | 5 ++++ vars/main.yml | 0 10 files changed, 146 insertions(+) create mode 100644 README.md create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/config.hcl.j2 create mode 100644 tests/inventory create mode 100644 tests/test.yml create mode 100644 vars/Archlinux.yml create mode 100644 vars/main.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..2da0b67 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Ansible-hashicorp-nomad + +install hashicorp nomad + +## Requirements + +## Role Variables + +## Dependencies + +## License + +BSD + +## Author Information + +vincent@ducamps.win diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..0512e0d --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,5 @@ +--- +nomad_data_dir: /opt/nomad +nomad_bind_addr: 0.0.0.0 +nomad_datacenter: dc1 +nomad_bootstrap_expect: 3 diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..4ad5ab7 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,6 @@ +--- +# handlers file for ansible-nomad +- name: restart nomad + service: + name: "{{ nomad_os_service }}" + state: restarted diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..8d7b355 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: VincentDCMPS + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: + [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: + [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..144ab0d --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,33 @@ +--- +- name: Include OS-specific variables + include_vars: "{{ item }}" + with_first_found: + - files: + - "{{ ansible_os_family }}-{{ ansible_distribution_major_version }}.yml" + - "{{ ansible_os_family }}.yml" + +- name: install package + package: + name: "{{ nomad_os_package }}" + state: present + +- name: create folder + file: + state: directory + mode: 0755 + path: "{{nomad_data_dir }}" + +- name: apply config template + block: + - name: server template + template: + src: config.hcl.j2 + dest: /etc/nomad.d/config.hcl + mode: 0400 + notify: restart nomad + +- name: ensure service is started + systemd: + name: "{{ nomad_os_service }}" + state: started + enabled: True diff --git a/templates/config.hcl.j2 b/templates/config.hcl.j2 new file mode 100644 index 0000000..f126a1d --- /dev/null +++ b/templates/config.hcl.j2 @@ -0,0 +1,22 @@ +data_dir = "{{ nomad_data_dir}}" +bind_addr = "{{ nomad_bind_addr }}" +datacenter = "{{ nomad_datacenter }}" + +server { + enabled = true + bootstrap_expect = {{ nomad_bootstrap_expect }} +} + +client { + enabled = true +} + +plugin "raw_exec" { + config { + enabled = true + } +} + +consul { + address = "127.0.0.1:8500" +} diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..bdfe67d --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: all + roles: + - ansible-hashicorp-nomad diff --git a/vars/Archlinux.yml b/vars/Archlinux.yml new file mode 100644 index 0000000..9120968 --- /dev/null +++ b/vars/Archlinux.yml @@ -0,0 +1,5 @@ +--- +nomad_os_package: + - nomad + +nomad_os_service: nomad diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..e69de29