PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Hành tinh PostgreSQL trong Thiên hà Ansible

Ansible Galaxy đơn giản là cách dễ nhất để tìm các vai Ansible đã được viết sẵn, tạo và chia sẻ các vai của bạn và tham gia vào thiên hà của nội dung Ansible!

====================Thông báo thời gian chính thức! ====================

FOSDEM PGD ngày 2016 sẽ diễn ra vào ngày 29 tháng 1 trước FOSDEM, sự kiện mã nguồn mở lớn nhất Châu Âu và PostgreSQL Devroom sẽ diễn ra vào ngày 31 tháng 1 tại FOSDEM ở Brussels.

Nếu bạn quan tâm đến quản lý cấu hình, điều phối máy chủ, triển khai tự động (đó là lý do tại sao bạn đang đọc bài đăng trên blog này, phải không?) và bạn muốn làm việc với PostgreSQL (chắc chắn) trên AWS (tùy chọn), sau đó bạn có thể muốn tham gia buổi nói chuyện của tôi “Quản lý PostgreSQL với Ansible” vào ngày 29 tháng 1, 12:30-13:20.

Vui lòng kiểm tra lịch trình tuyệt vời cho cả hai sự kiện! Hy vọng gặp bạn ở Brussels tuần này!

====================Thông báo thời gian chính thức! ====================

Xin chào Ansible Galaxy!

Ansible có một cộng đồng hùng mạnh khiến họ càng trở nên mạnh mẽ hơn. Các nhà phát triển đóng góp cho Ansible rất vui được đóng góp và người dùng sử dụng Ansible cho hệ thống của riêng họ cũng vui khi sử dụng nó.

Nội dung Ansible mà họ đề cập đến trên trang web của họ về cơ bản là các vai trò Ansible. Hãy tiếp tục với các vai trò trong bài đăng trên blog này và cố gắng hiểu vai trò Ansible có nghĩa là gì và sự khác biệt giữa các vai trò, sách vở và nhiệm vụ là gì.

Vai trò Ansible là gì?

Bạn hoàn toàn nên sử dụng các vai trò. Vai trò là tuyệt vời. Sử dụng các vai trò. Vai trò! Chúng ta đã nói như vậy đủ chưa? Vai trò là tuyệt vời.

Trước khi nói về vai trò, chúng ta hãy nhớ định nghĩa về nhiệm vụ và sách vở trong thuật ngữ Ansible.

Nhiệm vụ

Các tác vụ chịu trách nhiệm gọi một mô-đun với một bộ thông số cụ thể.

Bạn có thể đọc bài đăng trên blog trước đây của tôi để tìm hiểu về các mô-đun Ansible và kiểm tra các mô-đun Ansible Postgres với các ví dụ.

Mỗi tác vụ Ansible chứa một tên, một mô-đun được gọi, các tham số mô-đun và các điều kiện trước / sau tùy chọn. Chúng cho phép chúng tôi gọi các mô-đun Ansible và chuyển thông tin cho các tác vụ liên tiếp.

Tác vụ bên dưới gọi mô-đun tệp bằng cách cung cấp 4 tham số.


- name: Ensure the data folder has right ownership
  file: path="/var/lib/postgresql" state=directory owner=postgres group=postgres

Nó đảm bảo 3 điều kiện là đúng:

  • / var / lib / postgresql tồn tại dưới dạng một thư mục
  • chủ sở hữu của / var / lib / postgresql là “postgres”
  • nhóm / var / lib / postgresql là “postgres”

Nếu nó không tồn tại, Ansible tạo thư mục và chỉ định chủ sở hữu &nhóm. Nếu chỉ có chủ sở hữu là khác, Ansible đặt nó là "postgres".

Playbook

Playbook chứa các vở kịch và vở kịch chứa các nhiệm vụ. Nhiệm vụ gọi mô-đun và có thể (tùy chọn) trình xử lý kích hoạt (chạy một lần, chạy ở cuối) .

Bây giờ chúng ta có thể xem một ví dụ sách vở rất đơn giản dưới đây:


- name: Ensure all virtual machines are ready
  hosts: 127.0.0.1
  connection: local
  vars_files: # load default variables from YAML files below
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/provision.yml' # load infrastructure setup tasks

- name: Ensure all required PostgreSQL dependencies ready
  hosts: postgresql-all # manage all PostgreSQL servers
  sudo: yes
  sudo_user: root
  vars_files:
    - 'defaults/postgresql.yml'
    - 'defaults/aws.yml'
  tasks:
    - include: 'tasks/postgresql.yml' # load PostgreSQL setup tasks

