postgresql - 如何安装具有 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
推荐阅读
- kotlin - 使用 Kotlin 多模块 spring 项目创建 docker 映像
- pyspark - 如何将一列添加到 PySpark 中的其他列?
- date - 批处理文件日期时间窗口设置
- sql - 查询 SQL 表并仅将更新的行传输到不同的数据库
- javascript - Javascript图像转换器(一个图片文件中的2张图片)一键式
- java - 带有正则表达式的扫描仪未读取整个文件
- mysql - 客户端不支持认证协议
- javascript - 数组 javascript 过滤器
- python - Python 没有在当前目录中查找导入,这会导致生成的 protobuf 文件出现问题
- office-addins - 将新 manifest.xml 文件上传到 Office 应用商店时出错