commit 09754d764122c9d477f4fdf86f3f836e981ed586 Author: dannc Date: Tue Aug 2 10:09:52 2022 +0700 initial: role for vector diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a09c56d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea diff --git a/README.md b/README.md new file mode 100644 index 0000000..d57dc4e --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +ansible-vector +========= + +Данная роль устанавливает `vector`. + +Requirements +------------ + +None + +Role Variables +-------------- + +- `vector_version` - версия `vector`, которая будет установлена +- `vector_config_dir` - директория с конфигурацией `vector` +- `vector_config` - полная конфигурация `vector`. Описание возможных значений [в официальной документации](https://vector.dev/docs/reference/configuration/) + +Dependencies +------------ + +None + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + +```yaml +--- +- name: vector + hosts: vector + roles: + - vector +``` + +License +------- + +BSD diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..ed7816c --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,6 @@ +--- +vector_version: 0.23.0 +vector_config_dir: /var/lib/vector +vector_config: + data_dir: "{{ vector_config_dir }}" + # todo добавить конфигурацию https://vector.dev/docs/reference/configuration/ diff --git a/files/.gitignore b/files/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/files/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1 @@ +--- diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..db47360 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,12 @@ +galaxy_info: + author: dannc + description: install vector + company: "" + license: BSD-3-Clause + min_ansible_version: "2.1" + platforms: + - name: EL + versions: + - all + galaxy_tags: [] +dependencies: [] diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..278389b --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,59 @@ +--- +- name: vector | install archive manager + become: true + ansible.builtin.yum: + name: + - tar +- name: vector | get distrib + ansible.builtin.get_url: + url: "https://packages.timber.io/vector/{{ vector_version }}/vector-{{ vector_version }}-x86_64-unknown-linux-musl.tar.gz" + dest: "./vector-{{ vector_version }}-x86_64-unknown-linux-musl.tar.gz" + mode: "755" +- name: vector | unpack distrib + ansible.builtin.unarchive: + src: "./vector-{{ vector_version }}-x86_64-unknown-linux-musl.tar.gz" + dest: "./" + remote_src: true +- name: vector | install + become: true + ansible.builtin.copy: + src: "vector-x86_64-unknown-linux-musl/bin/vector" + dest: "/usr/local/bin/" + remote_src: true + mode: "755" +- name: vector | check installed version + ansible.builtin.command: + cmd: vector --version + register: result + changed_when: + - 'vector_version not in result.stdout' + tags: + - vector_check_version +- name: vector | create data dir + become: true + ansible.builtin.file: + mode: "755" + owner: "{{ ansible_effective_user_id }}" + group: "{{ ansible_effective_group_id }}" + path: "{{ vector_config_dir }}" + state: "directory" +- name: vector | template config + ansible.builtin.template: + src: "templates/vector.config.j2" + dest: "{{ vector_config_dir }}/vector.yaml" + mode: "755" +- name: vector | register as service + become: true + ansible.builtin.template: + src: "templates/vector.service.j2" + dest: "/etc/systemd/system/vector.service" + owner: "{{ ansible_effective_user_id }}" + group: "{{ ansible_effective_group_id }}" + mode: "0644" + backup: true +- name: vector | start service + become: true + ansible.builtin.service: + name: vector + state: started + daemon_reload: true diff --git a/templates/vector.config.j2 b/templates/vector.config.j2 new file mode 100644 index 0000000..9fe2a85 --- /dev/null +++ b/templates/vector.config.j2 @@ -0,0 +1 @@ +{{ vector_config | to_nice_yaml }} diff --git a/templates/vector.service.j2 b/templates/vector.service.j2 new file mode 100644 index 0000000..b2ee2a0 --- /dev/null +++ b/templates/vector.service.j2 @@ -0,0 +1,7 @@ +[Unit] +Description=Vector service +[Service] +User={{ ansible_user_id }} +Group={{ ansible_user_gid }} +ExecStart=/usr/local/bin/vector --config-yaml {{ vector_config_dir }}/vector.yaml --watch-config +Restart=always 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..8f0cc74 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - vector-role diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1 @@ +---