Trong cuốn sách này, chúng tôi có hai vở kịch:

Lần chơi đầu tiên đảm bảo tất cả các máy ảo đã sẵn sàng và hoạt động trên localhost. Nó tải các biến mặc định từ các tệp YAML có tên postgresql.yml và aws.yml. Bạn có thể coi các tệp này là tệp cấu hình cho các vai trò và vở kịch của PostgreSQL và AWS (trong ví dụ của chúng tôi), vì bạn có thể thấy cả hai vở kịch đều sử dụng các tệp này cho các biến mặc định. Trò chơi này gọi tác vụ cung cấp.yml chứa các tác vụ thiết lập cơ sở hạ tầng.

Lần chơi thứ hai đảm bảo tất cả các phụ thuộc PostgreSQL bắt buộc đã sẵn sàng và hoạt động trên các máy chủ postgres được xác định trong tệp kiểm kê. Trò chơi này gọi tác vụ postgresql.yml chứa các tác vụ thiết lập PostgreSQL.

Nếu bạn muốn xem toàn bộ playbook, chúng tôi hoan nghênh bạn kiểm tra kho lưu trữ của tôi và đóng góp để làm cho nó tốt hơn.

Để hiểu rõ hơn về khái niệm playbook, bạn có thể xem các playbook mẫu được đề xuất tại Ansible docs.

Hãy quay lại nói về các vai trò. Trong Ansible;

  • Sách vở tổ chức nhiệm vụ
  • Vai trò sắp xếp sách vở

Hãy tưởng tượng rằng chúng ta có rất nhiều tài nguyên độc lập để quản lý (ví dụ:máy chủ web, máy chủ PostgreSQL, ghi nhật ký, giám sát, AWS). Đưa mọi thứ vào một cuốn sách nhỏ có thể dẫn đến một giải pháp không thể đạt được.

Để giảm bớt sự phức tạp như vậy, các vai trò sẽ giúp chúng tôi:

Tách các nhiệm vụ thành các playbook nhỏ hơn nhiều

Điều này cho phép chúng tôi tập trung vào các nguồn lực, một cách độc lập. Điều đó làm cho việc bảo trì và gỡ lỗi trở nên đơn giản hơn. Ngoài ra, sẽ dễ hiểu cấu trúc hơn nhiều.

Sử dụng lại cấu hình, tệp, mẫu, tác vụ

Bằng cách này, chúng tôi có thể dễ dàng chia sẻ các thành phần đó giữa các playbook mà không cần viết lại nhiều lần.

Xử lý các phần phụ thuộc vào playbook

Khi chúng tôi thực hiện một vai trò, chúng tôi có thể chắc chắn rằng tất cả các điều kiện tiên quyết đều được đáp ứng cho vai trò đó.

Tại đây, bạn có thể thấy biểu đồ phụ thuộc và cấu trúc thư mục vai trò tương ứng:

Các vai trò của PostgreSQL trong Ansible Galaxy

Trong khi tôi viết bài đăng trên blog này, có 146 vai trò trở thành đầu ra của postgresql postgres bộ lọc tìm kiếm.

Cá nhân tôi khuyên bạn nên kiểm tra một số vai trò này và sử dụng chúng trong kiến ​​trúc của bạn nếu chúng đủ tốt và đáp ứng nhu cầu của bạn; nếu không, hãy đăng ký Ansible Galaxy và tạo các vai trò của riêng bạn.

Chúc bạn hack vui vẻ!

Để biết thêm thông tin về Ansible:

  • Xem các tài liệu được viết tốt của họ.
  • Xem video bắt đầu nhanh Ansible, đây là một hướng dẫn thực sự hữu ích.
  • Theo dõi lịch trình hội thảo trên web của họ, có một số hội thảo trên web thú vị sắp tới trong danh sách.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác minh kết nối cơ sở dữ liệu với pg-promise khi khởi động ứng dụng

  2. Lấy N hàng cuối cùng trong cơ sở dữ liệu theo thứ tự?

  3. Kiểm tra hàm null với các tham số khác nhau

  4. Chỉ mục một phần không được sử dụng trong mệnh đề ON CONFLICT khi thực hiện nâng cấp trong Postgresql

  5. Làm cách nào để định dạng trường bigint thành ngày tháng trong Postgresql?