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