#postgresql #salt-stack
#postgresql #солевой стек
Вопрос:
В основном вопрос заключается в названии. Я использую CentOS 8 и хочу начать использовать состояния солевого стека для установки таких вещей, как 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 — не лучший вариант, насколько я знаю.
Комментарии:
1. Заголовок — это не вопрос. С какими проблемами вы сталкиваетесь?
2. Как вы сказали, использование
cmd.run
— не лучший вариант. Это похоже на написаниеshell
скрипта с помощью Saltstack. Это устраняет «состояние» из состояний соли. Вы можете начать с легко доступной формулы и повторно использовать ее, если это соответствует вашим потребностям.3. Спасибо @seshadri_c Я посмотрю формулу. И я отредактировал заголовок (так что теперь это вопрос)
Ответ №1:
Основным преимуществом использования такого инструмента, как Saltstack, является идемпотентность, которую он предлагает посредством «состояний».
Не вдаваясь в полное решение, я бы порекомендовал вам пройти через состояния соли.
Например, приведенный ниже код будет работать нормально в первый раз, но при втором запуске он может выдать ошибку. Даже если это работает, в этом нет необходимости.
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-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