Prior to this commit the "primary" server in each role was considered to be
the first one defined. This commit extends the behaviour of primary selection
to look to see if any of the hosts have the `primary` property set to a truthy
value.
In case that more than one server has a truthy `primary` property the first
one is taken as previously.
In order to set the primary property the extended `server()` syntax (that is
not `role()`) must be used, see b56206e.
This syntax allows servers to be specified long-hand including properties.
The `role(:my_role, %w{example.com, example.org})` is convenient for batch
set-up of servers; but as SSHKit provides arbirtary properties on servers, it
might be handy to set up servers in long hand:
server('example.com', roles: :my_role, my_property: "my_value")
server('example.com', roles: [:my_role, :another], my_property: "my_value")
server('example.com', roles: :my_role, primary: true)
This commit adds the ability to do this.