What is the BLCLI?
This topic introduces you to the concept of using the BladeLogic Command Line Interface, better known as the BLCLI. It includes the following sections:
The BLCLI is a Java-based CLI that allows you to perform many of the actions available in the BMC Server Automation (BSA) console by entering commands or running scripts. The CLI provides the following capabilities:
- Quickly typing commands to initiate actions.
- Automating complex multi-step tasks.
- Bi-directionally integrating with other systems management and operations support systems.
You can execute BLCLI commands individually from the command line, by including them in NSH scripts, or by using the BMC Server Automation Web Services product.
The BLCLI is not a shell. It is an application command line interface. Every command line execution requires the BLCLI to startup and shutdown. Furthermore, each instance of a BLCLI execution requires the Java Virtual Machine (JVM) to start and requires the BLCLI to authenticate against the Application Server. So, by default, each BLCLI command takes a significant amount of time to execute.
Each BLCLI command is broken down into three parts, Namespace, Command, and Arguments. These are defined in the XML command descriptor files that the BLCLI uses to know how to execute each command. The BLCLI commands should take the following format:
blcli NameSpace commandName <Argument1> … <ArgumentN>
The number of arguments and the type of data in each argument depend on the command and are explained in the API documentation available in the Doc directory of each BMC Server Automation installation. BLCLI commands can be scripted using Network Shell, Perl Scripts, Batch Jobs, or other languages that can execute system calls.
You can use the BLCLI to complete any operation through the command line that you can perform through the BSA console. The BLCLI accepts input from the command line, parses that input, and processes that input against XML-formatted commands to become your bridge to the BladeLogic API.
What about scripts?
Once you know how to run commands, you can take a look at using commands within an Network Shell (NSH) script. See Using BLCLI commands within an NSH script.
Using the Network Shell (NSH) commands, you can manage your network of UNIX and Windows machines as one large host. You can perform system administrative functions on multiple remote hosts from a single machine. Instead of having to use the rlogin or telnet utilities to connect with a host to see what is going is on or to make a quick change, you can just use the NSH commands to access files on local and remote hosts directly from the command line. You can use the NSH commands to write new scripts, or modify existing scripts and distribute them.
Wait.. you have web services?
Yes! BMC Server Automation provides web services access to BMC Server Automation functionality. There are two ways of accessing web services, and you can use one or the other or both:
- BMC Server Automation - SOAP Web Services — Lets you access BLCLI commands through web services.
- BMC Server Automation - RESTful Web Services — Provides a simple, URI-based means for accessing resources.
BMC Server Automation - SOAP Web Services are provided as .wsdl files that can be accessed by your web client. These Web Services enable you to log on to the BMC Server Automation Application Server and execute BLCLI commands.
The following topics contain additional information about using BMC Server Automation - SOAP Web Services:
RESTful web services provide a simple, URI-based means for accessing resources. You can use RESTful web services to browse resources and to perform a limited number of operations. For more information, see Using BMC Server Automation - RESTful Web Services.
Where to go from here
To quickly familiarize yourself with the BLCLI, see the Quick start for using BLCLI.
To familiarize yourself with the basic actions and concepts you must understand when using the CLI, see Using the CLI.
For an example of how to use the BLCLI to perform a specific action, see Walkthrough: Obtaining the hardware information for a specific server using RESTful web services.