- vừa được xem lúc

Cài đặt PostgreSQL 16 bằng Ansible (và tùy chỉnh cấu hình)

0 0 3

Người đăng: Thái Thịnh

Theo Viblo Asia

Cần tự động hóa việc cài đặt PostgreSQL 16 và đảm bảo nó sử dụng đúng các tệp postgresql.confpg_hba.conf của bạn? Đây là cách thiết lập như một lập trình viên đã quá mệt mỏi với sshvim.

Cấu trúc thư mục

Chúng ta sẽ sử dụng cấu trúc role điển hình của Ansible. Thư mục roles/db của bạn sẽ trông như sau:

roles/db/
├── tasks/
│ ├── main.yml
│ └── install_postgres.yml
├── templates/
│ ├── pg_hba.conf.j2
│ └── postgresql.conf.j2

Tệp Inventory

Ví dụ hosts.ini:

[db]
my-postgres-host ansible_host=192.168.0.10 ansible_user=ubuntu

db.yml (Entry point)

- name: Setup PostgreSQL hosts: db become: yes roles: - db

roles/db/tasks/main.yml

---
- include_tasks: install_postgres.yml

roles/db/tasks/install_postgres.yml

---
- name: Update apt cache apt: update_cache: yes - name: Install postgresql-common apt: name: postgresql-common state: present - name: Run pgdg script command: /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh args: creates: /etc/apt/sources.list.d/pgdg.list - name: Update apt cache after adding PGDG apt: update_cache: yes - name: Install PostgreSQL 16 and contrib apt: name: - postgresql-16 - postgresql-contrib-16 state: present - name: Set custom postgresql.conf template: src: postgresql.conf.j2 dest: /etc/postgresql/16/main/postgresql.conf owner: postgres group: postgres mode: 0644 notify: Restart PostgreSQL - name: Set custom pg_hba.conf template: src: pg_hba.conf.j2 dest: /etc/postgresql/16/main/pg_hba.conf owner: postgres group: postgres mode: 0640 notify: Restart PostgreSQL

roles/db/handlers/main.yml

---
- name: Restart PostgreSQL service: name: postgresql state: restarted

roles/db/templates/postgresql.conf.j2

Cấu hình hoạt động tối thiểu (có thể tùy chỉnh thêm):

listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 128MB
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql.log'

roles/db/templates/pg_hba.conf.j2

Cho phép truy cập cục bộ và truy cập từ xa dùng mật khẩu:

# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5

Chạy Playbook

ansible-playbook -i hosts.ini db.yml

Mẹo bổ sung

Để đặt lại mật khẩu cho user postgres sau khi cài đặt:

- name: Set postgres user password become_user: postgres shell: psql -c "ALTER USER postgres WITH PASSWORD '{{ postgres_password }}';"

Khai báo postgres_password trong roles/db/vars/main.yml.

Vậy là xong — hạ tầng của bạn giờ đây sẽ tự động cài đặt PostgreSQL 16 với cấu hình được thiết lập theo yêu cầu cụ thể.

Bình luận

Bài viết tương tự

- vừa được xem lúc

The Twelve-Factor App, cẩm nang gối đầu giường trong xây dựng application (Phần 1)

Giới thiệu. Ngày nay các phần mềm được triển khai dưới dạng các dịch vụ, chúng được gọi là các web apps hay software-as-a-service (SaaS).

0 0 45

- vừa được xem lúc

8 Sai lầm phổ biến khi lập trình Android

1. Hard code.

0 0 207

- vừa được xem lúc

Popular interview question: What is the difference between Process and Thread? 10 seconds a day

Video được đăng tại channel Tips Javascript

0 0 44

- vừa được xem lúc

Thuật toán và ứng dụng - P1

Mục đích series. . Những bài toán gắn liền với thực tế. Từ đó thấy được tầm quan trọng của thuật toán trong lập trình.

0 0 46

- vừa được xem lúc

Tác dụng của Docker trong quá trình học tập

Docker bây giờ gần như là kiến thức bắt buộc đối với các anh em Dev và Devops, nhưng mà đối với sinh viên IT nói chung vẫn còn khá mơ hồ và không biết tác dụng thực tế của nó. Hôm nay mình sẽ chia sẻ

0 0 52

- vừa được xem lúc

Làm giàu trong ngành IT

Hầu như mọi người đều đi làm để kiếm tiền, ít người đi làm vì thấy cái nghề đó thú vị lắm. Bây giờ vất cho mình 100 tỷ bảo mình bỏ nghề thì mình cũng bỏ thôi.

0 0 55