### Set parameters based on PostgreSQL version supplied with particular distro {% import_yaml "postgres/repo.yaml" as repo %} {# Generate lookup dictionary map for OS and derivative distributions name: distro codename version: PostgreSQL release version codename: optional grain value if `name` does not match the one returned by `oscodename` grain #} {% macro debian_codename(name, version, codename=none) %} {# use upstream version if configured #} {% if repo.use_upstream_repo == true %} {% set version = repo.version %} {% set fromrepo = repo.fromrepo or name + '-pgdg' %} {% else %} {% set fromrepo = name %} {% endif %} {{ codename|default(name, true) }}: # PostgreSQL packages are mostly downloaded from `main` repo component fromrepo: {{ fromrepo }} pkg_repo: name: 'deb http://apt.postgresql.org/pub/repos/apt {{ name }}-pgdg main {{ version }}' pkg: postgresql-{{ version }} pkg_client: postgresql-client-{{ version }} conf_dir: /etc/postgresql/{{ version }}/main prepare_cluster: command: pg_createcluster {{ version }} main test: test -f /var/lib/postgresql/{{ version }}/main/PG_VERSION && test -f /etc/postgresql/{{ version }}/main/postgresql.conf user: root {% endmacro %} {% macro fedora_codename(name, version, codename=none) %} {# use upstream version if configured #} {% if repo.use_upstream_repo == true %} {% set fromrepo = repo.fromrepo or name + '-pgdg' %} {% set version = repo.version %} {% else %} {% set fromrepo = name %} {% endif %} {{ codename|default(name, true) }}: # PostgreSQL packages are mostly downloaded from `main` repo component fromrepo: {{ name }} pkg_repo: baseurl: 'https://download.postgresql.org/pub/repos/yum/{{ version }}/fedora/fedora-$releasever-$basearch' {% endmacro %} ## Debian GNU/Linux {{ debian_codename('wheezy', '9.1') }} {{ debian_codename('jessie', '9.4') }} {{ debian_codename('stretch', '9.6') }} # `oscodename` grain has long distro name # if `lsb-release` package not installed {{ debian_codename('wheezy', '9.1', 'Debian GNU/Linux 7 (wheezy)') }} {{ debian_codename('jessie', '9.4', 'Debian GNU/Linux 8 (jessie)') }} {{ debian_codename('stretch', '9.6', 'Debian GNU/Linux 9 (stretch)') }} ## Ubuntu {{ debian_codename('trusty', '9.3') }} {{ debian_codename('xenial', '9.5') }} {{ debian_codename('artful', '9.6') }} {{ debian_codename('bionic', '10') }} {{ debian_codename('cosmic', '10') }} ## Fedora # `oscodename` grain has long distro name {{ fedora_codename('Fedora-27', '9.6', 'Fedora 27 (Twenty Seven)') }} {{ fedora_codename('Fedora-26', '9.6', 'Fedora 26 (Twenty Six)') }} # vim: ft=sls