Skip to content
galthaus edited this page Mar 20, 2012 · 3 revisions

See all, Barclamp List

Overview

The Deployer provides an initial classification system for the Crowbar environment. As nodes are discovered, the Deployer ensures that discovery tools are run on the node by ensuring that the deployer-client role is assigned to the node, the results of that discovery are classified, and the node's attributes are updated to reflect its potential usage. The deployer will also build a map of valid and usable disks.

The deployer gives the primary name to the node at the discovered state. The names default to the letter 'd' and the mac address (with dashes instead of colons). The deployer also allocates the admin and bmc addresses from the network barclamp.

The deployer also defines and provides the node's configuration for raid and bios. These values are assigned part of the =hardware-installing= state transition. The deployer uses a list of role name patterns that define what the raid and bios configurations should be. These are applied as values in the node attributes under =crowbar= -> =hardware= . =bios_set= can in the set of "Virtualization" or "Storage". =raid_set= can be in the set of =JBODOnly= and =SingleRaid10=.

The deployer is also responsible for manipulating the run-list during the =hardware-installing= and =update= (or =hardware-updating=) states. The run list should only include bios, raid, and ipmi operations.

The deployer also controls the allocate flag on the node. The allocate flag is used to pause the node during after discovery. The node will wait for it to be allocated to contain. The deployer has a configuration option to indicate if the allocate flag should be set to false (and cause a pause) or just allocate all nodes.

Roles

The following roles are defined:

  • Deployer Client
  • Enabled the custom ohai plug-ins to gather data
  • Added as one of the first roles to run on the node

Scripts

The deployer provides the ohai plug-in from the OpsCode repository with the addition of the custom plug-in directory.

The custom plug-in for crowbar provides the network connectivity section of the crowbar schema.

node["crowbar"]["switch_config"]["<interface>"]["interface"] Interface name for this data - also the value of network in the hash path
node["crowbar"]["switch_config"]["<interface>"]["mac"] MAC of this interface
node["crowbar"]["switch_config"]["<interface>"]["switch_name"] Switch name (really the mac of the switch)
node["crowbar"]["switch_config"]["<interface>"]["switch_port"] Port on the switch
node["crowbar"]["switch_config"]["<interface>"]["switch_unit"] Unit of the logical stacked switch

The deployer sets up the following variables:

node["crowbar"]["hardware"]["raid_set"] Can be "JBODOnly" or "SingleRaid10".
node["crowbar"]["hardware"]["bios_set"] Can be "Virtualization" or "Storage.
node["crowbar"]["disks"]["<disk_name>"] This is the ohai map of the disk
node["crowbar"]["disks"]["<disk_name>"]["usage"] Additional parameter to indicate who should use this disk ( =OS= or =Storage=)
node["crowbar"]["usage"] This is a list of possible users, "nova" and "swift" are the only options.
node["crowbar"]["allocated"] true or false depending upon the =use_allocate= config flag. If the =allocated= is true, the node will not pause after discovery.

Parameters

The Deployer Barclamp has a couple of parameters.

*Name* *Default* *Description*
bios_map A list of default setings for bios and raid for swift and nova The map defines a list of patterns that would apply a configuration setting for bios and raid.
use_allocate true A boolean value - true indicates that a pause should be injected after the discovered state to allow the admin to accept and allocate the node.
ignore_address_suggestions false A boolean value - true indicates that a new address will be assigned the bmc during discovery phase.

The bios_map entries are maps with the following keys:

*Name* *Description*
pattern Regular expression applied to the role names on the node.
bios_set The bios set of parameters to apply. Values are: =Virtualiation= or =Storage=
raid_set The raid set of parameters to apply. Values are: =JBODOnly= or =SingeRaid10=

Operations

The Barclamp takes no actions as part of the proposal creation of commit phase of operation. The barclamp expects to be called on all node transitions.

The barclamp is responsible for converting the temporary name assigned by the crowbar barclamp and assigning the permanent name. The barclamp handles removing the chef client object for the node until it gets its real credentials after installation.

The inventory data is gathered and stored on the node during the =discovered= transition.

Operations

The Barclamp takes no actions as part of the proposal creation of commit phase of operation. The barclamp expects to be called on all node transitions.

The barclamp is responsible for converting the temporary name assigned by the crowbar barclamp and assigning the permanent name. The barclamp handles removing the chef client object for the node until it gets its real credentials after installation.

The inventory data is gathered and stored on the node during the discovered transition.

Useful Commands and Information

The chef-server node attribute view will display the switch_config information.

Limitations and/or Futures

The deployer expects to be the first barclamp called on a transition. The other barclamps consume the data that it stores on the nodes.

Clone this wiki locally