initial: role for vector

This commit is contained in:
2022-08-02 10:09:52 +07:00
commit 09754d7641
12 changed files with 136 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/.idea

39
README.md Normal file
View File

@@ -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

6
defaults/main.yml Normal file
View File

@@ -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/

2
files/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

1
handlers/main.yml Normal file
View File

@@ -0,0 +1 @@
---

12
meta/main.yml Normal file
View File

@@ -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: []

59
tasks/main.yml Normal file
View File

@@ -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

View File

@@ -0,0 +1 @@
{{ vector_config | to_nice_yaml }}

View File

@@ -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

2
tests/inventory Normal file
View File

@@ -0,0 +1,2 @@
localhost

5
tests/test.yml Normal file
View File

@@ -0,0 +1,5 @@
---
- hosts: localhost
remote_user: root
roles:
- vector-role

1
vars/main.yml Normal file
View File

@@ -0,0 +1 @@
---