2016-06-23 7 views
0

Я хочу действительно базовую установку postgres, а postgres-formula/postgres просто слишком сумасшедший. Я просто хочу установить postgres версии 9.5.1 на одного миньона.Установите конкретную версию postgres using saltstack

Вот что я пробовал, что я знаю, не работает.

/srv/salt/top.sls

base: 
    '*': 
    - postgresql 

/srv/salt/postgresql/init.sls

postgresql: 
    pkg.installed: 
     - version: 9.5.1 

Согласно документации here, это правильно формат. Я подумал, может быть, мне нужно иметь 9.5.3 в другом формате, но я не могу найти, где это понять.


Update 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 
+0

Какую ОС вы используете? если centos распечатывает результат следующей команды: 'yum --showduplicates list postgresql | expand' и если ubuntu: 'apt-cache policy postgresql', потому что вам нужно сначала убедиться, что есть версия с тем же номером, доступным в вашей системе, поэтому соль может установить его –

+0

Спасибо, я обновлю этот вывод. Поскольку он выводит только 9.3, как мне получить соль для установки 9.5? – trueCamelType

ответ

0

Это должно быть сделано с помощью соли, используя 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 

Я получил этот ответ через комбинации saltstack ИРЦ и salt docs.

+0

Проблема с CentOS 7 (и, возможно, более ранние версии). См. Мой ответ для вашего начального вопроса, когда миньон работает в CentOS 7. Я понимаю, что вы обновили вопрос, чтобы обратиться к ubuntu, но это казалось подходящим местом для ответа на исходный вопрос. – dpneumo

1

Для того чтобы установить Postgresql 9.5 с помощью saltstack.

Сначала обязательно сделайте так, как this article говорит в вашем ubuntu minion, чтобы сделать postgresql 9.5 доступным для вашей системы для установки. или даже вы можете написать state, который автоматизирует все этапы. добавление хранилища и установка postgresql 9.5

+0

+1 за правильность логики и помощь. Спасибо, что показали, как узнать, какие версии доступны через apt-cache. Однако способ сделать это с помощью соли указан в ответе, который я нашел на соляной irc. – trueCamelType

0

Ответ, предлагаемый @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, чтобы предотвратить попытку использования соли при внешнем репо.

Это процедурный и не элегантный, но я обнаружил, что futzing с pkgrepo.managed был больше проблем, чем стоило. Это было бы приятно увидеть решение для установки postgresql на Centos 7 с помощью «pkgrepo.managed».

Смежные вопросы