mirror of
https://github.com/Dannecron/netology-devops-ansible-vector.git
synced 2025-12-25 14:32:34 +03:00
initial: role for vector
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/.idea
|
||||||
39
README.md
Normal file
39
README.md
Normal 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
6
defaults/main.yml
Normal 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
2
files/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
1
handlers/main.yml
Normal file
1
handlers/main.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
12
meta/main.yml
Normal file
12
meta/main.yml
Normal 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
59
tasks/main.yml
Normal 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
|
||||||
1
templates/vector.config.j2
Normal file
1
templates/vector.config.j2
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{ vector_config | to_nice_yaml }}
|
||||||
7
templates/vector.service.j2
Normal file
7
templates/vector.service.j2
Normal 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
2
tests/inventory
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
localhost
|
||||||
|
|
||||||
5
tests/test.yml
Normal file
5
tests/test.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- vector-role
|
||||||
1
vars/main.yml
Normal file
1
vars/main.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
---
|
||||||
Reference in New Issue
Block a user