refactor: streamline Ansible playbook and logrotate configurations
- Removed environment variable lookups for logrotate settings in logrotate configuration files, replacing them with hardcoded values. - Updated the Ansible playbook to simplify project root, deploy user, and old server configurations by removing environment variable dependencies. - Added tasks to copy Zsh configuration files from an old server to the new server, ensuring proper permissions and cleanup of temporary files. - Enhanced logrotate configurations for bots and system logs to ensure consistent management of log files.
This commit is contained in:
22
env.template
22
env.template
@@ -27,25 +27,3 @@ SERVER_IP=your_server_ip_here
|
|||||||
|
|
||||||
# Status Page Configuration
|
# Status Page Configuration
|
||||||
STATUS_PAGE_PASSWORD=admin123
|
STATUS_PAGE_PASSWORD=admin123
|
||||||
|
|
||||||
# Ansible Configuration (for one-time server setup)
|
|
||||||
# Основные настройки проекта
|
|
||||||
PROJECT_ROOT=/home/prod
|
|
||||||
DEPLOY_USER=deploy
|
|
||||||
DEPLOY_UID=1001
|
|
||||||
DEPLOY_GID=1001
|
|
||||||
|
|
||||||
# Старый сервер для миграции
|
|
||||||
OLD_SERVER=root@77.223.98.129
|
|
||||||
|
|
||||||
# Настройки мониторинга для Ansible
|
|
||||||
MONITORING_USERNAME=admin
|
|
||||||
MONITORING_PASSWORD=admin123
|
|
||||||
|
|
||||||
# SSL настройки
|
|
||||||
USE_LETSENCRYPT=false
|
|
||||||
|
|
||||||
# Logrotate настройки
|
|
||||||
LOGROTATE_RETENTION_DAYS=30
|
|
||||||
LOGROTATE_COMPRESS=true
|
|
||||||
LOGROTATE_DELAYCOMPRESS=true
|
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
vars:
|
vars:
|
||||||
# Основная директория проекта
|
# Основная директория проекта
|
||||||
project_root: "{{ lookup('env', 'PROJECT_ROOT') | default('/home/prod') }}"
|
project_root: "/home/prod"
|
||||||
# Пользователь и группа
|
# Пользователь и группа
|
||||||
deploy_user: "{{ lookup('env', 'DEPLOY_USER') | default('deploy') }}"
|
deploy_user: "deploy"
|
||||||
uid: "{{ lookup('env', 'DEPLOY_UID') | default('1001') }}"
|
uid: 1001
|
||||||
gid: "{{ lookup('env', 'DEPLOY_GID') | default('1001') }}"
|
gid: 1001
|
||||||
# Старый сервер для копирования данных
|
# Старый сервер для копирования данных
|
||||||
old_server: "{{ lookup('env', 'OLD_SERVER') | default('root@77.223.98.129') }}"
|
old_server: "root@77.223.98.129"
|
||||||
# Опция: пересоздавать папку /home/prod (по умолчанию — нет)
|
# Опция: пересоздавать папку /home/prod (по умолчанию — нет)
|
||||||
recreate_project: false
|
recreate_project: false
|
||||||
# Grafana настройки
|
# Grafana настройки
|
||||||
@@ -332,6 +332,218 @@
|
|||||||
group: "{{ deploy_user }}"
|
group: "{{ deploy_user }}"
|
||||||
mode: '0600'
|
mode: '0600'
|
||||||
|
|
||||||
|
# ========================================
|
||||||
|
# КОПИРОВАНИЕ КОНФИГУРАЦИИ ZSH (ROOT)
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
- name: "[4/10] Создать директорию .zsh для пользователя deploy"
|
||||||
|
file:
|
||||||
|
path: "/home/{{ deploy_user }}/.zsh"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать .zshrc со старого сервера"
|
||||||
|
fetch:
|
||||||
|
src: "/home/prod/.zshrc"
|
||||||
|
dest: "/tmp/deploy_zshrc"
|
||||||
|
flat: yes
|
||||||
|
delegate_to: "{{ old_server }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Переместить .zshrc на новое место"
|
||||||
|
copy:
|
||||||
|
src: "/tmp/deploy_zshrc"
|
||||||
|
dest: "/home/{{ deploy_user }}/.zshrc"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать .zshenv со старого сервера"
|
||||||
|
fetch:
|
||||||
|
src: "/home/prod/.zshenv"
|
||||||
|
dest: "/tmp/deploy_zshenv"
|
||||||
|
flat: yes
|
||||||
|
delegate_to: "{{ old_server }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Переместить .zshenv на новое место"
|
||||||
|
copy:
|
||||||
|
src: "/tmp/deploy_zshenv"
|
||||||
|
dest: "/home/{{ deploy_user }}/.zshenv"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать .zprofile со старого сервера"
|
||||||
|
fetch:
|
||||||
|
src: "/home/prod/.zprofile"
|
||||||
|
dest: "/tmp/deploy_zprofile"
|
||||||
|
flat: yes
|
||||||
|
delegate_to: "{{ old_server }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Переместить .zprofile на новое место"
|
||||||
|
copy:
|
||||||
|
src: "/tmp/deploy_zprofile"
|
||||||
|
dest: "/home/{{ deploy_user }}/.zprofile"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать .zlogin со старого сервера"
|
||||||
|
fetch:
|
||||||
|
src: "/home/prod/.zlogin"
|
||||||
|
dest: "/tmp/deploy_zlogin"
|
||||||
|
flat: yes
|
||||||
|
delegate_to: "{{ old_server }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Переместить .zlogin на новое место"
|
||||||
|
copy:
|
||||||
|
src: "/tmp/deploy_zlogin"
|
||||||
|
dest: "/home/{{ deploy_user }}/.zlogin"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать .zlogout со старого сервера"
|
||||||
|
fetch:
|
||||||
|
src: "/home/prod/.zlogout"
|
||||||
|
dest: "/tmp/deploy_zlogout"
|
||||||
|
flat: yes
|
||||||
|
delegate_to: "{{ old_server }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Переместить .zlogout на новое место"
|
||||||
|
copy:
|
||||||
|
src: "/tmp/deploy_zlogout"
|
||||||
|
dest: "/home/{{ deploy_user }}/.zlogout"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Копировать директорию .zsh со старого сервера (если существует)"
|
||||||
|
command: >
|
||||||
|
rsync -avz --progress --stats --partial --verbose
|
||||||
|
root@77.223.98.129:/home/prod/.zsh/
|
||||||
|
/home/{{ deploy_user }}/.zsh/
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Установить правильные права на все zsh файлы"
|
||||||
|
file:
|
||||||
|
path: "/home/{{ deploy_user }}/.zsh"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0755'
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: "[4/10] Создать базовый .zshrc если файлы не были скопированы"
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
# Zsh configuration
|
||||||
|
# This file was created automatically by Ansible
|
||||||
|
# Original configuration files were not found on the old server
|
||||||
|
|
||||||
|
# Enable completion system
|
||||||
|
autoload -Uz compinit
|
||||||
|
compinit
|
||||||
|
|
||||||
|
# Enable colors
|
||||||
|
autoload -Uz colors
|
||||||
|
colors
|
||||||
|
|
||||||
|
# History configuration
|
||||||
|
HISTFILE=~/.zsh_history
|
||||||
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
setopt HIST_IGNORE_DUPS
|
||||||
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
|
setopt HIST_SAVE_NO_DUPS
|
||||||
|
setopt HIST_FIND_NO_DUPS
|
||||||
|
setopt SHARE_HISTORY
|
||||||
|
|
||||||
|
# Directory navigation
|
||||||
|
setopt AUTO_CD
|
||||||
|
setopt AUTO_PUSHD
|
||||||
|
setopt PUSHD_IGNORE_DUPS
|
||||||
|
setopt PUSHD_SILENT
|
||||||
|
|
||||||
|
# Completion
|
||||||
|
setopt AUTO_LIST
|
||||||
|
setopt AUTO_MENU
|
||||||
|
setopt COMPLETE_IN_WORD
|
||||||
|
setopt ALWAYS_TO_END
|
||||||
|
|
||||||
|
# Prompt
|
||||||
|
PROMPT='%F{blue}%n@%m%f %F{green}%~%f %# '
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias ll='ls -la'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias ...='cd ../..'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
|
||||||
|
# Docker aliases
|
||||||
|
alias d='docker'
|
||||||
|
alias dc='docker-compose'
|
||||||
|
alias dps='docker ps'
|
||||||
|
alias dpsa='docker ps -a'
|
||||||
|
alias di='docker images'
|
||||||
|
alias dex='docker exec -it'
|
||||||
|
|
||||||
|
# Git aliases
|
||||||
|
alias gs='git status'
|
||||||
|
alias ga='git add'
|
||||||
|
alias gc='git commit'
|
||||||
|
alias gp='git push'
|
||||||
|
alias gl='git log --oneline'
|
||||||
|
alias gd='git diff'
|
||||||
|
|
||||||
|
# Project specific
|
||||||
|
alias prod='cd /home/prod'
|
||||||
|
alias bots='cd /home/prod/bots'
|
||||||
|
alias logs='cd /home/prod/bots/*/logs'
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
export PATH="$PATH:/usr/local/bin"
|
||||||
|
export EDITOR=vim
|
||||||
|
|
||||||
|
# Load additional configurations if they exist
|
||||||
|
[ -f ~/.zshrc.local ] && source ~/.zshrc.local
|
||||||
|
dest: "/home/{{ deploy_user }}/.zshrc"
|
||||||
|
owner: "{{ deploy_user }}"
|
||||||
|
group: "{{ deploy_user }}"
|
||||||
|
mode: '0644'
|
||||||
|
when: ansible_check_mode == false
|
||||||
|
|
||||||
|
- name: "[4/10] Очистить временные файлы zsh конфигурации"
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- "/tmp/deploy_zshrc"
|
||||||
|
- "/tmp/deploy_zshenv"
|
||||||
|
- "/tmp/deploy_zprofile"
|
||||||
|
- "/tmp/deploy_zlogin"
|
||||||
|
- "/tmp/deploy_zlogout"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# ЭТАП 5: КЛОНИРОВАНИЕ РЕПОЗИТОРИЕВ (DEPLOY)
|
# ЭТАП 5: КЛОНИРОВАНИЕ РЕПОЗИТОРИЕВ (DEPLOY)
|
||||||
# ========================================
|
# ========================================
|
||||||
@@ -622,6 +834,7 @@
|
|||||||
- "{{ project_root }}/infra/uptime-kuma/backup"
|
- "{{ project_root }}/infra/uptime-kuma/backup"
|
||||||
- "{{ project_root }}/infra/alertmanager"
|
- "{{ project_root }}/infra/alertmanager"
|
||||||
- "{{ project_root }}/infra/grafana/dashboards"
|
- "{{ project_root }}/infra/grafana/dashboards"
|
||||||
|
- "{{ project_root }}/infra/logrotate"
|
||||||
- "{{ project_root }}/scripts"
|
- "{{ project_root }}/scripts"
|
||||||
- /etc/nginx/passwords
|
- /etc/nginx/passwords
|
||||||
|
|
||||||
@@ -643,6 +856,7 @@
|
|||||||
group: www-data
|
group: www-data
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
create: yes
|
create: yes
|
||||||
|
state: present
|
||||||
|
|
||||||
- name: "[8/10] Сгенерировать самоподписанный SSL сертификат (fallback)"
|
- name: "[8/10] Сгенерировать самоподписанный SSL сертификат (fallback)"
|
||||||
command: >
|
command: >
|
||||||
@@ -912,6 +1126,7 @@
|
|||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
backup: yes
|
backup: yes
|
||||||
|
remote_src: yes
|
||||||
|
|
||||||
- name: "[9.5/10] Настроить logrotate для системных сервисов"
|
- name: "[9.5/10] Настроить logrotate для системных сервисов"
|
||||||
template:
|
template:
|
||||||
@@ -921,6 +1136,7 @@
|
|||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
backup: yes
|
backup: yes
|
||||||
|
remote_src: yes
|
||||||
|
|
||||||
- name: "[9.5/10] Создать директории для логов ботов"
|
- name: "[9.5/10] Создать директории для логов ботов"
|
||||||
file:
|
file:
|
||||||
@@ -953,6 +1169,7 @@
|
|||||||
name: "Logrotate daily"
|
name: "Logrotate daily"
|
||||||
job: "0 2 * * * /usr/sbin/logrotate /etc/logrotate.conf"
|
job: "0 2 * * * /usr/sbin/logrotate /etc/logrotate.conf"
|
||||||
user: root
|
user: root
|
||||||
|
state: present
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
# ЭТАП 10: ЗАПУСК ПРИЛОЖЕНИЙ И ПРОВЕРКИ (DEPLOY + ROOT)
|
# ЭТАП 10: ЗАПУСК ПРИЛОЖЕНИЙ И ПРОВЕРКИ (DEPLOY + ROOT)
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
{{ project_root }}/bots/*/logs/*.log {
|
{{ project_root }}/bots/*/logs/*.log {
|
||||||
daily
|
daily
|
||||||
missingok
|
missingok
|
||||||
rotate {{ lookup('env', 'LOGROTATE_RETENTION_DAYS') | default('30') }}
|
rotate 30
|
||||||
{% if lookup('env', 'LOGROTATE_COMPRESS') | default('true') | lower == 'true' %}compress{% endif %}
|
compress
|
||||||
{% if lookup('env', 'LOGROTATE_DELAYCOMPRESS') | default('true') | lower == 'true' %}delaycompress{% endif %}
|
delaycompress
|
||||||
notifempty
|
notifempty
|
||||||
create 0644 {{ deploy_user }} {{ deploy_user }}
|
create 0644 {{ deploy_user }} {{ deploy_user }}
|
||||||
postrotate
|
postrotate
|
||||||
@@ -20,9 +20,9 @@
|
|||||||
{{ project_root }}/bots/*/bot_stderr.log {
|
{{ project_root }}/bots/*/bot_stderr.log {
|
||||||
daily
|
daily
|
||||||
missingok
|
missingok
|
||||||
rotate {{ lookup('env', 'LOGROTATE_RETENTION_DAYS') | default('30') }}
|
rotate 30
|
||||||
{% if lookup('env', 'LOGROTATE_COMPRESS') | default('true') | lower == 'true' %}compress{% endif %}
|
compress
|
||||||
{% if lookup('env', 'LOGROTATE_DELAYCOMPRESS') | default('true') | lower == 'true' %}delaycompress{% endif %}
|
delaycompress
|
||||||
notifempty
|
notifempty
|
||||||
create 0644 {{ deploy_user }} {{ deploy_user }}
|
create 0644 {{ deploy_user }} {{ deploy_user }}
|
||||||
postrotate
|
postrotate
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
/var/log/nginx/*.log {
|
/var/log/nginx/*.log {
|
||||||
daily
|
daily
|
||||||
missingok
|
missingok
|
||||||
rotate {{ lookup('env', 'LOGROTATE_RETENTION_DAYS') | default('30') }}
|
rotate 30
|
||||||
{% if lookup('env', 'LOGROTATE_COMPRESS') | default('true') | lower == 'true' %}compress{% endif %}
|
compress
|
||||||
{% if lookup('env', 'LOGROTATE_DELAYCOMPRESS') | default('true') | lower == 'true' %}delaycompress{% endif %}
|
delaycompress
|
||||||
notifempty
|
notifempty
|
||||||
create 0644 www-data adm
|
create 0644 www-data adm
|
||||||
sharedscripts
|
sharedscripts
|
||||||
|
|||||||
Reference in New Issue
Block a user