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

Tự động hóa Barman với Puppet:it2ndq / barman (phần một)


Đây không phải là lần đầu tiên 2ndQuadrant xem xét Puppet. Gabriele Bartolini đã viết một bài báo gồm hai phần về cách cấu hình nhanh máy chủ PostgreSQL thông qua Puppet và Vagrant, kèm theo việc phát hành mã được sử dụng trong ví dụ trên GitHub (http://github.com/2ndquadrant-it/vagrant -puppet-postgresql).

Được chia thành ba phần, mục đích của bài viết này là chứng minh sự tự động hóa thiết lập và cấu hình của Barman để sao lưu máy chủ thử nghiệm PostgreSQL.

Bài viết này là bản cập nhật những gì được viết bởi Gabriele với ý tưởng tạo ra hai máy ảo thay vì một, một máy chủ PostgreSQL và một máy chủ Barman.

it2ndq/barman là mô-đun do 2ndQuadrant Italy phát hành để quản lý việc cài đặt Barman thông qua Puppet. Mô-đun có giấy phép GPLv3 và có sẵn trên GitHub tại địa chỉ http://github.com/2ndquadrant-it/puppet-barman. Quy trình sau được viết cho Ubuntu 14.04 Trusty Tahr nhưng có thể được thực hiện theo cách tương tự trên các bản phân phối khác.

Yêu cầu

Để khởi động mô-đun cho Barman trên máy ảo, chúng tôi cần phần mềm sau:

  • VirtualBox
  • Vagrant
  • Ruby> =1,9
  • Con rối
  • thủ thư-con rối

Vagrant

Vagrant là một trình quản lý máy ảo, có khả năng hỗ trợ nhiều phần mềm ảo hóa với VirtualBox làm mặc định.

Chúng tôi cài đặt VirtualBox theo cách này:

$ sudo apt-get install virtualbox virtualbox-dkms

Phiên bản mới nhất của Vagrant có thể được tải xuống từ trang web và cài đặt bằng lệnh:

$ sudo dpkg -i /path/to/vagrant_1.7.2_x86_64.deb

Ruby

Về Ruby, lời khuyên của chúng tôi là sử dụng rbenv , tạo ra một môi trường phát triển Ruby để chỉ định phiên bản cho người dùng hiện tại, do đó tránh làm ô nhiễm môi trường hệ thống. Để cài đặt rbenv chúng tôi khuyên bạn nên sử dụng rbenv-installer (http://github.com/fesplugas/rbenv-installer).

Hãy tải xuống và thực thi tập lệnh:

$ curl https://raw.githubusercontent.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash

Ở cuối, tập lệnh sẽ nhắc bạn nối các dòng sau vào ~/.bash_profile tệp:

export RBENV_ROOT="${HOME}/.rbenv"

if [ -d "${RBENV_ROOT}" ]; then
  export PATH="${RBENV_ROOT}/bin:${PATH}"
  eval "$(rbenv init -)"
fi

Bây giờ chúng ta cần tải lại ~/.bash_profile vừa thay đổi :

$ exec bash -l

Tại thời điểm này, chúng tôi cài đặt cục bộ phiên bản Ruby (trong trường hợp này là 2.1.5) và đặt người dùng chạy phiên bản này thay vì phiên bản hệ thống:

$ rbenv install 2.1.5
$ rbenv global 2.1.5

Con rối

Con rối không chỉ được yêu cầu trên máy ảo mà còn trên máy chạy chúng. Do đó, chúng ta cần cài đặt Puppet gem.

$ gem install puppet

Thủ thư-con rối

Cuối cùng, librarian-puppet là một công cụ để tự động hóa việc quản lý các mô-đun Con rối. Giống như con rối, librarian-puppet có thể được cài đặt dưới dạng đá quý:

$ gem install librarian-puppet

Vagrant:cấu hình

Bây giờ chúng ta đã có sẵn các phần phụ thuộc, chúng ta có thể bắt đầu viết các cấu hình Vagrant và Puppet cho hệ thống sao lưu của mình.

Chúng tôi bắt đầu bằng cách tạo một thư mục làm việc:

$ mkdir ~/vagrant_puppet_barman
$ cd ~/vagrant_puppet_barman

Vagrant cần chúng tôi viết một tệp có tên là Vagrantfile nơi nó tìm kiếm cấu hình của máy ảo.

Vagrantfile sau khởi động hai máy ảo đáng tin cậy của Ubuntu, được gọi là pgbackup , với địa chỉ ip 192.168.56.221192.168.56.222 . Trên cả hai máy, việc cấp phép sẽ được thực hiện thông qua một tập lệnh shell nội tuyến.

Tập lệnh này khởi chạy puppet-bootstrap (http://github.com/hashicorp/puppet-bootstrap), một script tự động cài đặt và cấu hình Puppet trên nhiều loại máy khác nhau. Vì nó không cần phải chạy nhiều lần, nên trong tập lệnh, một bài kiểm tra đã được chèn để ngăn các lần thực thi tiếp theo.

Vagrant.configure("2") do |config|
  {
    :pg => {
      :ip      => '192.168.56.221',
      :box     => 'ubuntu/trusty64'
    },
    :backup => {
      :ip      => '192.168.56.222',
      :box     => 'ubuntu/trusty64'
    }
  }.each do |name,cfg|
    config.vm.define name do |local|
      local.vm.box = cfg[:box]
      local.vm.hostname = name.to_s + '.local.lan'
      local.vm.network :private_network, ip: cfg[:ip]
      family = 'ubuntu'
      bootstrap_url = 'http://raw.github.com/hashicorp/puppet-bootstrap/master/' + family + '.sh'

      # Run puppet-bootstrap only once
      local.vm.provision :shell, :inline => <<-eos
        if [ ! -e /tmp/.bash.provision.done ]; then
          curl -L #{bootstrap_url} | bash
          touch /tmp/.bash.provision.done
        fi
      eos
    end
  end
end

Đưa lên máy ảo

Chúng tôi đã xác định hai máy ảo Ubuntu Trusty có chứa Puppet. Đây không phải là Vagrantfile cuối cùng nhưng đã cho phép tạo ra hai máy. Nếu bạn tò mò, có thể xác minh rằng hai máy đã được tạo bằng lệnh:

$ vagrant up

và sau đó kết nối bằng các lệnh sau:

$ vagrant ssh pg
$ vagrant ssh backup

Cuối cùng, máy có thể bị phá hủy bằng:

$ vagrant destroy -f

Kết luận

Trong phần đầu tiên của hướng dẫn này, chúng ta đã biết cách định cấu hình các phần phụ thuộc và kết thúc với hai máy ảo mà chúng ta sẽ cài đặt, thông qua Puppet, PostgreSQL và Barman. Việc viết tệp kê khai Con rối cho quá trình cài đặt thực tế sẽ là chủ đề của bài viết tiếp theo.

Tạm biệt!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt lại chuỗi khóa chính của postgres khi nó không đồng bộ?

  2. Cách chuyển đổi chuỗi thành dấu thời gian trong PostgreSQL

  3. Làm cách nào để đặt giới hạn kích thước cho kiểu dữ liệu int trong PostgreSQL 9.5

  4. Sắp xếp / đối chiếu / thứ tự không chính xác với khoảng trắng trong Postgresql 9.4

  5. Tôi muốn tìm nạp dữ liệu từ các tên bảng khác nhau bằng cách sử dụng hàm postgresql