├── .ansible-lint ├── .editorconfig ├── .github ├── actions │ └── ansible-lint │ │ ├── Dockerfile │ │ ├── action.yml │ │ └── entrypoint.sh ├── dependabot.yml └── workflows │ ├── build-docker-image.yml │ └── test.yml ├── .gitignore ├── .images ├── consul-logo.svg ├── nomad-logo.svg ├── screenshot-nomad.png ├── screenshot-traefik01.png ├── screenshot-traefik02.png ├── vault-logo.svg └── vm-overview.drawio.svg ├── .yamllint ├── LICENSE ├── Makefile ├── README.md ├── Vagrantfile ├── ansible.cfg ├── group_vars └── all.yml ├── nomad_jobs ├── artifacts │ ├── grafana │ │ ├── README.md │ │ ├── grafana.ini │ │ └── provisioning │ │ │ ├── dashboards │ │ │ ├── dashboards.yml │ │ │ ├── nomad-cluster.json │ │ │ ├── nomad-jobs.json │ │ │ └── traefik.json │ │ │ └── datasources │ │ │ └── datasources.yml │ ├── hello-world-java │ │ ├── Dockerfile │ │ ├── HelloWorld.jar │ │ ├── build.sh │ │ └── entrypoint.sh │ └── prometheus │ │ ├── alertmanager.yml.tpl │ │ └── prometheus.yml.tpl ├── hello-world-docker.nomad ├── hello-world-java.nomad ├── hello-world-vault-policy.vault ├── hello-world-vault.nomad ├── hello-world-vault │ ├── Dockerfile │ ├── build.sh │ └── server.js ├── monitoring-grafana.nomad └── monitoring-prometheus.nomad ├── playbook.yml ├── roles ├── base │ └── tasks │ │ └── main.yml ├── consul │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── consul.hcl.j2 │ │ └── consul.service.j2 ├── coredns │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── coredns.service │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── Corefile.j2 ├── docker │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── jre │ └── tasks │ │ └── main.yml ├── nomad │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── nomad.hcl.j2 │ │ └── nomad.service.j2 ├── syslog-ng │ ├── files │ │ ├── logrotate.conf │ │ └── syslog-ng.service │ ├── tasks │ │ ├── client.yml │ │ ├── main.yml │ │ └── upstream.yml │ └── templates │ │ ├── syslog-ng-client.conf.j2 │ │ └── syslog-ng-upstream.conf.j2 ├── traefik │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── traefik.service │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── dynamic_conf.yaml.j2 │ │ └── traefik.yaml.j2 └── vault │ ├── defaults │ └── main.yml │ ├── files │ ├── nomad-cluster-role.json │ ├── nomad-server-policy.vault │ └── prometheus-policy.vault │ ├── tasks │ ├── demo.yml │ ├── init.yml │ ├── main.yml │ ├── nomad.yml │ └── unseal.yml │ └── templates │ ├── vault.hcl.j2 │ └── vault.service.j2 ├── tests └── test.yml └── unseal-vault.yml /.ansible-lint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.ansible-lint -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/actions/ansible-lint/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/actions/ansible-lint/Dockerfile -------------------------------------------------------------------------------- /.github/actions/ansible-lint/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/actions/ansible-lint/action.yml -------------------------------------------------------------------------------- /.github/actions/ansible-lint/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/actions/ansible-lint/entrypoint.sh -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/build-docker-image.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/workflows/build-docker-image.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.gitignore -------------------------------------------------------------------------------- /.images/consul-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/consul-logo.svg -------------------------------------------------------------------------------- /.images/nomad-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/nomad-logo.svg -------------------------------------------------------------------------------- /.images/screenshot-nomad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/screenshot-nomad.png -------------------------------------------------------------------------------- /.images/screenshot-traefik01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/screenshot-traefik01.png -------------------------------------------------------------------------------- /.images/screenshot-traefik02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/screenshot-traefik02.png -------------------------------------------------------------------------------- /.images/vault-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/vault-logo.svg -------------------------------------------------------------------------------- /.images/vm-overview.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.images/vm-overview.drawio.svg -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/.yamllint -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/README.md -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/Vagrantfile -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/ansible.cfg -------------------------------------------------------------------------------- /group_vars/all.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/group_vars/all.yml -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/README.md -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/grafana.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/grafana.ini -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/provisioning/dashboards/dashboards.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/provisioning/dashboards/dashboards.yml -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/provisioning/dashboards/nomad-cluster.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/provisioning/dashboards/nomad-cluster.json -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/provisioning/dashboards/nomad-jobs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/provisioning/dashboards/nomad-jobs.json -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/provisioning/dashboards/traefik.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/provisioning/dashboards/traefik.json -------------------------------------------------------------------------------- /nomad_jobs/artifacts/grafana/provisioning/datasources/datasources.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/grafana/provisioning/datasources/datasources.yml -------------------------------------------------------------------------------- /nomad_jobs/artifacts/hello-world-java/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/hello-world-java/Dockerfile -------------------------------------------------------------------------------- /nomad_jobs/artifacts/hello-world-java/HelloWorld.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/hello-world-java/HelloWorld.jar -------------------------------------------------------------------------------- /nomad_jobs/artifacts/hello-world-java/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/hello-world-java/build.sh -------------------------------------------------------------------------------- /nomad_jobs/artifacts/hello-world-java/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/hello-world-java/entrypoint.sh -------------------------------------------------------------------------------- /nomad_jobs/artifacts/prometheus/alertmanager.yml.tpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/prometheus/alertmanager.yml.tpl -------------------------------------------------------------------------------- /nomad_jobs/artifacts/prometheus/prometheus.yml.tpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/artifacts/prometheus/prometheus.yml.tpl -------------------------------------------------------------------------------- /nomad_jobs/hello-world-docker.nomad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-docker.nomad -------------------------------------------------------------------------------- /nomad_jobs/hello-world-java.nomad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-java.nomad -------------------------------------------------------------------------------- /nomad_jobs/hello-world-vault-policy.vault: -------------------------------------------------------------------------------- 1 | path "kv/hello-world-vault" { 2 | capabilities = ["read"] 3 | } 4 | -------------------------------------------------------------------------------- /nomad_jobs/hello-world-vault.nomad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-vault.nomad -------------------------------------------------------------------------------- /nomad_jobs/hello-world-vault/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-vault/Dockerfile -------------------------------------------------------------------------------- /nomad_jobs/hello-world-vault/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-vault/build.sh -------------------------------------------------------------------------------- /nomad_jobs/hello-world-vault/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/hello-world-vault/server.js -------------------------------------------------------------------------------- /nomad_jobs/monitoring-grafana.nomad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/monitoring-grafana.nomad -------------------------------------------------------------------------------- /nomad_jobs/monitoring-prometheus.nomad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/nomad_jobs/monitoring-prometheus.nomad -------------------------------------------------------------------------------- /playbook.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/playbook.yml -------------------------------------------------------------------------------- /roles/base/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/base/tasks/main.yml -------------------------------------------------------------------------------- /roles/consul/defaults/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/consul/defaults/main.yml -------------------------------------------------------------------------------- /roles/consul/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/consul/tasks/main.yml -------------------------------------------------------------------------------- /roles/consul/templates/consul.hcl.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/consul/templates/consul.hcl.j2 -------------------------------------------------------------------------------- /roles/consul/templates/consul.service.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/consul/templates/consul.service.j2 -------------------------------------------------------------------------------- /roles/coredns/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | coredns_version: latest 3 | -------------------------------------------------------------------------------- /roles/coredns/files/coredns.service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/coredns/files/coredns.service -------------------------------------------------------------------------------- /roles/coredns/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/coredns/tasks/main.yml -------------------------------------------------------------------------------- /roles/coredns/templates/Corefile.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/coredns/templates/Corefile.j2 -------------------------------------------------------------------------------- /roles/docker/handlers/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/docker/handlers/main.yml -------------------------------------------------------------------------------- /roles/docker/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/docker/tasks/main.yml -------------------------------------------------------------------------------- /roles/jre/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/jre/tasks/main.yml -------------------------------------------------------------------------------- /roles/nomad/defaults/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/nomad/defaults/main.yml -------------------------------------------------------------------------------- /roles/nomad/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/nomad/tasks/main.yml -------------------------------------------------------------------------------- /roles/nomad/templates/nomad.hcl.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/nomad/templates/nomad.hcl.j2 -------------------------------------------------------------------------------- /roles/nomad/templates/nomad.service.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/nomad/templates/nomad.service.j2 -------------------------------------------------------------------------------- /roles/syslog-ng/files/logrotate.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/files/logrotate.conf -------------------------------------------------------------------------------- /roles/syslog-ng/files/syslog-ng.service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/files/syslog-ng.service -------------------------------------------------------------------------------- /roles/syslog-ng/tasks/client.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/tasks/client.yml -------------------------------------------------------------------------------- /roles/syslog-ng/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/tasks/main.yml -------------------------------------------------------------------------------- /roles/syslog-ng/tasks/upstream.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/tasks/upstream.yml -------------------------------------------------------------------------------- /roles/syslog-ng/templates/syslog-ng-client.conf.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/templates/syslog-ng-client.conf.j2 -------------------------------------------------------------------------------- /roles/syslog-ng/templates/syslog-ng-upstream.conf.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/syslog-ng/templates/syslog-ng-upstream.conf.j2 -------------------------------------------------------------------------------- /roles/traefik/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | traefik_version: latest 3 | -------------------------------------------------------------------------------- /roles/traefik/files/traefik.service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/traefik/files/traefik.service -------------------------------------------------------------------------------- /roles/traefik/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/traefik/tasks/main.yml -------------------------------------------------------------------------------- /roles/traefik/templates/dynamic_conf.yaml.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/traefik/templates/dynamic_conf.yaml.j2 -------------------------------------------------------------------------------- /roles/traefik/templates/traefik.yaml.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/traefik/templates/traefik.yaml.j2 -------------------------------------------------------------------------------- /roles/vault/defaults/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/defaults/main.yml -------------------------------------------------------------------------------- /roles/vault/files/nomad-cluster-role.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/files/nomad-cluster-role.json -------------------------------------------------------------------------------- /roles/vault/files/nomad-server-policy.vault: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/files/nomad-server-policy.vault -------------------------------------------------------------------------------- /roles/vault/files/prometheus-policy.vault: -------------------------------------------------------------------------------- 1 | 2 | path "sys/metrics" { 3 | capabilities = ["read", "list"] 4 | } 5 | -------------------------------------------------------------------------------- /roles/vault/tasks/demo.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/tasks/demo.yml -------------------------------------------------------------------------------- /roles/vault/tasks/init.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/tasks/init.yml -------------------------------------------------------------------------------- /roles/vault/tasks/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/tasks/main.yml -------------------------------------------------------------------------------- /roles/vault/tasks/nomad.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/tasks/nomad.yml -------------------------------------------------------------------------------- /roles/vault/tasks/unseal.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/tasks/unseal.yml -------------------------------------------------------------------------------- /roles/vault/templates/vault.hcl.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/templates/vault.hcl.j2 -------------------------------------------------------------------------------- /roles/vault/templates/vault.service.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/roles/vault/templates/vault.service.j2 -------------------------------------------------------------------------------- /tests/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/tests/test.yml -------------------------------------------------------------------------------- /unseal-vault.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fhemberger/nomad-demo/HEAD/unseal-vault.yml --------------------------------------------------------------------------------