如何解决如何以Saltstacked状态安装PostgreSQL 13?
标题基本上就是问题。我正在使用CentOS 8,并想开始使用Saltstack状态来安装诸如Postgresql-13,AdoptOpenJDK,...之类的东西。
install-postgresql13-repository:
cmd.run:
- name: rpm -U --force https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
install-postgresql13-server:
cmd.run:
- name: dnf install postgresql13-server -y
postgresql-first-run-init:
cmd.run:
- name: /usr/pgsql-13/bin/postgresql-13-setup initdb
- unless: stat /var/lib/pgsql/13/data/postgresql.conf
- runas: root
start-postgresql13-server:
cmd.run:
- name: systemctl start postgresql-13
enable-postgresql13-autostart:
cmd.run:
- name: systemctl enable postgresql-13
但是据我所知,cmd.run不是最好的选择。
解决方法
使用诸如Saltstack之类的工具的主要好处是它通过“状态”提供的幂等性。
在不使用完整解决方案的情况下,建议您通过Salt states。
例如,下面的代码将在第一次运行良好,但在第二次运行时可能会出错。即使有效,也没有必要。
cmd.run:
- name: rpm -U --force https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
如果您使用如下所示的Salt状态模块,则仅在需要时才更新它们。随后的运行将不会尝试进行更改。
install-postgresql13-repository:
pkg.installed:
- sources:
- pgdg-redhat-repo: https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
install-postgresql-server:
pkg.installed:
- name: postgresql13-server
# and similarly use salt states for other tasks where applicable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。