我想要一个非常基本的postgres安装,postgres-formula/postgres太疯狂了。我只想在一个小兵上安装postgres版本9.5.1。
这是我尝试过的,我知道不起作用。
/srv/salt/top.sls
base:
'*':
- postgresql
/srv/salt/postgresql/init.sls
postgresql:
pkg.installed:
- version: 9.5.1
根据文档here,这是正确的格式。我想也许我应该以不同的格式使用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
答案 0 :(得分:1)
为了使用saltstack安装Postgresql 9.5。
首先确保在您的ubuntu minion中按this article说明,以使postgresql 9.5
可供您的系统安装。甚至你可以编写一个state
来自动执行整个步骤。添加存储库并安装postgresql 9.5
答案 1 :(得分:1)
@trueCamelType提供的答案似乎不适用于基于CentOS 7的minion。以下工作正常:
<强> 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
进行预测比使用它更麻烦。据说很想看到使用'pkgrepo.managed`在Centos 7上安装postgresql的解决方案。
答案 2 :(得分:1)
如果您想要真正基本安装Postgres,只需执行以下操作即可从https://www.postgresql.org/安装9.5。像这样的东西可以开箱即用。
$ 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
如果你想首先相应的行为设置支柱(即在/srv/pillar/postgres.sls中)。
postgres:
use_upstream_repo: True
version: '9.6'
答案 3 :(得分:0)
这应该通过使用pkgrepo.managed的salt来完成。解决方案如下。
<强> 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 irc和salt docs的组合得到了这个答案。