sql >> データベース >  >> RDS >> PostgreSQL

Puppetを使用したBarmanの自動化:it2ndq / barman(パート1)


    2ndQuadrantがPuppetを調べたのはこれが初めてではありません。 Gabriele Bartoliniは、GitHub(http://github.com/2ndquadrant-it/vagrant)の例で使用されているコードのリリースに伴い、PuppetとVagrantを介してPostgreSQLサーバーを迅速に構成する方法に関する2部構成の記事をすでに書いています。 -puppet-postgresql)。

    この記事の目的は、3つの部分に分かれており、PostgreSQLテストサーバーをバックアップするためのBarmanのセットアップと構成の自動化を示すことです。

    この記事は、PostgreSQLサーバーとBarmanサーバーの1つではなく2つの仮想マシンを作成するというアイデアでGabrieleによって書かれたものの更新です。

    it2ndq/barman Puppetを介したBarmanのインストールを管理するために2ndQuadrantItalyによってリリースされたモジュールです。このモジュールにはGPLv3ライセンスがあり、GitHubのアドレスhttp://github.com/2ndquadrant-it/puppet-barmanで入手できます。次の手順はUbuntu14.04Trusty Tahr用に作成されていますが、他のディストリビューションでも同様の方法で実行できます。

    要件

    仮想マシンでBarmanのモジュールを起動するには、次のソフトウェアが必要です。

    • VirtualBox
    • Vagrant
    • ルビー>=1.9
    • 人形
    • 司書-人形

    Vagrant

    Vagrantは仮想マシンマネージャーであり、VirtualBoxをデフォルトとして使用して多くの仮想化ソフトウェアをサポートできます。

    VirtualBoxは次のようにインストールします:

    $ sudo apt-get install virtualbox virtualbox-dkms

    Vagrantの最新バージョンは、サイトからダウンロードして、次のコマンドでインストールできます。

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

    ルビー

    Rubyに関しては、rbenvを使用することをお勧めします。 、現在のユーザーのバージョンを指定するRuby開発環境を作成し、システム環境の汚染を回避します。 rbenvをインストールするには rbenv-installer を使用することをお勧めします (http://github.com/fesplugas/rbenv-installer)。

    スクリプトをダウンロードして実行しましょう:

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

    最後に、スクリプトは次の行を~/.bash_profileに追加するように求めます。 ファイル:

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

    変更したばかりの~/.bash_profileをリロードする必要があります :

    $ exec bash -l

    この時点で、Rubyバージョン(この場合は2.1.5)をローカルにインストールし、システムバージョンではなくこのバージョンを実行するようにユーザーを設定します。

    $ rbenv install 2.1.5
    $ rbenv global 2.1.5

    人形

    Puppetは、VMだけでなく、VMを実行しているマシンにも必要です。したがって、Puppetgemをインストールする必要があります。

    $ gem install puppet

    司書-人形

    最後に、librarian-puppet Puppetモジュールの管理を自動化するツールです。 Puppetと同様に、librarian-puppet 宝石としてインストールできます:

    $ gem install librarian-puppet

    Vagrant:構成

    依存関係が整ったので、バックアップシステムのVagrantおよびPuppet構成の作成を開始できます。

    作業ディレクトリを作成することから始めます:

    $ mkdir ~/vagrant_puppet_barman
    $ cd ~/vagrant_puppet_barman

    Vagrantでは、Vagrantfileというファイルを作成する必要があります ここでVMの構成を検索します。

    次のVagrantfile pgと呼ばれる2つのUbuntuTrustyVMを起動します およびbackup 、IPアドレス192.168.56.221 および192.168.56.222 。どちらのマシンでも、プロビジョニングはインラインシェルスクリプトを介して実行されます。

    このスクリプトはpuppet-bootstrapを起動します (http://github.com/hashicorp/puppet-bootstrap)、さまざまなタイプのマシンにPuppetを自動的にインストールして構成するスクリプト。複数回実行する必要がないため、スクリプトにはそれ以上の実行を防ぐためのテストが挿入されました。

    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

    VMの起動

    Puppetを含む2つのUbuntuTrustyVMを定義しました。これは最終的なVagrantfileではありません しかし、すでに2台のマシンの作成を許可しています。興味がある場合は、次のコマンドを使用して2台のマシンが作成されたことを確認できます。

    $ vagrant up

    次に、次のコマンドを使用して接続します。

    $ vagrant ssh pg
    $ vagrant ssh backup

    最後に、マシンは次の方法で破壊できます:

    $ vagrant destroy -f

    結論

    チュートリアルのこの最初の部分では、依存関係を構成する方法を確認し、最終的に、Puppet、PostgreSQL、およびBarmanを介してインストールする2つの仮想マシンを作成しました。実際のインストール用にPuppetマニフェストを作成することは、次の記事の主題になります。

    さようなら!


    1. LockModeTypeJpaの違い

    2. ORA-01438:3を挿入するときに、この列に許可されている指定された精度よりも大きい値

    3. PostgreSQLで配列を作成する方法

    4. DAYOFYEAR()がMariaDBでどのように機能するか