private static SqlVirtualMachineModel prepareMachine(SqlVirtualMachineTestContext context, SqlVirtualMachineGroup group, VirtualMachine vm, string domain, string login, string password)
        {
            // Create the sql virtual machine
            SqlVirtualMachineModel sqlVM = CreateSqlVirtualMachine(context, virtualMachine: vm);

            // Join domain
            IVirtualMachineExtensionsOperations operations = context.client.computeClient.VirtualMachineExtensions;
            VirtualMachineExtension             joinDomain = operations.CreateOrUpdate(context.resourceGroup.Name, vm.Name, "joindomain", new VirtualMachineExtension()
            {
                Location  = context.location,
                Publisher = "Microsoft.Compute",
                VirtualMachineExtensionType = "JsonADDomainExtension",
                TypeHandlerVersion          = "1.3",
                AutoUpgradeMinorVersion     = true,
                Settings = new JoinDomainSettings()
                {
                    Name    = domain + ".com",
                    OUPath  = "",
                    User    = domain + "\\" + login,
                    Restart = "true",
                    Options = "3"
                },
                ProtectedSettings = new JoinDomainProtectedSettings()
                {
                    Password = password
                }
            });

            // Join sql virtual machine group
            context.getSqlClient().SqlVirtualMachines.CreateOrUpdate(context.resourceGroup.Name, sqlVM.Name, new SqlVirtualMachineModel()
            {
                Location = context.location,
                SqlVirtualMachineGroupResourceId = group.Id,
                VirtualMachineResourceId         = sqlVM.VirtualMachineResourceId,
                WsfcDomainCredentials            = new WsfcDomainCredentials()
                {
                    ClusterBootstrapAccountPassword = password,
                    ClusterOperatorAccountPassword  = password,
                    SqlServiceAccountPassword       = password
                }
            });

            return(sqlVM);
        }
示例#2
0
        public static VirtualMachineExtension CreateDomain(SqlVirtualMachineTestContext context, VirtualMachine vm, string domainName = default(string), string adminLogin = default(string), string adminPassword = default(string))
        {
            IVirtualMachineExtensionsOperations operations = context.client.computeClient.VirtualMachineExtensions;

            if (domainName == null)
            {
                domainName = Constants.domainName;
            }
            if (adminLogin == null)
            {
                adminLogin    = Constants.adminLogin;
                adminPassword = Constants.adminPassword;
            }
            VirtualMachineExtension domain = operations.CreateOrUpdate(context.resourceGroup.Name, vm.Name, "InstallDomainController", new VirtualMachineExtension
            {
                Location = context.location,
                VirtualMachineExtensionType = "DSC",

                Publisher               = "Microsoft.Powershell",
                TypeHandlerVersion      = "2.71",
                AutoUpgradeMinorVersion = true,
                Settings = new DomainSettings
                {
                    ModulesURL            = "https://sqlvirtualmachine.blob.core.windows.net/clitest/CreateADPDC.ps1.zip",
                    ConfigurationFunction = "CreateADPDC.ps1\\CreateADPDC",
                    Properties            = new DomainProperties
                    {
                        DomainName = domainName + ".com",
                        Admincreds = new DomainAdminCredentials
                        {
                            UserName = adminLogin,
                            Password = "******"
                        }
                    }
                },
                ProtectedSettings = new DomainProtectedSettings
                {
                    Items = new DomainProtectedSettingsItems
                    {
                        AdminPassword = adminPassword
                    }
                }
            });

            domain = operations.CreateOrUpdate(context.resourceGroup.Name, vm.Name, "Domain", new VirtualMachineExtension
            {
                Location = context.location,
                VirtualMachineExtensionType = "CustomScriptExtension",

                Publisher               = "Microsoft.Compute",
                TypeHandlerVersion      = "1.9",
                AutoUpgradeMinorVersion = true,

                Settings = new CustomScriptExtensionSettings
                {
                    FileUris         = new List <string>(new string[] { "https://strdstore.blob.core.windows.net/test/UPN.ps1" }),
                    CommandToExecute = "powershell -ExecutionPolicy Unrestricted -File UPN.ps1 " + adminLogin + " " + domainName + ".com " + Constants.sqlService + " " + adminPassword,
                    ContentVersion   = "1.0.0.0"
                }
            });
            return(domain);
        }