cookbook 'extended_drbd', '= 0.0.1'
extended_drbd (7) Versions 0.0.1 Follow1
DRBD recipe
cookbook 'extended_drbd', '= 0.0.1', :supermarket
knife supermarket install extended_drbd
knife supermarket download extended_drbd
= Description:
This cookbook is designed to setup and configure a pair of server with
drbd.
Please Note: this cookbook does not mount the drbd drive.
This cookbook can be used in the following situations:
1) Fresh server pair installation (please see below for how to use).
2) Adding a server to another server running drbd.
3) Change drbd.conf file and have drbd update with out restarting.
== How to use when creating a fresh server pair:
Prerequisites:
- Chef client must be installed on both servers.
- The disk location (node[:drbd][:disk]) must exist.
- The servers must be able to ssh to the other server.
Note: In order for this work properly both servers need to be running chef
at the same time,
There are 2 ways to specify a drbd primary. 1) set an override
attribute on the node directly "drbd":{"master"=true} 2) set
an attribute "server_letter" as 'a'
Once one server has been specified as drbd master you can add the recipe
"drbd::drbd_fresh_install" to the run_list of both servers.
== How to use when adding a new server to another server running drbd:
This is the same as above except the new server is not specified as the drbd
master, and you dont have to be running chef-client on the other server.
== How to use when changing the drbd.conf file:
On which ever server you are updated (or both) add the recipe
"drbd::drbd_inplace_upgrade" to the server's run_list. And the next
time Chef-client runs it will preform the changes in a safe way.
The ways I have used this have been to call this drbd cookbook from within
another cookbook, and have the second cookbook do the logic of decided whether
or not this is a fresh install or inplace upgrade.
Here is how I use it:
if system(" [ -f /etc/drbd.conf ] ")
include_recipe "extended_drbd::drbd_inplace_upgrade"
else
include_recipe "extended_drbd::drbd_fresh_install"
end
= ATTRIBUTES:
default[:drbd][:packages] = ["kmod-drbd83", "drbd83"]
default[:drbd][:remote_host] = nil
default[:drbd][:disk] = "/dev/local/data"
default[:drbd][:mount] = "/data"
default[:drbd][:fs_type] = "ext3"
default[:drbd][:dev] = "/dev/drbd0"
default[:drbd][:master] = false
default[:drbd][:port] = 7789
default[:drbd][:configured] = false
default[:drbd][:stop_file] = "/etc/drbd_stop_file"
default[:drbd][:syncrate] = "36M"
default[:drbd][:resource] = "data"
default[:my_expected_ip] = ''
default[:server_partner_ip] =''
default[:server_partner_hostname] = ''
default[:drbd][:primary][:designation] = 'a'
default[:drbd][:secondary][:designation] = 'b'
default[:server_letter] = ""
= License
DRBD Chef Recipe
Copyright (C) 2012 Justin Witrick
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.