=head1 NAME

B<bmcdiscover> - Discover Baseboard Management Controllers (BMCs) using a scan method

=head1 SYNOPSIS

B<bmcdiscover> [B<-?>|B<-h>|B<--help>]

B<bmcdiscover> [B<-v>|B<--version>]

B<bmcdiscover> [B<--sn> I<SN_nodename>] [B<-s> I<scan_method>] [B<-u> I<bmc_user>] [B<-p> I<bmc_passwd>] [B<-z>] [B<-w>] B<--range> I<ip_ranges>


=head1 DESCRIPTION

The B<bmcdiscover> command will discover Baseboard Management Controllers (BMCs) using a scan method.  

The command uses B<nmap> to scan active nodes over a specified IP range.  The IP range format should be a format that is acceptable by B<nmap>. 

The B<bmcdiscover> command can also obtain some information about the BMC. (Check username/password, IP address source, DHCP/static configuration)

Note: The scan method currently support is B<nmap>. 

=head1 OPTIONS

=over 10

=item B<--range>       

Specify one or more IP ranges acceptable to nmap.  IP range can be hostnames, IP addresses, networks, etc.  A single IP address (10.1.2.3), several IPs with commas (10.1.2.3,10.1.2.10), Ip range with "-" (10.1.2.0-100) or an IP range (10.1.2.0/24) can be specified.  If the range is very large, the B<bmcdiscover> command may take a long time to return. 

=item B<--sn>

Specify one or more service nodes on which bmcdiscover will run. In hierarchical cluster, the MN may not be able to access the BMC of CN directly, but SN can. With this option, bmcdiscover will be dispatched to the specified SNs. Then, the nodename of the service node that 'bmcdiscover' is running on will be set to the 'servicenode' attribute of the discovered BMC node.

=item B<-s>            

Scan method  (The only supported scan method at this time is B<nmap>)

=item B<-z>            

List the data returned in xCAT stanza format

=item B<-w>            

Write to the xCAT database.

=item B<-i|--bmcip>    

BMC IP address.

=item B<-u|--bmcuser>  

BMC user name.

=item B<-p|--bmcpasswd>   

BMC user password.

=item B<-h|--help>

Display usage message

=item B<-v|--version>

Display version information

=back

=head1 RETURN VALUE

0  The command completed successfully.

1  An error has occurred.

=head1 EXAMPLES


1. To get all responding BMCs from IP range "10.4.23.100-254" and 50.3.15.1-2":

    bmcdiscover -s nmap --range "10.4.23.100-254 50.3.15.1-2"

Note: Input for IP range can be in the form: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254.

2. To get all BMCs in IP range "10.4.22-23.100-254", displayed in xCAT stanza format:

    bmcdiscover -s nmap --range "10.4.22-23.100-254" -z

3. To discover BMCs through sn01:

    bmcdiscover --sn sn01 -s nmap --range "10.4.22-23.100-254" -z

Output is similar to:

    node-70e28414291b:
        objtype=node
        groups=all
        bmc=10.4.22.101
        cons=openbmc
        mgt=openbmc
        servicenode=sn01
        conserver=sn01

4. Discover the BMCs and write the discovered-node definitions into the xCAT database and write out the stanza foramt to the console:

    bmcdiscover -s nmap --range "10.4.22-23.100-254" -w -z 

=head1 SEE ALSO

L<lsslp(1)|lsslp.1>
