Установите конкретную версию postgres, используя salttack
Я хочу действительно простую установку postgres, а postgres-формула / postgres слишком сумасшедшая. Я просто хочу установить Postgres версии 9.5.1 на одном миньоне.
Вот кое-что, что я попробовал, и я знаю, что это не работает.
/srv/salt/top.sls
base:
'*':
- postgresql
/srv/salt/postgresql/init.sls
postgresql:
pkg.installed:
- version: 9.5.1
Согласно документации здесь, это правильный формат. Я подумал, что, возможно, мне нужен 9.5.3 в другом формате, но я не могу найти, где это выяснить.
Обновление 1
Я использую Ubuntu 14.04 на миньона и мастера.
Выход из apt-cache policy postgresql
является
postgresql:
Installed: (none)
Candidate: 9.3+154ubuntu1
Version table:
9.3+154ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
9.3+154 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
4 ответа
Это должно быть сделано с помощью соли с помощью pkgrepo.managed. Решение ниже.
init.sls
postgresql:
pkgrepo.managed:
- name: deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
- dist: trusty-pgdg
- file: /etc/apt/sources.list.d/psql.list
- key_url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
- require_in:
- pkg: postgresql
pkg.installed:
- name: postgresql-9.5
- refresh: True
service:
- running
Я получил этот ответ через комбинацию солтек ирк и солевых документов.
Ответ, предлагаемый @trueCamelType, похоже, не работает с миньоном на базе CentOS 7. Следующее работает:
init.sls
install-postgresql96-repository:
cmd.run:
- name: rpm -U --force https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
install-postgresql96-server:
cmd.run:
- name: yum --disablerepo=postgresql -y install postgresql96-server
postgresql-first-run-init:
cmd.run:
- name: /usr/pgsql-9.6/bin/postgresql96-setup initdb
- unless: stat /var/lib/pgsql/9.6/data/postgresql.conf
- runas: root
start-postgresql96-server:
cmd.run:
- name: systemctl start postgresql-9.6
enable-postgresql96-autostart:
cmd.run:
- name: systemctl enable postgresql-9.6
rpm
команда запускается с --force
так что это может быть повторено без выдачи "ошибки", указывающей, что пакет уже установлен. Делает вывод соли красивее.
yum
команда запускается с --disablerepo=postgresql
чтобы соль не пыталась использовать внешний репо.
Это процедурный и не элегантный, но я обнаружил, что pkgrepo.managed
было больше проблем, чем оно того стоило. Тем не менее, хотелось бы увидеть решение для установки postgresql на Centos 7 с помощью pkgrepo.managed.
Если вы хотите действительно простую установку Postgres, просто выполните следующее, чтобы установить 9.5 с https://www.postgresql.org/. Нечто подобное работает из коробки.
$ sudo -s
$ cd /srv/salt/
$ git clone https://github.com/saltstack-formulas/postgres-formula.git postgres
$ ln -s /srv/salt/postgres/postgres /srv/salt/postgres
$ vi /srv/salt/top.sls && cat /srv/salt/top.sls
#format: YAML
base:
'*':
- postgres
$ salt-call state.highstate --local
Если вы хотите изменить поведение, сначала установите pillar (т.е. в /srv/pillar/postgres.sls).
postgres:
use_upstream_repo: True
version: '9.6'
Для того, чтобы установить Postgresql 9.5, используйте солончак.
Сначала убедитесь, что вы делаете так, как написано в этой статье, в вашем миньоне Ubuntu, чтобы сделать postgresql 9.5
доступны для вашей системы для установки. или даже вы можете написать state
это автоматизирует целые шаги. добавление репозитория и установка postgresql 9.5