sql >> Databáze >  >> RDS >> PostgreSQL

Automatizace barmana s loutkou:it2ndq/barman (část první)


Není to poprvé, co se 2ndQuadrant podíval na Puppet. Gabriele Bartolini již napsala článek ve dvou částech o tom, jak rychle nakonfigurovat server PostgreSQL pomocí Puppet a Vagrant, spolu s vydáním kódu použitého v příkladu na GitHubu (http://github.com/2ndquadrant-it/vagrant -puppet-postgresql).

Cílem tohoto článku, rozděleného do tří částí, je demonstrovat automatizaci nastavení a konfigurace Barmana pro zálohování testovacího serveru PostgreSQL.

Tento článek je aktualizací toho, co napsal Gabriele s myšlenkou vytvořit dva virtuální stroje místo jednoho, PostgreSQL server a Barman server.

it2ndq/barman je modul vydaný společností 2ndQuadrant Italy pro správu instalace Barmana prostřednictvím Puppet. Modul má licenci GPLv3 a je dostupný na GitHubu na adrese http://github.com/2ndquadrant-it/puppet-barman. Následující postup byl napsán pro Ubuntu 14.04 Trusty Tahr, ale lze jej provést podobným způsobem na jiných distribucích.

Požadavky

Ke spuštění modulu pro Barman na virtuálním stroji potřebujeme následující software:

  • VirtualBox
  • Tulák
  • Rubín>=1,9
  • Loutka
  • knihovník-loutka

Vagrant

Vagrant je správce virtuálních strojů schopný podporovat mnoho virtualizačních softwarů s VirtualBoxem jako výchozím.

VirtualBox nainstalujeme takto:

$ sudo apt-get install virtualbox virtualbox-dkms

Nejnovější verzi Vagrantu lze stáhnout z webu a nainstalovat pomocí příkazu:

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

Ruby

Pokud jde o Ruby, doporučujeme použít rbenv , která vytváří vývojové prostředí Ruby, ve kterém lze specifikovat verzi pro aktuálního uživatele, čímž se zabrání kontaminaci systémového prostředí. Chcete-li nainstalovat rbenv doporučujeme použít rbenv-installer (http://github.com/fesplugas/rbenv-installer).

Pojďme si stáhnout a spustit skript:

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

Na konci vás skript vyzve k připojení následujících řádků k ~/.bash_profile soubor:

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

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

Nyní musíme znovu načíst právě změněný ~/.bash_profile :

$ exec bash -l

V tomto okamžiku lokálně nainstalujeme verzi Ruby (v tomto případě 2.1.5) a nastavíme uživatele, aby spouštěl tuto verzi, nikoli verzi systému:

$ rbenv install 2.1.5
$ rbenv global 2.1.5

Loutka

Loutka je vyžadována nejen na virtuálních počítačích, ale také na stroji, který je provozuje. Proto musíme nainstalovat drahokam Puppet.

$ gem install puppet

Knihovník-loutka

Nakonec librarian-puppet je nástroj pro automatizaci správy modulů Puppet. Jako Puppet, librarian-puppet lze nainstalovat jako klenot:

$ gem install librarian-puppet

Vagrant:konfigurace

Nyní, když máme závislosti na místě, můžeme začít psát konfigurace Vagrant a Puppet pro náš záložní systém.

Začneme vytvořením pracovního adresáře:

$ mkdir ~/vagrant_puppet_barman
$ cd ~/vagrant_puppet_barman

Vagrant potřebuje, abychom napsali soubor s názvem Vagrantfile kde hledá konfiguraci virtuálních počítačů.

Následující Vagrantfile spustí dva Ubuntu Trusty VM, nazvané pg a backup , s IP adresami 192.168.56.221 a 192.168.56.222 . Na obou počítačích bude zajišťování prováděno prostřednictvím inline shell skriptu.

Tento skript spustí puppet-bootstrap (http://github.com/hashicorp/puppet-bootstrap), skript, který automaticky instaluje a konfiguruje Puppet na různých typech počítačů. Protože není nutné jej spouštět více než jednou, byl do skriptu vložen test, který zabrání dalšímu spouštění.

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

Vyvolání virtuálních počítačů

Definovali jsme dva virtuální počítače Ubuntu Trusty obsahující Puppet. Toto není konečný Vagrantfile ale již umožňuje vytvoření dvou strojů. Pokud jste zvědaví, je možné ověřit, že oba stroje byly vytvořeny pomocí příkazu:

$ vagrant up

a poté se připojte pomocí následujících příkazů:

$ vagrant ssh pg
$ vagrant ssh backup

Nakonec lze stroje zničit pomocí:

$ vagrant destroy -f

Závěry

V této první části tutoriálu jsme viděli, jak nakonfigurovat závislosti, a skončili jsme u dvou virtuálních strojů, na které budeme instalovat, přes Puppet, PostgreSQL a Barman. Napsání manifestu Puppet pro skutečnou instalaci bude předmětem dalšího článku.

Zatím ahoj!


  1. Jak získat století z data v Oracle

  2. Tabulky vs. databáze:Je čas přejít? Část 1

  3. Jak zálohovat nebo vytvořit novou tabulku ze Stávající tabulky SQL Serveru na SQL Serveru - SQL Server / Výukový program TSQL, část 105

  4. Záměna s Oracle CONNECT BY