--- - name: "(Install: Linux) Check for build tools" when: nginx_install_source_build_tools block: - name: "(Install: Linux) Install Python - Centos/RHEL" package: name: - python3 - python3-pip - python3-devel state: present when: ansible_os_family == "RedHat" - name: "(Install: Linux) Set Python3 default - Centos/RHEL" alternatives: name: python path: /usr/bin/python3 link: /usr/bin/python when: ansible_os_family == "RedHat" and ansible_distribution_major_version == "8" - name: "(Install: Linux) Install Build Tools - Centos/RHEL" package: name: - "@Development tools" - gcc - glibc - glibc-common - gd - gd-devel - perl-core - wget - ca-certificates - zlib-devel state: present when: ansible_os_family == "RedHat" - name: "(Install: Linux) Install backports repo for Buster" apt_repository: repo: deb http://ftp.us.debian.org/debian buster-backports main when: ansible_distribution_release == "buster" - name: "(Install: Linux) Install Build Tools - Debian/Ubuntu" package: name: - python-minimal - build-essential - perl - tar - checkinstall - zlib1g-dev - libtemplate-perl state: present when: ansible_os_family == "Debian" - name: "(Install: Linux) Install Build Tools - Alpine" package: name: - python - alpine-sdk - build-base - git - wget - perl - linux-headers - tar - openrc state: present when: ansible_os_family == "Alpine" - name: "(Install: Linux) Enable openrc - Alpine" copy: content: "" dest: /run/openrc/softlevel force: no owner: root mode: 0644 when: ansible_os_family == "Alpine" - name: "(Install: Linux) Check for Source Installs" block: - name: "(Install: Linux) Check for PCRE Install" stat: path: /tmp/{{ pcre_version }} register: pcre_result - name: "(Install: Linux) Check for zlib Install" stat: path: /tmp/{{ zlib_version }} register: zlib_result - name: "(Install: Linux) Check for openssl Install" stat: path: /tmp/{{ openssl_version }} register: openssl_result - name: "(Install: Linux) Install PCRE Dependency: Package: Centos/RHEL" when: nginx_install_source_pcre and ansible_os_family == "RedHat" package: name: pcre-devel state: present - name: "(Install: Linux) Install PCRE Dependency: Package: Debian/Ubuntu" when: nginx_install_source_pcre and ansible_os_family == "Debian" package: name: libpcre3–dev state: present - name: "(Install: Linux) Install PCRE Dependency: Package: Alpine" when: nginx_install_source_pcre and ansible_os_family == "Alpine" package: name: pcre-dev state: present - name: "(Install: Linux) Install PCRE Dependency: Source" when: not pcre_result.stat.exists and not nginx_install_source_pcre block: - name: "(Install: Linux) Install PCRE Dependency: Download" get_url: url: "http://ftp.pcre.org/pub/pcre/{{ pcre_version }}.tar.gz" dest: "/tmp/{{ pcre_version }}.tar.gz" register: pcre_source - name: "(Install: Linux) Install PCRE Dependency: Unpack" unarchive: copy: no dest: /tmp/ src: "{{ pcre_source.dest }}" register: pcre_source_unpack - name: "(Install: Linux) Install PCRE Dependency: Configure" command: "./configure" args: chdir: "/tmp/{{ pcre_version }}" register: pcre_configure - name: "(Install: Linux) Install PCRE Dependency: Install" make: chdir: "/tmp/{{ pcre_version }}" - name: "(Install: Linux) Install PCRE Dependency: Install" make: chdir: "/tmp/{{ pcre_version }}" target: install - name: "(Install: Linux) Install zlib Dependency: Package: Centos/RHEL" when: nginx_install_source_zlib and ansible_os_family == "RedHat" package: name: zlib-devel state: present - name: "(Install: Linux) Install zlib Dependency: Package: Debian/Ubuntu" when: nginx_install_source_zlib and ansible_os_family == "Debian" package: name: zlib1g-dev state: present - name: "(Install: Linux) Install zlib Dependency: Package: Alpine" when: nginx_install_source_zlib and ansible_os_family == "Alpine" package: name: zlib-dev state: present - name: "(Install: Linux) Install zlib Dependency: Source" when: not zlib_result.stat.exists and not nginx_install_source_zlib block: - name: "(Install: Linux) Install zlib Dependency: Download" get_url: url: "http://zlib.net/{{ zlib_version }}.tar.gz" dest: "/tmp/{{ zlib_version }}.tar.gz" register: zlib_source - name: "(Install: Linux) Install zlib Dependency: Unpack" unarchive: copy: no dest: /tmp/ src: "{{ zlib_source.dest }}" register: zlib_source_unpack - name: "(Install: Linux) Install zlib Dependency: Configure" command: "./configure" args: chdir: "/tmp/{{ zlib_version }}" register: zlib_configure - name: "(Install: Linux) Install zlib Dependency: Install" make: chdir: "/tmp/{{ zlib_version }}" - name: "(Install: Linux) Install zlib Dependency: Install" make: chdir: "/tmp/{{ zlib_version }}" target: install - name: "(Install: Linux) Install OpenSSL Dependency: Package: Centos/RHEL" when: nginx_install_source_openssl and ansible_os_family == "RedHat" package: name: openssl-devel state: present - name: "(Install: Linux) Install OpenSSL Dependency: Package: Debian/Ubuntu" when: nginx_install_source_openssl and ansible_os_family == "Debian" package: name: libssl-dev state: present - name: "(Install: Linux) Install OpenSSL Dependency: Package: Alpine" when: nginx_install_source_openssl and ansible_os_family == "Alpine" package: name: openssl-dev state: present - name: "(Install: Linux) Install OpenSSL Dependency: Source" when: not openssl_result.stat.exists and not nginx_install_source_openssl block: - name: "(Install: Linux) Install OpenSSL Dependency: Download" get_url: url: "http://www.openssl.org/source/{{ openssl_version }}.tar.gz" dest: "/tmp/{{ openssl_version }}.tar.gz" register: openssl_source - name: "(Install: Linux) Install OpenSSL Dependency: Unpack" unarchive: copy: no dest: /tmp/ src: "{{ openssl_source.dest }}" register: openssl_source_unpack - name: "(Install: Linux) Install OpenSSL Dependency: Configure" command: "./config --prefix=/usr" args: chdir: "/tmp/{{ openssl_version }}" register: openssl_configure - name: "(Install: Linux) Install OpenSSL Dependency: Make" make: chdir: "/tmp/{{ openssl_version }}" - name: "(Install: Linux) Install OpenSSL Dependency: Install" make: chdir: "/tmp/{{ openssl_version }}" target: install - name: "(Install: Linux) Install NGINX: Get NGINX version" block: - name: "(Install: Linux) Install NGINX: Get NGINX mainline version" shell: args: cmd: curl --stderr - https://trac.nginx.org/nginx/browser | grep release | head -1 | sed -e 's:.*