2ndQuadrantがPuppetを調べたのはこれが初めてではありません。 Gabriele Bartoliniは、GitHub(https://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のアドレスhttps://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 を使用することをお勧めします (https://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を起動します (https://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 = 'https://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マニフェストを作成することは、次の記事の主題になります。
さようなら!