diff --git a/.gitignore b/.gitignore index 5c199eb..0ac6404 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # ---> Ansible *.retry +ansible.cfg diff --git a/roles/vector/defaults/main.yml b/roles/vector/defaults/main.yml new file mode 100644 index 0000000..b8f39ca --- /dev/null +++ b/roles/vector/defaults/main.yml @@ -0,0 +1,9 @@ +--- +vector_setup: + config_path: /etc/vector/vector.yaml +vector_config: + hostname: "" + journald: + enbled: true + loki: + address: "" \ No newline at end of file diff --git a/roles/vector/handlers/main.yml b/roles/vector/handlers/main.yml new file mode 100644 index 0000000..8cf1895 --- /dev/null +++ b/roles/vector/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: Restart Service + become: true + ansible.builtin.service: + name: vector + state: restarted \ No newline at end of file diff --git a/roles/vector/meta/main.yml b/roles/vector/meta/main.yml new file mode 100644 index 0000000..136371c --- /dev/null +++ b/roles/vector/meta/main.yml @@ -0,0 +1,9 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + license: license (GPL-2.0-or-later, MIT, etc) + min_ansible_version: 2.1 + galaxy_tags: [] +dependencies: [] + diff --git a/roles/vector/tasks/main.yml b/roles/vector/tasks/main.yml new file mode 100644 index 0000000..3136433 --- /dev/null +++ b/roles/vector/tasks/main.yml @@ -0,0 +1,25 @@ +--- +- name: Install Vector via official script + ansible.builtin.shell: bash -c "$(curl -L https://setup.vector.dev)" + args: + creates: /usr/bin/vector + +- name: Install Vector + ansible.builtin.apt: + name: vector + state: present + +- name: Deploy config + become: true + ansible.builtin.template: + src: templates/vector.yaml.j2 + dest: "{{ vector_setup.config_path }}" + owner: root + notify: + - Restart Service + +- name: Enable and start Vector service + ansible.builtin.systemd: + name: vector + enabled: yes + state: started \ No newline at end of file diff --git a/roles/vector/templates/vector.yaml.j2 b/roles/vector/templates/vector.yaml.j2 new file mode 100644 index 0000000..37fc01a --- /dev/null +++ b/roles/vector/templates/vector.yaml.j2 @@ -0,0 +1,34 @@ +sources: + journald: + type: journald + +transforms: + tag_journald: + type: remap + inputs: + - journald + source: | + .source = "journald" + .unit = ._SYSTEMD_UNIT + .process = ._COMM + .priority = .PRIORITY + .host = "{{ vector_config.hostname }}" + +sinks: + loki: + type: loki + inputs: + - tag_journald + endpoint: "{{ vector_config.loki.address }}" + healthcheck: + enabled: false + encoding: + codec: json + labels: +{% raw %} + host: "{{ .host }}" + source: "{{ .source }}" + unit: "{{ .unit }}" + process: "{{ .process }}" + priority: "{{ .priority }}" +{% endraw %} \ No newline at end of file diff --git a/roles/vector/tests/playbook.yaml b/roles/vector/tests/playbook.yaml new file mode 100644 index 0000000..58b021d --- /dev/null +++ b/roles/vector/tests/playbook.yaml @@ -0,0 +1,6 @@ +- name: Vector Install + hosts: + - all + roles: + - role: vector +