501 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			501 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | ||
| # Переменные для роли 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"
 | ||
|   clearlinux: "swupd"
 | ||
| 
 | ||
| # Пакеты для установки 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
 | ||
|   clearlinux:
 | ||
|     - python3
 | ||
|     - python3-dev
 | ||
|     - python3-pip
 | ||
|     - python3-setuptools
 | ||
|     - python3-wheel
 | ||
|     - python3-venv
 | ||
|   "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"
 | ||
|   clearlinux: "swupd 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"
 | ||
|   clearlinux: "swupd bundle-add"
 | ||
| 
 | ||
| # Пути к исполняемым файлам 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"
 | ||
|   clearlinux: "/usr/bin/python3"
 | ||
| 
 | ||
| # Пути к 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"
 | ||
|   clearlinux: "/usr/bin/pip3"
 | ||
| 
 | ||
| # Системные зависимости для компиляции
 | ||
| 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
 | ||
|   clearlinux:
 | ||
|     - os-core-devel
 | ||
|     - python3-dev
 | ||
|     - zlib-devel
 | ||
|     - openssl-devel
 | ||
|     - libffi-devel
 | ||
|     - sqlite-devel
 | ||
|     - readline-devel
 | ||
|     - bzip2-devel
 | ||
|     - ncurses-devel
 | ||
|     - xz-devel
 | ||
|     - tk-devel
 | ||
|     - gdbm-devel
 | ||
|     - expat-devel
 | ||
|   "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
 |