Run Command Args
data class RunCommandArgs(val errorBlobManagedIdentity: Output<RunCommandErrorBlobManagedIdentityArgs>? = null, val errorBlobUri: Output<String>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val outputBlobManagedIdentity: Output<RunCommandOutputBlobManagedIdentityArgs>? = null, val outputBlobUri: Output<String>? = null, val parameters: Output<List<RunCommandParameterArgs>>? = null, val protectedParameters: Output<List<RunCommandProtectedParameterArgs>>? = null, val runAsPassword: Output<String>? = null, val runAsUser: Output<String>? = null, val source: Output<RunCommandSourceArgs>? = null, val tags: Output<Map<String, String>>? = null, val virtualMachineId: Output<String>? = null) : ConvertibleToJava<RunCommandArgs>
Manages a Virtual Machine Run Command.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.network.NetworkInterface;
import com.pulumi.azure.network.NetworkInterfaceArgs;
import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
import com.pulumi.azure.authorization.UserAssignedIdentity;
import com.pulumi.azure.authorization.UserAssignedIdentityArgs;
import com.pulumi.azure.compute.LinuxVirtualMachine;
import com.pulumi.azure.compute.LinuxVirtualMachineArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineOsDiskArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineSourceImageReferenceArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineIdentityArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.storage.Container;
import com.pulumi.azure.storage.ContainerArgs;
import com.pulumi.azure.storage.Blob;
import com.pulumi.azure.storage.BlobArgs;
import com.pulumi.azure.storage.StorageFunctions;
import com.pulumi.azure.storage.inputs.GetAccountSASArgs;
import com.pulumi.azure.storage.inputs.GetAccountSASResourceTypesArgs;
import com.pulumi.azure.storage.inputs.GetAccountSASServicesArgs;
import com.pulumi.azure.storage.inputs.GetAccountSASPermissionsArgs;
import com.pulumi.azure.compute.RunCommand;
import com.pulumi.azure.compute.RunCommandArgs;
import com.pulumi.azure.compute.inputs.RunCommandSourceArgs;
import com.pulumi.azure.compute.inputs.RunCommandSourceScriptUriManagedIdentityArgs;
import com.pulumi.azure.compute.inputs.RunCommandErrorBlobManagedIdentityArgs;
import com.pulumi.azure.compute.inputs.RunCommandOutputBlobManagedIdentityArgs;
import com.pulumi.azure.compute.inputs.RunCommandParameterArgs;
import com.pulumi.azure.compute.inputs.RunCommandProtectedParameterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example-vnet")
.addressSpaces("10.0.0.0/16")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("internal")
.resourceGroupName(exampleResourceGroup.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.2.0/24")
.build());
var exampleNetworkInterface = new NetworkInterface("exampleNetworkInterface", NetworkInterfaceArgs.builder()
.name("example-nic")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
.name("internal")
.subnetId(exampleSubnet.id())
.privateIpAddressAllocation("Dynamic")
.build())
.build());
var exampleUserAssignedIdentity = new UserAssignedIdentity("exampleUserAssignedIdentity", UserAssignedIdentityArgs.builder()
.name("example-uai")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.build());
var exampleLinuxVirtualMachine = new LinuxVirtualMachine("exampleLinuxVirtualMachine", LinuxVirtualMachineArgs.builder()
.name("example-VM")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.size("Standard_B2s")
.adminUsername("adminuser")
.adminPassword("P@$$w0rd1234!")
.disablePasswordAuthentication(false)
.networkInterfaceIds(exampleNetworkInterface.id())
.osDisk(LinuxVirtualMachineOsDiskArgs.builder()
.caching("ReadWrite")
.storageAccountType("Premium_LRS")
.build())
.sourceImageReference(LinuxVirtualMachineSourceImageReferenceArgs.builder()
.publisher("Canonical")
.offer("0001-com-ubuntu-server-jammy")
.sku("22_04-lts")
.version("latest")
.build())
.identity(LinuxVirtualMachineIdentityArgs.builder()
.type("SystemAssigned, UserAssigned")
.identityIds(exampleUserAssignedIdentity.id())
.build())
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("exampleaccount")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder()
.scope(exampleAccount.id())
.roleDefinitionName("Storage Blob Data Contributor")
.principalId(exampleUserAssignedIdentity.principalId())
.build());
var exampleContainer = new Container("exampleContainer", ContainerArgs.builder()
.name("example-sc")
.storageAccountName(exampleAccount.name())
.containerAccessType("blob")
.build());
var example1 = new Blob("example1", BlobArgs.builder()
.name("script1")
.storageAccountName(exampleAccount.name())
.storageContainerName(exampleContainer.name())
.type("Block")
.sourceContent("echo 'hello world'")
.build());
var example2 = new Blob("example2", BlobArgs.builder()
.name("output")
.storageAccountName(exampleAccount.name())
.storageContainerName(exampleContainer.name())
.type("Append")
.build());
var example3 = new Blob("example3", BlobArgs.builder()
.name("error")
.storageAccountName(exampleAccount.name())
.storageContainerName(exampleContainer.name())
.type("Append")
.build());
final var example = StorageFunctions.getAccountSAS(GetAccountSASArgs.builder()
.connectionString(exampleAccount.primaryConnectionString())
.httpsOnly(true)
.signedVersion("2019-10-10")
.start("2023-04-01T00:00:00Z")
.expiry("2024-04-01T00:00:00Z")
.resourceTypes(GetAccountSASResourceTypesArgs.builder()
.service(false)
.container(false)
.object(true)
.build())
.services(GetAccountSASServicesArgs.builder()
.blob(true)
.queue(false)
.table(false)
.file(false)
.build())
.permissions(GetAccountSASPermissionsArgs.builder()
.read(true)
.write(true)
.delete(false)
.list(false)
.add(true)
.create(true)
.update(false)
.process(false)
.tag(false)
.filter(false)
.build())
.build());
var exampleRunCommand = new RunCommand("exampleRunCommand", RunCommandArgs.builder()
.name("example-vmrc")
.location(exampleResourceGroup.location())
.virtualMachineId(exampleLinuxVirtualMachine.id())
.source(RunCommandSourceArgs.builder()
.script("echo 'hello world'")
.build())
.build());
var example2RunCommand = new RunCommand("example2RunCommand", RunCommandArgs.builder()
.location(exampleResourceGroup.location())
.name("example2-vmrc")
.virtualMachineId(exampleLinuxVirtualMachine.id())
.outputBlobUri(example2.id())
.errorBlobUri(example3.id())
.runAsPassword("P@$$w0rd1234!")
.runAsUser("adminuser")
.source(RunCommandSourceArgs.builder()
.scriptUri(example1.id())
.scriptUriManagedIdentity(RunCommandSourceScriptUriManagedIdentityArgs.builder()
.clientId(exampleUserAssignedIdentity.clientId())
.build())
.build())
.errorBlobManagedIdentity(RunCommandErrorBlobManagedIdentityArgs.builder()
.clientId(exampleUserAssignedIdentity.clientId())
.build())
.outputBlobManagedIdentity(RunCommandOutputBlobManagedIdentityArgs.builder()
.clientId(exampleUserAssignedIdentity.clientId())
.build())
.parameters(RunCommandParameterArgs.builder()
.name("examplev1")
.value("val1")
.build())
.protectedParameters(RunCommandProtectedParameterArgs.builder()
.name("examplev2")
.value("val2")
.build())
.tags(Map.ofEntries(
Map.entry("environment", "terraform-examples"),
Map.entry("some_key", "some-value")
))
.build());
var example3RunCommand = new RunCommand("example3RunCommand", RunCommandArgs.builder()
.location(exampleResourceGroup.location())
.name("example3-vmrc")
.virtualMachineId(exampleLinuxVirtualMachine.id())
.runAsPassword("P@$$w0rd1234!")
.runAsUser("adminuser")
.errorBlobUri(Output.tuple(example3.id(), example.applyValue(getAccountSASResult -> getAccountSASResult)).applyValue(values -> {
var id = values.t1;
var example = values.t2;
return String.format("%s%s", id,example.applyValue(getAccountSASResult -> getAccountSASResult.sas()));
}))
.outputBlobUri(Output.tuple(example2.id(), example.applyValue(getAccountSASResult -> getAccountSASResult)).applyValue(values -> {
var id = values.t1;
var example = values.t2;
return String.format("%s%s", id,example.applyValue(getAccountSASResult -> getAccountSASResult.sas()));
}))
.source(RunCommandSourceArgs.builder()
.scriptUri(Output.tuple(example1.id(), example.applyValue(getAccountSASResult -> getAccountSASResult)).applyValue(values -> {
var id = values.t1;
var example = values.t2;
return String.format("%s%s", id,example.applyValue(getAccountSASResult -> getAccountSASResult.sas()));
}))
.build())
.parameters(RunCommandParameterArgs.builder()
.name("example-vm1")
.value("val1")
.build())
.tags(Map.ofEntries(
Map.entry("environment", "terraform-example-s"),
Map.entry("some_key", "some-value")
))
.build());
}
}
Content copied to clipboard
Import
An existing Virtual Machine Run Command can be imported into Terraform using the resource id
, e.g.
$ pulumi import azure:compute/runCommand:RunCommand example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/vm1/runCommands/rc1
Content copied to clipboard
Constructors
Link copied to clipboard
fun RunCommandArgs(errorBlobManagedIdentity: Output<RunCommandErrorBlobManagedIdentityArgs>? = null, errorBlobUri: Output<String>? = null, location: Output<String>? = null, name: Output<String>? = null, outputBlobManagedIdentity: Output<RunCommandOutputBlobManagedIdentityArgs>? = null, outputBlobUri: Output<String>? = null, parameters: Output<List<RunCommandParameterArgs>>? = null, protectedParameters: Output<List<RunCommandProtectedParameterArgs>>? = null, runAsPassword: Output<String>? = null, runAsUser: Output<String>? = null, source: Output<RunCommandSourceArgs>? = null, tags: Output<Map<String, String>>? = null, virtualMachineId: Output<String>? = null)