feat: Добавлена роль Python 3.12 и восстановлена роль Docker

- Создана универсальная роль Python для установки Python 3.12 на всех ОС
- Восстановлена роль Docker из git истории
- Исправлены все ошибки линтера
- Обновлен deploy.yml с правильным порядком ролей: devops → python → docker
- Удалена устаревшая роль ping
- Добавлена поддержка альтернативных репозиториев для старых ОС

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-10-27 22:08:37 +03:00
parent 1b6db7445d
commit 0b4efd9ca1
19 changed files with 1511 additions and 393 deletions

474
roles/python/vars/main.yml Normal file
View File

@@ -0,0 +1,474 @@
---
# Переменные для роли python
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
# Определение семейства ОС и версии
python_os_family: "{{ ansible_os_family | lower }}"
python_distribution: "{{ ansible_distribution | lower }}"
python_distribution_version: "{{ ansible_distribution_version }}"
# Переменные для разных дистрибутивов
python_package_managers:
debian: "apt"
ubuntu: "apt"
redhat: "dnf"
centos: "dnf"
rhel: "dnf"
rocky: "dnf"
alma: "dnf"
fedora: "dnf"
suse: "zypper"
opensuse: "zypper"
alt: "apt-rpm"
"alt linux": "apt-rpm"
astra: "apt"
"astra linux": "apt"
# Пакеты для установки Python 3.12 в разных дистрибутивах
python_packages_by_os:
debian:
- python3.12
- python3.12-dev
- python3.12-venv
- python3.12-distutils
- python3.12-lib2to3
- python3.12-gdbm
- python3.12-tk
# Альтернативные пакеты для старых Debian
- python3.11
- python3.11-dev
- python3.11-venv
ubuntu:
- python3.12
- python3.12-dev
- python3.12-venv
- python3.12-distutils
- python3.12-lib2to3
- python3.12-gdbm
- python3.12-tk
# Альтернативные пакеты для старых Ubuntu
- python3.11
- python3.11-dev
- python3.11-venv
# Пакеты без версии для совместимости
- python3-distutils
- python3-lib2to3
redhat:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
centos:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
# Альтернативные пакеты для старых CentOS
- python312
- python312-pip
- python312-devel
# SCL пакеты для очень старых CentOS
- rh-python312
- rh-python312-python-pip
- rh-python312-python-devel
rhel:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
# Альтернативные пакеты для старых RHEL
- python312
- python312-pip
- python312-devel
# SCL пакеты для очень старых RHEL
- rh-python312
- rh-python312-python-pip
- rh-python312-python-devel
rocky:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
alma:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
fedora:
- python3.12
- python3.12-pip
- python3.12-devel
- python3.12-tkinter
suse:
- python312
- python312-devel
- python312-pip
opensuse:
- python312
- python312-devel
- python312-pip
alt:
- python3.12
- python3.12-devel
- python3.12-pip
astra:
- python3.12
- python3.12-dev
- python3.12-venv
- python3.12-distutils
- python3.12-lib2to3
- python3.12-gdbm
- python3.12-tk
"alt linux":
- python3.12
- python3.12-devel
- python3.12-pip
"astra linux":
- python3.12
- python3.12-dev
- python3.12-venv
- python3.12-distutils
- python3.12-lib2to3
- python3.12-gdbm
- python3.12-tk
# Репозитории для разных дистрибутивов
python_repositories:
debian:
- name: "deadsnakes"
url: "ppa:deadsnakes/ppa"
state: "present"
- name: "deadsnakes-debian"
url: "deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal main"
state: "present"
ubuntu:
- name: "deadsnakes"
url: "ppa:deadsnakes/ppa"
state: "present"
redhat:
- name: "epel"
state: "present"
- name: "ius"
url: "https://repo.ius.io/redhat/7/x86_64/"
state: "present"
centos:
- name: "epel"
state: "present"
- name: "ius"
url: "https://repo.ius.io/centos/7/x86_64/"
state: "present"
- name: "scl"
url: "https://www.softwarecollections.org/en/scls/rhscl/rh-python312/"
state: "present"
rhel:
- name: "epel"
state: "present"
- name: "ius"
url: "https://repo.ius.io/redhat/7/x86_64/"
state: "present"
- name: "scl"
url: "https://www.softwarecollections.org/en/scls/rhscl/rh-python312/"
state: "present"
rocky:
- name: "epel"
state: "present"
alma:
- name: "epel"
state: "present"
fedora:
- name: "epel"
state: "present"
# Команды для обновления пакетов
python_update_commands:
debian: "apt update"
ubuntu: "apt update"
redhat: "dnf update -y"
centos: "dnf update -y"
rhel: "dnf update -y"
rocky: "dnf update -y"
alma: "dnf update -y"
fedora: "dnf update -y"
suse: "zypper refresh"
opensuse: "zypper refresh"
alt: "apt-get update"
"alt linux": "apt-get update"
astra: "apt update"
"astra linux": "apt update"
# Команды для установки пакетов
python_install_commands:
debian: "apt install -y"
ubuntu: "apt install -y"
redhat: "dnf install -y"
centos: "dnf install -y"
rhel: "dnf install -y"
rocky: "dnf install -y"
alma: "dnf install -y"
fedora: "dnf install -y"
suse: "zypper install -y"
opensuse: "zypper install -y"
alt: "apt-get install -y"
"alt linux": "apt-get install -y"
astra: "apt install -y"
"astra linux": "apt install -y"
# Пути к исполняемым файлам Python
python_executable_paths:
debian: "/usr/bin/python3.12"
ubuntu: "/usr/bin/python3.12"
redhat: "/usr/bin/python3.12"
centos: "/usr/bin/python3.12"
rhel: "/usr/bin/python3.12"
rocky: "/usr/bin/python3.12"
alma: "/usr/bin/python3.12"
fedora: "/usr/bin/python3.12"
suse: "/usr/bin/python3.12"
opensuse: "/usr/bin/python3.12"
alt: "/usr/bin/python3.12"
"alt linux": "/usr/bin/python3.12"
astra: "/usr/bin/python3.12"
"astra linux": "/usr/bin/python3.12"
# Пути к pip
python_pip_paths:
debian: "/usr/bin/pip3.12"
ubuntu: "/usr/bin/pip3.12"
redhat: "/usr/bin/pip3.12"
centos: "/usr/bin/pip3.12"
rhel: "/usr/bin/pip3.12"
rocky: "/usr/bin/pip3.12"
alma: "/usr/bin/pip3.12"
fedora: "/usr/bin/pip3.12"
suse: "/usr/bin/pip3.12"
opensuse: "/usr/bin/pip3.12"
alt: "/usr/bin/pip3.12"
"alt linux": "/usr/bin/pip3.12"
astra: "/usr/bin/pip3.12"
"astra linux": "/usr/bin/pip3.12"
# Системные зависимости для компиляции
python_build_deps_by_os:
debian:
- build-essential
- zlib1g-dev
- libssl-dev
- libffi-dev
- libsqlite3-dev
- libreadline-dev
- libbz2-dev
- libncurses5-dev
- libncursesw5-dev
- xz-utils
- tk-dev
- libgdbm-dev
- libdb-dev
- libpcap-dev
- liblzma-dev
ubuntu:
- build-essential
- zlib1g-dev
- libssl-dev
- libffi-dev
- libsqlite3-dev
- libreadline-dev
- libbz2-dev
- libncurses5-dev
- libncursesw5-dev
- xz-utils
- tk-dev
- libgdbm-dev
- libdb-dev
- libpcap-dev
- liblzma-dev
redhat:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- db4-devel
- libpcap-devel
- expat-devel
- libnsl2-devel
centos:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
# Альтернативные пакеты для CentOS
- gdbm
- db4
rhel:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
rocky:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
alma:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
fedora:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
suse:
- gcc
- gcc-c++
- make
- zlib-devel
- libopenssl-devel
- libffi-devel
- sqlite3-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- libpcap-devel
- expat-devel
- libnsl2-devel
opensuse:
- gcc
- gcc-c++
- make
- zlib-devel
- libopenssl-devel
- libffi-devel
- sqlite3-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
alt:
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
astra:
- build-essential
- zlib1g-dev
- libssl-dev
- libffi-dev
- libsqlite3-dev
- libreadline-dev
- libbz2-dev
- libncurses5-dev
- libncursesw5-dev
- xz-utils
- tk-dev
- libgdbm-dev
- libdb-dev
- libpcap-dev
- liblzma-dev
"alt linux":
- gcc
- gcc-c++
- make
- zlib-devel
- openssl-devel
- libffi-devel
- sqlite-devel
- readline-devel
- bzip2-devel
- ncurses-devel
- xz-devel
- tk-devel
- gdbm-devel
- expat-devel
"astra linux":
- build-essential
- zlib1g-dev
- libssl-dev
- libffi-dev
- libsqlite3-dev
- libreadline-dev
- libbz2-dev
- libncurses5-dev
- libncursesw5-dev
- xz-utils
- tk-dev
- libgdbm-dev
- libdb-dev
- libpcap-dev
- liblzma-devel