PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Planet PostgreSQL di Galaksi yang Mungkin

Ansible Galaxy hanyalah cara termudah untuk menemukan peran Ansible yang sudah ditulis, membuat dan membagikan peran Anda dan melompat ke galaksi konten Ansible!

====================Pengumuman prime time! ====================

FOSDEM PGDDay 2016 akan diadakan pada tanggal 29 Januari sebelum FOSDEM yang merupakan acara open source terbesar di Eropa dan PostgreSQL Devroom akan diadakan pada tanggal 31 Januari di FOSDEM di Brussels.

Jika Anda tertarik dengan manajemen konfigurasi, orkestrasi server, penerapan otomatis (itulah sebabnya Anda membaca posting blog ini, bukan?) dan Anda suka bekerja dengan PostgreSQL (pasti) di AWS (opsional), maka Anda mungkin ingin bergabung dengan ceramah saya “Mengelola PostgreSQL dengan Ansible” pada 29 Januari, 12:30-13:20.

Silakan periksa jadwal luar biasa untuk kedua acara tersebut! Sampai jumpa di Brussel minggu ini!

====================Pengumuman prime time! ====================

Halo Galaksi yang Mungkin!

Ansible memiliki komunitas yang kuat yang membuat mereka semakin kuat. Pengembang yang berkontribusi pada Ansible dengan senang hati berkontribusi dan pengguna yang menggunakan Ansible untuk sistem mereka sendiri dengan senang hati menggunakannya.

Konten Ansible yang mereka rujuk di halaman web mereka pada dasarnya adalah peran Ansible. Mari lanjutkan dengan peran dalam entri blog ini dan coba pahami apa arti peran Ansible, dan apa perbedaan antara peran, pedoman, dan tugas.

Apa itu Peran yang Mungkin?

Anda benar-benar harus menggunakan peran. Perannya bagus. Gunakan peran. Peran! Apakah kita mengatakan itu cukup? Perannya bagus.

Sebelum berbicara tentang peran, mari kita ingat definisi tugas dan pedoman dalam terminologi Ansible.

Tugas

Tugas bertanggung jawab untuk memanggil modul dengan seperangkat parameter tertentu.

Anda dapat membaca posting blog saya sebelumnya untuk mempelajari tentang modul Ansible dan memeriksa modul Ansible Postgres dengan contoh.

Setiap tugas Ansible berisi nama, modul yang akan dipanggil, parameter modul, dan pra/pasca-kondisi opsional. Mereka memungkinkan kita untuk memanggil modul Ansible dan meneruskan informasi ke tugas yang berurutan.

Tugas di bawah ini memanggil modul file dengan menyediakan 4 parameter.


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

Ini memastikan 3 kondisi benar:

  • /var/lib/postgresql ada sebagai direktori
  • pemilik /var/lib/postgresql adalah “postgres”
  • grup /var/lib/postgresql adalah “postgres”

Jika tidak ada, Ansible membuat direktori dan menetapkan pemilik &grup. Kalau saja pemiliknya berbeda, Ansible menjadikannya “postgres”.

Playbook

Playbook berisi drama dan drama berisi tugas. Tugas memanggil modul dan dapat (opsional) trigger handler (jalankan sekali, jalankan di akhir) .

Sekarang kita dapat melihat contoh buku pedoman yang sangat sederhana di bawah ini:


- 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

Dalam buku pedoman ini kami memiliki dua drama:

Pemutaran pertama memastikan semua mesin virtual siap dan beroperasi di localhost. Ini memuat variabel default dari file YAML bernama postgresql.yml dan aws.yml. Anda dapat menganggap file ini sebagai file konfigurasi untuk peran dan buku pedoman PostgreSQL dan AWS (dalam contoh kami), karena Anda dapat melihat kedua permainan menggunakan file ini untuk variabel default. Drama ini memanggil tugas provision.yml yang berisi tugas penyiapan infrastruktur.

Putaran kedua memastikan semua dependensi PostgreSQL yang diperlukan siap dan beroperasi pada server postgres yang ditentukan dalam file inventaris. Drama ini memanggil tugas postgresql.yml yang berisi tugas penyiapan PostgreSQL.

Jika Anda ingin melihat buku pedoman lengkap, Anda dipersilakan untuk memeriksa repositori saya dan berkontribusi untuk membuatnya lebih baik.

Untuk memahami konsep buku pedoman dengan lebih baik, Anda dapat melihat contoh buku pedoman yang disarankan di dokumen Ansible.

Mari kita kembali berbicara tentang peran. Di Ansible;

  • Playbook mengatur tugas
  • Peran mengatur buku pedoman

Bayangkan kita memiliki banyak sumber daya independen untuk dikelola (mis., server web, server PostgreSQL, logging, pemantauan, AWS). Menempatkan semuanya dalam satu buku pedoman dapat menghasilkan solusi yang tidak dapat dipertahankan.

Untuk mengurangi kerumitan tersebut, peran membantu kami dengan:

Membagi tugas menjadi buku pedoman yang jauh lebih kecil

Hal ini memungkinkan kita untuk fokus pada sumber daya, secara mandiri. Itu membuatnya lebih mudah untuk dipelihara dan di-debug. Juga akan lebih mudah untuk memahami strukturnya.

Menggunakan kembali konfigurasi, file, template, tugas

Dengan cara ini, kami dapat dengan mudah membagikan komponen tersebut di antara buku pedoman, tanpa harus menulis ulang berulang kali.

Menangani dependensi playbook

Saat menjalankan peran, kita dapat yakin bahwa semua prasyarat terpenuhi untuk peran tersebut.

Di sini Anda dapat melihat grafik ketergantungan dan struktur direktori peran yang sesuai:

Peran PostgreSQL di Ansible Galaxy

Saat saya menulis posting blog ini ada 146 peran yang ternyata sebagai output dari postgresql dan postgres menyaring pencarian.

Saya pribadi menyarankan untuk memeriksa beberapa peran ini dan menggunakannya dalam arsitektur Anda jika mereka cukup baik, dan memenuhi kebutuhan Anda; jika tidak, daftar ke Ansible Galaxy dan buat peran Anda sendiri.

Selamat meretas!

Untuk informasi lebih lanjut tentang Ansible:

  • Lihat dokumen mereka yang ditulis dengan baik.
  • Tonton video memulai cepat yang memungkinkan yang merupakan tutorial yang sangat membantu.
  • Ikuti jadwal webinar mereka, ada beberapa webinar keren yang akan datang dalam daftar.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perlengkapan Django gagal, menyatakan DatabaseError:nilai terlalu panjang untuk variasi karakter tipe (50)

  2. Fungsi PostgreSQL untuk ID yang terakhir dimasukkan

  3. Bagaimana cara mengelola koneksi db di server?

  4. Memperbaiki lubang/kesenjangan dalam angka yang dihasilkan oleh urutan Postgres

  5. Alternatif PGTune - Konfigurasi PostgreSQL ClusterControl