2016-12-13 22:37:53 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: ft=jinja
|
|
|
|
{# Template for installing packages #}
|
2014-05-22 20:38:27 +02:00
|
|
|
{% from "php/ng/map.jinja" import php with context %}
|
|
|
|
{% from "php/ng/macro.jinja" import sls_block %}
|
|
|
|
|
2014-05-21 04:07:16 +02:00
|
|
|
|
2014-06-06 19:20:03 +02:00
|
|
|
{% set pkginfo = php.lookup.pkgs.get(state) %}
|
2014-06-06 19:14:44 +02:00
|
|
|
|
2014-06-06 20:53:36 +02:00
|
|
|
{% set pkgs = [] %}
|
|
|
|
{% set specials = [] %}
|
2014-06-06 19:14:44 +02:00
|
|
|
|
2019-04-05 15:08:30 +02:00
|
|
|
{% set pillar_php_ng_version = salt['pillar.get']('php:ng:version', '7.0') %}
|
2014-06-06 20:53:36 +02:00
|
|
|
{% if pkginfo is iterable and pkginfo is not string %}
|
|
|
|
{% for pkg in pkginfo %}
|
|
|
|
{% if pkg is mapping %}
|
|
|
|
{% do specials.append(pkg) %}
|
|
|
|
{% else %}
|
|
|
|
{% do pkgs.append(pkg) %}
|
2019-04-05 15:08:30 +02:00
|
|
|
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
|
|
|
|
{% set first_version = pillar_php_ng_version[0]|string %}
|
|
|
|
{% for other_version in pillar_php_ng_version %}
|
2019-03-26 18:31:43 +01:00
|
|
|
{% set other_version_str = other_version|string %}
|
|
|
|
{% do pkgs.append(pkg.replace(first_version, other_version_str)) %}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2014-06-06 20:53:36 +02:00
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% else %}
|
|
|
|
{% do pkgs.append(pkginfo) %}
|
2019-04-05 15:08:30 +02:00
|
|
|
{% if pillar_php_ng_version is iterable and pillar_php_ng_version is not string %}
|
|
|
|
{% set first_version = pillar_php_ng_version[0]|string %}
|
|
|
|
{% for other_version in pillar_php_ng_version %}
|
2019-03-26 18:31:43 +01:00
|
|
|
{% set other_version_str = other_version|string %}
|
|
|
|
{% do pkgs.append(pkginfo.replace(first_version, other_version_str)) %}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2014-06-06 20:53:36 +02:00
|
|
|
{% endif %}
|
|
|
|
|
2016-12-13 22:37:53 +01:00
|
|
|
{% if grains['os_family'] == "Debian" and (state == 'cli' or state == 'fpm' or state == 'php') %}
|
|
|
|
{% set use_external_repo = salt['pillar.get']('php:use_external_repo', False) %}
|
2015-04-25 16:18:04 +02:00
|
|
|
|
2016-12-13 22:37:53 +01:00
|
|
|
{% if use_external_repo %}
|
2017-09-01 23:59:43 +02:00
|
|
|
{% if grains['os'] == 'Ubuntu' %}
|
|
|
|
{% set external_repo_name = salt['pillar.get']('php:external_repo_name', 'ondrej/php') %}
|
2015-04-25 16:18:04 +02:00
|
|
|
php_ppa_{{ state }}:
|
2016-12-13 22:37:53 +01:00
|
|
|
pkgrepo.managed:
|
|
|
|
- ppa: {{ external_repo_name }}
|
2019-03-07 14:27:02 +01:00
|
|
|
- __env__:
|
2016-12-13 22:37:53 +01:00
|
|
|
- LC_ALL: C.UTF-8
|
|
|
|
- onlyif:
|
|
|
|
- test ! -e /etc/apt/sources.list.d/ondrej-ubuntu-php-{{ grains['oscodename'] }}.list {# Trusty and Xenial use different naming schemas #}
|
|
|
|
- test ! -e /etc/apt/sources.list.d/ondrej-php-{{ grains['oscodename'] }}.list {# Trusty and Xenial use different naming schemas #}
|
|
|
|
- require_in:
|
|
|
|
- pkg: php_install_{{ state }}
|
|
|
|
pkg.latest:
|
|
|
|
- name: {{ state }}
|
|
|
|
- pkgs: {{ pkgs|json() }}
|
|
|
|
- refresh: True
|
|
|
|
- onchanges:
|
|
|
|
- pkgrepo: php_ppa_{{ state }}
|
|
|
|
|
2017-09-01 23:59:43 +02:00
|
|
|
{% else %}
|
|
|
|
{% set external_repo_name = salt['pillar.get']('php:external_repo_name', 'packages.sury.org/php' ) %}
|
|
|
|
php_repo_{{ state }}:
|
|
|
|
pkg.installed:
|
|
|
|
- name: apt-transport-https
|
|
|
|
|
|
|
|
php_ppa_{{ state }}:
|
|
|
|
pkgrepo.managed:
|
|
|
|
- humanname: {{ external_repo_name }}
|
|
|
|
- name: deb https://packages.sury.org/php/ {{ grains['oscodename'] }} main
|
|
|
|
- file: /etc/apt/sources.list.d/ondrej-php.list
|
|
|
|
- key_url: https://packages.sury.org/php/apt.gpg
|
2019-03-07 14:27:02 +01:00
|
|
|
- __env__:
|
2017-09-01 23:59:43 +02:00
|
|
|
- LC_ALL: C.UTF-8
|
|
|
|
- onlyif:
|
2019-03-26 18:31:43 +01:00
|
|
|
- test ! -e /etc/apt/sources.list.d/ondrej-php.list
|
2017-05-05 21:05:00 +02:00
|
|
|
- require_in:
|
|
|
|
- pkg: php_install_{{ state }}
|
2017-09-01 23:59:43 +02:00
|
|
|
pkg.latest:
|
|
|
|
- name: {{ state }}
|
|
|
|
- pkgs: {{ pkgs|json() }}
|
|
|
|
- refresh: True
|
|
|
|
- onchanges:
|
|
|
|
- pkgrepo: php_ppa_{{ state }}
|
2017-05-05 21:05:00 +02:00
|
|
|
|
2017-09-01 23:59:43 +02:00
|
|
|
{% endif %}
|
2016-12-13 22:37:53 +01:00
|
|
|
{% endif %}
|
2018-10-10 16:42:28 +02:00
|
|
|
{% elif grains['os_family'] == "RedHat" and (state == 'cli' or state == 'fpm' or state == 'php') %}
|
|
|
|
{% set use_scl_repo = salt['pillar.get']('php:use_scl_repo', False) %}
|
|
|
|
{% set scl_php_version = salt['pillar.get']('php:scl_php_version', 71) %}
|
2019-03-25 08:15:05 +01:00
|
|
|
{% set enable_php_repo = salt['pillar.get']('php:ng:lookup:enable_php_repo', False) %}
|
2018-10-10 16:42:28 +02:00
|
|
|
{% if use_scl_repo and grains['os'] == 'CentOS' %}
|
|
|
|
php_centos_scl_enable_{{ state }}:
|
|
|
|
pkg.installed:
|
|
|
|
- name: centos-release-scl
|
|
|
|
{% elif use_scl_repo and grains['os'] == 'RedHat' %}
|
|
|
|
php_redhat_scl_enable_{{ state }}:
|
|
|
|
cmd.run:
|
|
|
|
- name: yum-config-manager --enable rhel-server-rhscl-{{ grains['osmajorrelease'] }}-rpms
|
|
|
|
{% endif %}
|
2015-04-25 16:18:04 +02:00
|
|
|
{% endif %}
|
|
|
|
|
2014-06-06 20:53:36 +02:00
|
|
|
php_install_{{ state }}:
|
2014-05-20 21:59:25 +02:00
|
|
|
pkg.installed:
|
2014-06-06 19:14:44 +02:00
|
|
|
- name: {{ state }}
|
2014-06-06 20:53:36 +02:00
|
|
|
- pkgs: {{ pkgs|json() }}
|
2019-03-27 05:51:38 +01:00
|
|
|
{% if enable_php_repo is defined and enable_php_repo %}
|
2019-03-25 08:15:05 +01:00
|
|
|
- enablerepo: {{ enable_php_repo }}
|
2015-04-25 16:18:04 +02:00
|
|
|
{% endif %}
|
2014-06-06 19:14:44 +02:00
|
|
|
|
2014-06-06 20:53:36 +02:00
|
|
|
{% for pkg in specials %}
|
2014-06-06 19:14:44 +02:00
|
|
|
|
2018-10-09 14:43:06 +02:00
|
|
|
php_install_{{ state }}_{{ pkg.get('name') | replace("/", "-") }}:
|
2014-06-06 19:14:44 +02:00
|
|
|
pkg.installed:
|
2014-06-06 20:53:36 +02:00
|
|
|
{{ sls_block(pkg) }}
|
2014-06-06 19:14:44 +02:00
|
|
|
|
2014-06-06 20:53:36 +02:00
|
|
|
{% endfor %}
|