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:
@@ -5,13 +5,13 @@
|
||||
|
||||
vars:
|
||||
# Основная директория проекта
|
||||
project_root: "{{ lookup('env', 'PROJECT_ROOT') | default('/home/prod') }}"
|
||||
project_root: "/home/prod"
|
||||
# Пользователь и группа
|
||||
deploy_user: "{{ lookup('env', 'DEPLOY_USER') | default('deploy') }}"
|
||||
uid: "{{ lookup('env', 'DEPLOY_UID') | default('1001') }}"
|
||||
gid: "{{ lookup('env', 'DEPLOY_GID') | default('1001') }}"
|
||||
deploy_user: "deploy"
|
||||
uid: 1001
|
||||
gid: 1001
|
||||
# Старый сервер для копирования данных
|
||||
old_server: "{{ lookup('env', 'OLD_SERVER') | default('root@77.223.98.129') }}"
|
||||
old_server: "root@77.223.98.129"
|
||||
# Опция: пересоздавать папку /home/prod (по умолчанию — нет)
|
||||
recreate_project: false
|
||||
# Grafana настройки
|
||||
@@ -332,6 +332,218 @@
|
||||
group: "{{ deploy_user }}"
|
||||
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)
|
||||
# ========================================
|
||||
@@ -622,6 +834,7 @@
|
||||
- "{{ project_root }}/infra/uptime-kuma/backup"
|
||||
- "{{ project_root }}/infra/alertmanager"
|
||||
- "{{ project_root }}/infra/grafana/dashboards"
|
||||
- "{{ project_root }}/infra/logrotate"
|
||||
- "{{ project_root }}/scripts"
|
||||
- /etc/nginx/passwords
|
||||
|
||||
@@ -643,6 +856,7 @@
|
||||
group: www-data
|
||||
mode: '0640'
|
||||
create: yes
|
||||
state: present
|
||||
|
||||
- name: "[8/10] Сгенерировать самоподписанный SSL сертификат (fallback)"
|
||||
command: >
|
||||
@@ -912,6 +1126,7 @@
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: yes
|
||||
remote_src: yes
|
||||
|
||||
- name: "[9.5/10] Настроить logrotate для системных сервисов"
|
||||
template:
|
||||
@@ -921,6 +1136,7 @@
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: yes
|
||||
remote_src: yes
|
||||
|
||||
- name: "[9.5/10] Создать директории для логов ботов"
|
||||
file:
|
||||
@@ -953,6 +1169,7 @@
|
||||
name: "Logrotate daily"
|
||||
job: "0 2 * * * /usr/sbin/logrotate /etc/logrotate.conf"
|
||||
user: root
|
||||
state: present
|
||||
|
||||
# ========================================
|
||||
# ЭТАП 10: ЗАПУСК ПРИЛОЖЕНИЙ И ПРОВЕРКИ (DEPLOY + ROOT)
|
||||
|
||||
Reference in New Issue
Block a user