refactor: убран суффикс -raw из названий папок Ansible ролей
- Переименованы папки: - delete-raw → delete - delete-service-raw → delete-service - deploy-raw → deploy - deploy-service-raw → deploy-service - Обновлены пути в Makefile для всех команд: - make deploy - make delete - make deploy-service - make delete-service - make update-service - make update - Обновлены пути в документации - Добавлены новые команды make update-service и make update - Обновлен deploy/playbook.yml для использования шаблонов конфигурации Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
parent
7316b507ad
commit
330397f331
28
Makefile
28
Makefile
@ -2,7 +2,7 @@ SHELL := /bin/sh
|
||||
PROJECT_NAME := agent
|
||||
|
||||
.PHONY: build build-linux build-darwin build-windows run agent test lint docker-clean collectors collectors-darwin collectors-linux collectors-windows
|
||||
.PHONY: kafka-topic kafka-once kafka-consume
|
||||
.PHONY: kafka-topic kafka-once kafka-consume update-service update
|
||||
|
||||
build:
|
||||
# Платформозависимая сборка агента (как у collectors)
|
||||
@ -130,25 +130,25 @@ agent: collectors build
|
||||
deploy: build-linux collectors-linux
|
||||
# Деплой на удалённый хост через Ansible raw (без Python на целевой стороне)
|
||||
docker run --rm -e ANSIBLE_HOST_KEY_CHECKING=False -v $$PWD:/workspace -v $$HOME/.ssh:/root/.ssh:ro -w /workspace cytopia/ansible:latest-tools \
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy-raw/playbook.yml -e LOCAL_BIN_DIR=/workspace/bin/agent -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy/playbook.yml -e LOCAL_BIN_DIR=/workspace/bin/agent -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
|
||||
delete:
|
||||
# Очистка установленного агента (raw, без Python на целевой стороне)
|
||||
docker run --rm -e ANSIBLE_HOST_KEY_CHECKING=False -v $$PWD:/workspace -v $$HOME/.ssh:/root/.ssh:ro -w /workspace cytopia/ansible:latest-tools \
|
||||
ansible-playbook -i runner/inventory.ini runner/delete-raw/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
ansible-playbook -i runner/inventory.ini runner/delete/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
|
||||
deploy-service: build-linux collectors-linux
|
||||
# Деплой и запуск через systemd (raw, без Python на целевой стороне)
|
||||
docker run --rm -e ANSIBLE_HOST_KEY_CHECKING=False -v $$PWD:/workspace -v $$HOME/.ssh:/root/.ssh:ro -w /workspace cytopia/ansible:latest-tools \
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy-service-raw/playbook.yml -e LOCAL_BIN_DIR=/workspace/bin/agent -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy-service/playbook.yml -e LOCAL_BIN_DIR=/workspace/bin/agent -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
|
||||
delete-service:
|
||||
# Остановка и очистка systemd-варианта без Python на целевой стороне
|
||||
docker run --rm -e ANSIBLE_HOST_KEY_CHECKING=False -v $$PWD:/workspace -v $$HOME/.ssh:/root/.ssh:ro -w /workspace cytopia/ansible:latest-tools \
|
||||
ansible-playbook -i runner/inventory.ini runner/delete-service-raw/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
ansible-playbook -i runner/inventory.ini runner/delete-service/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
# Очистка установленного агента на удаленном хосте
|
||||
docker run --rm -e ANSIBLE_HOST_KEY_CHECKING=False -v $$PWD:/workspace -v $$HOME/.ssh:/root/.ssh:ro -w /workspace cytopia/ansible:latest-tools \
|
||||
ansible-playbook -i runner/inventory.ini runner/delete-raw/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
ansible-playbook -i runner/inventory.ini runner/delete/playbook.yml -e ansible_ssh_private_key_file=/root/.ssh/id_rsa -e ansible_become=true -e ansible_become_method=sudo
|
||||
|
||||
|
||||
|
||||
@ -191,3 +191,19 @@ kafka-once:
|
||||
kafka-consume:
|
||||
@docker run --rm edenhill/kcat:1.7.1 -b 10.99.0.90:9092 -t sensus.metrics -o -5 -C -q -J | cat
|
||||
|
||||
# Обновление сервиса (удаление + развертывание через systemd)
|
||||
update-service:
|
||||
# Обновление systemd-сервиса: остановка, удаление, развертывание
|
||||
@echo "🔄 Обновление systemd-сервиса..."
|
||||
@$(MAKE) delete-service
|
||||
@$(MAKE) deploy-service
|
||||
@echo "✅ Обновление systemd-сервиса завершено"
|
||||
|
||||
# Обновление агента (удаление + развертывание без systemd)
|
||||
update:
|
||||
# Обновление агента: удаление, развертывание
|
||||
@echo "🔄 Обновление агента..."
|
||||
@$(MAKE) delete
|
||||
@$(MAKE) deploy
|
||||
@echo "✅ Обновление агента завершено"
|
||||
|
||||
|
@ -220,7 +220,13 @@ collectors_config:
|
||||
./runner/test-config-generation.sh
|
||||
|
||||
# Развернуть на конкретной группе
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy-service-raw/playbook.yml --limit proxmox
|
||||
ansible-playbook -i runner/inventory.ini runner/deploy-service/playbook.yml --limit proxmox
|
||||
|
||||
# Обновление systemd-сервиса (рекомендуется)
|
||||
make update-service
|
||||
|
||||
# Обновление агента без systemd
|
||||
make update
|
||||
```
|
||||
|
||||
## Примеры конфигураций
|
||||
|
@ -53,4 +53,21 @@ docker compose logs -f agent
|
||||
docker compose exec agent sh -c 'ls -la /bin/agent/collectors'
|
||||
```
|
||||
|
||||
## Команды обновления
|
||||
|
||||
Для обновления агента на удаленных серверах:
|
||||
|
||||
```bash
|
||||
# Обновление systemd-сервиса (рекомендуется)
|
||||
make update-service
|
||||
|
||||
# Обновление агента без systemd
|
||||
make update
|
||||
```
|
||||
|
||||
Эти команды автоматически выполняют:
|
||||
1. Остановку и удаление старой версии
|
||||
2. Развертывание новой версии
|
||||
3. Запуск обновленного агента
|
||||
|
||||
|
||||
|
@ -22,12 +22,13 @@
|
||||
{{ local_bin_dir }}/agent {{ ansible_user }}@{{ ansible_host }}:{{ tmp_upload_dir }}/agent
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Copy config via scp (from controller) to tmp
|
||||
ansible.builtin.command: >
|
||||
scp -B -i {{ ansible_ssh_private_key_file | default('~/.ssh/id_rsa') }}
|
||||
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
|
||||
{{ local_bin_dir }}/config.yaml {{ ansible_user }}@{{ ansible_host }}:{{ tmp_upload_dir }}/config.yaml
|
||||
- name: Generate config.yaml from template
|
||||
ansible.builtin.template:
|
||||
src: ../templates/config.yaml.j2
|
||||
dest: "{{ tmp_upload_dir }}/config.yaml"
|
||||
mode: '0644'
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
|
||||
- name: Copy collectors directory via scp -r (from controller) to tmp
|
||||
ansible.builtin.command: >
|
Loading…
x
Reference in New Issue
Block a user