When you enable self-service virtual machine provisioning, users are able to navigate to a specially configured portal and are able to use the portal to request virtual machines by filling out a form providing relevant details. The type of portal and the details required will depend on the self-service strategy that you choose. There are three basic strategies that you can pursue when providing self-service virtual machine provisioning to users when using Hyper-V and the System Center products. These are:
- Self-service with Virtual Machine Manager, and App Controller
- Self-service with Virtual Machine Manager, Service Manager, and Orchestrator
- Self-service with the Windows Azure pack
Self-service with VMM and App Controller
System Center App Controller provides users with self-service virtual machine deployment functionality for VMM 2012 SP1 and VMM 2012 R2. App Controller runs as a web application, shown in Figure 1. To perform self-service virtual machine deployment using App Controller, a user must be a member of a VMM self-service user role.
FIGURE 1 App Controller
To create a self-service user role in VMM, perform the following steps:
1. Click Create User Role on the ribbon when in the Settings workspace of the VMM console.
2. On the Name And Description page of the Create User Role Wizard, provide a name for the role and an optional description.
3. On the Profile page, click Application Administrator (Self-Service User), as shown in Figure 2.
FIGURE 2 Create User Role
4. On the Members page of the Create User Role Wizard, click Add, and add an Active Directory security group that will host the user accounts of the people who you want to grant self-service privileges to.
5. On the Scope page, shown in Figure 3, select the private cloud into which self-service users will be able to deploy VMs.
FIGURE 3 Create User Role
6. On the Quotas page, specify the quotas for the self-service user role. You can configure role level quotas, which apply to all users of the role, or individual quotas, that apply to individual users. For example, Figure 4 shows member level quotas configured so that each role member can use a maximum of 2 virtual CPUs, 8192 MB of RAM, 50 GB of storage, and deploy a maximum of 2 virtual machines.
FIGURE 4 Member level quotas
7. On the Networking page, select which networks, if any, to which you will restrict the self-service users. If you don’t specify any networks, self-service users can use any configured VM network.
8. On the Resources page, select which resources, if any, to which you will restrict the self-service users. If you don’t specify any resources, self-service users can use any available VMM resources.
9. On the Permissions page, shown in Figure 5, configure the permissions that you want to assign to the users.
FIGURE 5 Permitted actions
10. On the Run As accounts page, select which VMM Run As Accounts that members of the user role can utilize.
Users assigned the appropriate permissions through the VMM role are able to sign in to the App Controller portal, connect to the private clouds hosted through VMM to which they have been assigned access, and deploy and manage virtual machines.
Self-service with VMM, Service Manager, and Orchestrator
By integrating VMM, Service Manager, and Orchestrator, you can configure self-service virtual machines as Service Manager request offerings. To be able to perform this action, you’ll need to configure the VMM Connector for Service Manager, and the VMM Connector for Orchestrator. When the user requests the VM through the Self-Service Portal, an Orchestrator runbook will start, which performs the necessary activities to trigger VMM tasks deploying the virtual machine.
Configuring the VMM connector for Service Manager will provide Service Manager with information about the VMM environment. To configure the VMM connector for Service Manager, perform the following steps:
1. In the Administration workspace of the Service Manager console, click Connectors.
2. In the Tasks pane, click Create Connector, and then click Virtual Machine Manager connector.
3. On the General page of the Virtual Machine Manager Connector Wizard, type the connector name.
4. On the Connection page, shown in Figure 5, type enter the FQDN of the VMM server, and specify a Run As account. This account needs to have permissions to access VMM. Click Test Connection to verify this account.
FIGURE 5 VMM connector
5. On the Summary page, review the configuration information, and click Create.
To create Orchestrator runbooks that can use activities that perform tasks in VMM, you configure VMM integration for Orchestrator. To configure the VMM connector for Orchestrator, perform the following steps:
1. Ensure that the VMM integration pack is installed on the Orchestrator server.
2. Ensure that the VMM Administration console is installed on the Orchestrator server. It is possible to configure the connector without a local deployment of the VMM console, but this is a more complicated process than installing the console on the Orchestrator server.
3. Ensure that the Windows PowerShell initiation policy on the Orchestrator server is set to Remote Signed.
4. In the Options menu of the Orchestrator Runbook Designer, click SC 2012 Virtual Machine Manager.
5. On the SC 2012 Virtual Machine Manager dialog box, click Add.
6. On the Add Configuration dialog box, specify the name of the connection. Next to type, click the ellipsis (...).
7. On the Item Selection page, click System Center Virtual Machine Manager.
8. In the Properties section of the Add Configuration dialog box, shown in Figure 6, configure the following settings:
- VMM Administrator Console Address of the server with the VMM console
- VMM Server Address of the VMM server
- User User account of user with permissions to the VMM server
- Domain Domain that hosts the user account
- Password Password associated with the account
- Authentication Type (Remote Only) Needs to be configured if the VMM Administrator console is not installed on the Orchestrator server. You need to enable the authentication method for WinRM using Group Policy.
- Port (Remote Only) Only required if the Orchestrator runbook server doesn’t have an instance of the VMM Administrator console.
- Use SSL (Remote Only) Only required if the Orchestrator runbook server doesn’t have an instance of the VMM Administrator console.
- Cache Timeout Amount of time in minutes before the session times out
FIGURE 6 Connect VMM to Orchestrator
9. Click OK on the Add Configuration dialog box, and the SC 2012 Virtual Machine Manager dialog box.
As shown in Figure 7, the VMM integration pack contains 45 activities.
FIGURE 7 VMM activities for Orchestrator
These activities allow you to do the following:
- Apply Pending Service Update Apply a pending service update to a VMM service.
- Configure Service Deployment Configures a VMM service for deployment. Requires the service configuration name, service template name, and deployment target.
- Create Checkpoint Create a VM checkpoint. Requires the GUID of the VM.
- Create New Disk Creates a new virtual hard disk. Requires you specify IDE/SCSI, Dynamic or Fixed, File Name, Size, and VM GUID of VM to which the disk should be attached.
- Create New Disk From VHD Creates a new virtual hard disk from an existing virtual hard disk. Requires you specify IDE/SCSI, Dynamic or Fixed, file name of new disk, path to original disk, VM GUID of VM to which the disk should be attached.
- Create Network Adapter Creates a new network adapter and attaches it to a VM. Requires the VM GUID. You can also configure additional network adapter properties such as MAC Address, MAC Address Pool, Network Tag, Virtual Network ID, VLAN ID, and Logical Network.
- Create User Role Creates a VMM user role. Requires that you specify a role name and the VMM user role profile that the role will use.
- Create VM From Template Allows you to create a VM from an existing VMM template. Requires the Type Of VM, Destination, Path, Source Template Name, Cloud Capability Profile, and VM Name.
- Create VM From VHD Use this activity to create a VM from an existing virtual hard disk. Requires you to specify IDE or SCI, name of destination VHD, path, location of VHD from which you will be creating the VM, the name of the VM host, and the VM name.
- Create VM From VM Use this activity to create a new VM from an existing VM. Requires that you specify the type of VM to create, destination, VM path, the VM GUID of the source VM, and the name to apply to the newly created VM.
- Deploy Service Use this activity to create a VMM service using a VMM service template. Requires that you specify the new service’s name, and the VMM template name.
- Get Checkpoint Use this activity to retrieve VM checkpoint information.
- Get Cloud Get information to view information about clouds on the VMM management server.
- Get Network Adapter View information about VMM virtual network adapters.
- Get Service Use this activity to return data on all services on the VMM management server.
- Get Service Configuration You use this activity to generate information about service configurations on the VMM management server.
- Get Service Template This activity allows you to generate a list of all VMM service templates.
- Get Tier Provides information about all VMM tiers.
- Get User Role Use this activity to extract information about VMM user roles.
- Get User Role Quota Use this activity to return information about all user role quotas on VMM management server.
- Get VM This activity provides information on a specific VM.
- Get VM Host Use this activity to extract information about a virtualization host.
- Get VM Network This activity allows you to extract information about a VMM VM network.
- Get VM Subnet Use this activity to provide Orchestrator with information about a VMM VM subnet.
- Manage Checkpoint You can use this activity in an Orchestrator runbook to revert a VMM VM to a specific checkpoint, or to remove checkpoints that are no longer required.
- Move VM This activity allows you to move a VM to a new location.
- Remove User Role This activity deletes a user role from VMM.
- Remove VM Use this activity to delete a VM. This activity can only target a VM that is in a shutdown state.
- Repair VM Use this activity to issue a retry, undo, or dismiss action on a VMM VM.
- Resume VM This activity allows Orchestrator to resume a VM that is in a paused state.
- Run VMM PowerShell Script Use this activity to trigger a PowerShell script.
- Scale Tier In This activity allows Orchestrator to remove a virtual machine instance from a specific service tier.
- Scale Tier Out This activity allows Orchestrator to add a virtual machine instance to a specific service tier.
- Set Pending Service Update Use this activity to set a specific VMM service template as the pending service update.
- Shut Down VM This activity allows Orchestrator to shut down a stopped VM, taking the VM offline.
- Start VM Use this activity in an Orchestrator runbook to start a VM that has been paused, shut down, or stopped.
- Stop Service This activity will stop a VMM service.
- Stop VM Use this activity in an Orchestrator runbook to place a VM into a stopped state.
- Suspend VM This activity will place a VM into a suspended state.
- Update Disk This activity allows an Orchestrator runbook to change the properties of an existing disk.
- Update Network Adapter Use this activity to update the properties of an existing network adapter.
- Update User Role Property Updates the properties of a VMM user role.
- Update User Role Quota Updates the quota for a user role.
- Update VM Use this activity in an Orchestrator runbook to update a VM.
To configure self-service deployment using VMM, Service Manager, and Orchestrator, you need to perform the following general steps:
1. Create an Orchestrator runbook that takes inputs to create a VM. At a minimum this would involve the Create VM From Template Orchestrator Runbook activity, but more complex runbooks might extract more information about the VM, the template, and the Private Cloud to which the VM is deployed. You use the Initialize Data activity to collect parameters to be used with the runbook.
2. In Service Manager, create a runbook automation activity template, ensuring that the template is configured as Ready For Automation. Configure the runbook automation activity template to collect the parameters that will be used with the Orchestrator runbook. For example, this might be the VM template name and the private cloud name.
3. In Service Manager, create a service request template. In the template’s Activities tab, link the runbook automation activity that you configured, which leverages the Orchestrator runbook that deploys the VM.
4. Create a Request Offering and use it to collect the parameters from the person using the request offering that will be passed to the Orchestrator runbook to perform VM deployment.
5. Create and publish a Service Offering that links the request offering. This will update the Self-Service Portal. When complete, a user will use the portal to enter the parameters needed by the Orchestrator runbook to leverage VMM to deploy the requested VM.
Self-service with Windows Azure Pack for Windows Server
An additional method to provide self-service virtual machine deployment to users in an organization is to deploy the Windows Azure Pack for Windows Server. Windows Azure Pack for Windows Server runs on top of Windows Server 2012 R2 and System Center 2012 R2, and provides a self-service multi-tenant cloud that uses the same interface as Microsoft’s public cloud. Although not explicitly addressed by the 70-246 objectives, the Windows Azure Pack for Windows Server provides a pre-built alternative for organizations that want to provide on premises self-service virtual machine deployment.