add homework 8.2

This commit is contained in:
2022-07-22 10:58:37 +07:00
parent 6a60a4994a
commit aa356db95c
8 changed files with 342 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
inventory/prod.yml
files/*

View File

@@ -0,0 +1,6 @@
---
clickhouse_version: "22.3.3.44"
clickhouse_packages:
- clickhouse-client
- clickhouse-server
- clickhouse-common-sta

View File

@@ -0,0 +1,2 @@
---
vector_version: 0.23.0

View File

@@ -0,0 +1,9 @@
---
clickhouse:
hosts:
clickhouse-01:
ansible_host: <IP_here>
vector:
hosts:
vector-01:
ansible_host: <IP_here>

View File

@@ -0,0 +1,26 @@
# Clickhouse and vector playbook
Данный playbook устанавливает `clickhouse` и `vector` на хосты, перечисленные в inventory.
Для каждой утилиты может быть указан свой хост для установки.
## Parameters
### Clickhouse
- `clickhouse_version` - версия `clickhouse`, которая будет установлена
- `clickhouse_packages` - конкретные приложения из стека `clickhouse`, которые будут установлены
### Vector
- `vector_version` - версия `vector`, которая будет установлена
## Tags
### Clickhouse
- `clickhouse` - установка и запуск только `clickhouse`
### Vector
- `vector` - установка только `vector`
- `vector_check_version` - запуск только `task` для проверки текущей установленной версии `vector`

View File

@@ -0,0 +1,69 @@
---
- name: Install Clickhouse
hosts: clickhouse
tasks:
- block:
- name: Get clickhouse distrib
ansible.builtin.get_url:
url: "https://packages.clickhouse.com/rpm/stable/{{ item }}-{{ clickhouse_version }}.noarch.rpm"
dest: "./{{ item }}-{{ clickhouse_version }}.rpm"
with_items: "{{ clickhouse_packages }}"
rescue:
- name: Get clickhouse distrib
ansible.builtin.get_url:
url: "https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-{{ clickhouse_version }}.x86_64.rpm"
dest: "./clickhouse-common-static-{{ clickhouse_version }}.rpm"
- name: Install clickhouse packages
become: true
ansible.builtin.yum:
name:
- clickhouse-common-static-{{ clickhouse_version }}.rpm
- clickhouse-client-{{ clickhouse_version }}.rpm
- clickhouse-server-{{ clickhouse_version }}.rpm
- name: Start clickhouse service
become: true
ansible.builtin.service:
name: clickhouse-server
state: restarted
- name: Create database
ansible.builtin.command: "clickhouse-client -q 'create database logs;'"
register: create_db
failed_when: create_db.rc != 0 and create_db.rc !=82
changed_when: create_db.rc == 0
tags:
- clickhouse
- name: Install vector
hosts: vector
tasks:
- name: Install archive manager
become: true
ansible.builtin.yum:
name:
- tar
- name: Get vector 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"
- name: Unpack vector distrib
ansible.builtin.unarchive:
src: "./vector-{{ vector_version }}-x86_64-unknown-linux-musl.tar.gz"
dest: "./"
remote_src: true
- name: Install vector
become: true
ansible.builtin.copy:
src: "vector-x86_64-unknown-linux-musl/bin/vector"
dest: "/usr/local/bin/"
remote_src: true
mode: 755
- name: Check vector version
ansible.builtin.shell:
cmd: vector --version
register: result
changed_when:
- 'vector_version not in result.stdout'
tags:
- vector_check_version
tags:
- vector