Criar uma AMI usando o Sysprep do Windows com o EC2Config
Quando você cria uma imagem de uma instância com o serviço EC2Config instalado, ele realiza tarefas específicas à medida que a imagem é preparada. Isso inclui trabalhar com o Sysprep do Windows. Para obter mais informações, consulte Fases do Sysprep do Windows.
Conteúdo
Ações do Sysprep do Windows
O Sysprep do Windows e o serviço do EC2Config executam as ações a seguir na preparação de uma imagem.
-
Quando você escolhe Encerrar com o Sysprep na caixa de diálogo Propriedades do EC2 Service), o sistema executa o comando ec2config.exe -sysprep.
-
O serviço EC2Config lê o conteúdo do arquivo
BundleConfig.xml. Esse arquivo está localizado no diretório a seguir, por padrão:C:\Program Files\Amazon\Ec2ConfigService\Settings.O arquivo
BundleConfig.xmlinclui as seguintes configurações. É possível alterar essas configurações:-
AutoSysprep: indica se o Sysprep do Windows deve ser usado automaticamente. Você não precisará mudar esse valor se estiver executando o Sysprep do Windows pela caixa de diálogo de propriedades do serviço do EC2. O valor padrão é
No. -
SetRDPCertificate: define um certificado autoassinado para o servidor de Desktop Remoto. Isso permite que você use com segurança o Remote Desktop Protocol (RDP) para se conectar à instância. Altere o valor para
Yesse as novas instâncias precisarem usar um certificado. Essa configuração não é usada com instâncias Windows Server 2012 porque esses sistemas operacionais podem gerar seus próprios certificados. O valor padrão éNo. -
SetPasswordAfterSysprep: define uma senha aleatória em uma instância recém-executada, criptografa-a com a chave de execução do usuário e gera a senha criptografada no console. Altere o valor para
Nose novas instâncias não precisarem ser definidas com uma senha criptografada aleatória. O valor padrão éYes. -
PreSysprepRunCmd: o local do comando para execução. Por padrão, o comando está localizado no seguinte diretório::
C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd
-
-
O sistema executa o
BeforeSysprep.cmd. Esse comando cria uma chave de registro da seguinte maneira:reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /fA chave de registro desabilita as conexões RDP até serem re-habilitadas. Desabilitar as conexões RDP é uma medida de segurança necessária, pois, na primeira sessão de inicialização após o Sysprep do Windows ser executado, há um breve período no qual o RDP permite conexões e a senha do Administrador fica em branco.
-
O serviço do EC2Config chama o Sysprep do Windows ao executar o seguinte comando:
sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
Generalizar a fase
-
A ferramenta remove informações específicas da imagem e as configurações, como nome de computador e SID. Se a instância pertencer a um domínio, ela será removida do domínio. O arquivo de resposta
sysprep2008.xmlinclui as seguintes configurações que afetam a fase:-
PersistAllDeviceInstalls: essa configuração impede que a Configuração do Windows remova e reconfigure dispositivos, o que acelera o processo de preparação de imagem, pois as AMIs da Amazon exigem a execução de determinados drivers e a nova detecção desses drivers tomaria o tempo.
-
DoNotCleanUpNonPresentDevices: essa configuração retém informações de plug and play para dispositivos que não estão presentes no momento.
-
-
O Sysprep do Windows fecha o SO à medida que se prepara para criar a AMI. O sistema executa uma nova instância ou inicia a instância original.
Fase especializada
O sistema gera requisitos específicos de SO, como um nome de computador e um SID. O sistema também executa as ações a seguir com base em configurações que você especifica no arquivo de resposta sysprep2008.xml.
-
CopyProfile: o Sysprep do Windows pode ser configurado para excluir todos os perfis de usuário, incluindo o perfil incorporado do Administrador. Essa configuração retém a conta de Administrador incorporada, de forma que todas as personalizações que você fizer nessa conta serão transferidas para a nova imagem. O valor padrão é Verdadeiro.
CopyProfile substitui o perfil padrão pelo perfil de administrador local existente. Todas as contas conectadas depois da execução de Sysprep do Windows receberão uma cópia desse perfil e do conteúdo dele no primeiro login.
Se você não tiver personalizações específicas do perfil do usuário que deseja transferir para a nova imagem, altere essa configuração para falso. O Sysprep do Windows removerá todos os perfis de usuário; isso economiza tempo e espaço em disco.
-
TimeZone: o fuso horário é definido como Coordinated Universal Time (UTC – Tempo universal coordenado), por padrão.
-
Comando síncrono com pedido 1: o sistema executa o comando a seguir, que habilita a conta do administrador e especifica o requisito de senha.
net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
-
Comando síncrono com pedido 2: o sistema vasculha a senha do administrador. Essa medida de segurança é criada para impedir que a instância fique acessível após o Sysprep do Windows ser concluído, caso você não tenha habilitado a configuração ec2setpassword.
C:\Program Files\Amazon\Ec2ConfigService\ScramblePassword.exe" -u Administrator
-
Comando síncrono com pedido 3: o sistema executa o seguinte comando:
C:\Program Files\Amazon\Ec2ConfigService\Scripts\SysprepSpecializePhase.cmd
Esse comando adiciona a seguinte chave de registro, que re-habilita a RDP:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Fase OOBE
-
Usando o arquivo de resposta do serviço EC2Config, o sistema especifica as seguintes configurações:
-
<InputLocale>en-US</InputLocale>
-
<SystemLocale>en-US</SystemLocale>
-
<UILanguage>en-US</UILanguage>
-
<UserLocale>en-US</UserLocale>
-
<HideEULAPage>true</HideEULAPage>
-
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
-
<NetworkLocation>Other</NetworkLocation>
-
<ProtectYourPC>3</ProtectYourPC>
-
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
-
<TimeZone>UTC</TimeZone>
-
<RegisteredOrganization>Amazon.com</RegisteredOrganization>
-
<RegisteredOwner>Amazon</RegisteredOwner>
nota
Durante as fases de generalização e especialização, o serviço EC2Config monitora o status do SO. Se o EC2Config detectar que o sistema operacional está na fase Sysprep, ele publicará a seguinte mensagem no log do sistema:
EC2ConfigMonitorState: 0 O Windows está sendo configurado. SysprepState=IMAGE_STATE_UNDEPLOYABLE -
-
Após a conclusão da fase OOBE, o sistema executa
SetupComplete.cmda partir do seguinte local:C:\Windows\Setup\Scripts\SetupComplete.cmd. Na AMIs públicas da Amazon antes de abril de 2015 este arquivo estava vazio e não executava nada na imagem. Em AMIs públicas posteriores a abril de 2015, o arquivo inclui o seguinte valor: call "C:\Program Files\Amazon\Ec2ConfigService\Scripts\PostSysprep.cmd". -
O sistema executa
PostSysprep.cmd, que realiza as seguintes operações:-
Define a senha do Administrador para não expirar. Se a senha expirou, os Administradores podem não conseguir fazer login.
-
Define o nome da máquina MSSQLServer (se instalada) para que o nome esteja em sincronia com a AMI.
-
Após Sysprep
Após o Sysprep do Windows ser concluído, os serviços do EC2Config enviam a seguinte mensagem para a saída do console:
Windows sysprep configuration complete. Message: Sysprep Start Message: Sysprep End
O EC2Config então executa as ações a seguir:
-
Lê o conteúdo do arquivo config.xml e lista todos os plug-ins habilitados.
-
Executa todos os plug-ins "Antes que o Windows esteja pronto" ao mesmo tempo.
-
Ec2SetPassword
-
Ec2SetComputerName
-
Ec2InitializeDrives
-
Ec2EventLog
-
Ec2ConfigureRDP
-
Ec2OutputRDPCert
-
Ec2SetDriveLetter
-
Ec2WindowsActivate
-
Ec2DynamicBootVolumeSize
-
-
Após estar concluído, envia uma mensagem "O Windows está pronto" para os logs do sistema de instância.
-
Executa todos os plug-ins "Após o Windows estar pronto" ao mesmo tempo.
-
Amazon CloudWatch Logs
-
UserData
-
AWS Systems Manager (Systems Manager)
-
Para obter mais informações sobre plug-ins do Windows, consulte Usar o serviço EC2Config para realizar tarefas durante a execução da instância herdada do sistema operacional Windows do EC2.
Executar o Sysprep do Windows com o serviço do EC2Config
Use o procedimento a seguir para criar uma AMI padronizada usando o Sysprep do Windows e o serviço do EC2Config.
-
No console do Amazon EC2, localize ou crie a AMI que deseja duplicar.
-
Execute e conecte-se à sua instância do Windows.
-
Personalize-a.
-
Especifique as definições de configuração no arquivo de resposta do serviço EC2Config:
C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml -
No menu Iniciar do Windows, escolha Todos os Programas e Configurações do EC2ConfigService.
-
Escolha a guia Image (Imagem) na caixa de diálogo Ec2 Service Properties (Propriedades do serviço Ec2). Para obter mais informações sobre as opções e as configurações da caixa de diálogo Ec2 Service Properties (Propriedades do serviço Ec2), consulte Propriedades do serviço Ec2.
-
Selecione uma opção para a senha do Administrador e selecione Shutdown with Sysprep (Desativação com Sysprep) ou Shutdown without Sysprep (Desativação sem Sysprep). O EC2Config edita os arquivos de configuração com base na opção de senha selecionada.
-
Random (Aleatório): o EC2Config gera uma senha, criptografa-a com a chave do usuário e exibe a senha criptografada no console. Nós desabilitamos essa configuração depois da primeira execução, de forma que essa senha persistirá se a instância for reinicializada ou parada e inicializada.
-
Especificar: a senha é armazenada no arquivo de resposta do Sysprep do Windows de forma não criptografada (texto não criptografado). Quando o Sysprep do Windows é executado em seguida, ele define a senha do Administrador. Se você fechar agora, a senha será definida imediatamente. Quando o serviço é reiniciado novamente, a senha do Administrador é removida. É importante recordar essa senha, pois você não poderá recuperá-la depois.
-
Manter existente: a senha existente para a conta do Administrador não muda quando o Sysprep do Windows é executado ou o EC2Config é reiniciado. É importante recordar essa senha, pois você não poderá recuperá-la depois.
-
-
Escolha OK.
Quando você receber uma solicitação para confirmar que deseja executar o Sysprep do Windows e desativar a instância, clique em Sim. Você verá que o EC2Config executa o Sysprep do Windows. Em seguida, você é desconectado da instância e a instância é desligada. Se você verificar a página Instances (Instâncias) no console do Amazon EC2, o estado da instância mudará de Running para Stopping e, finalmente, para Stopped. Nesse momento, é seguro criar uma AMI com base nessa instância.
Você pode invocar manualmente a ferramenta Sysprep do Windows pela linha de comando usando o seguinte comando:
"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep""
nota
As aspas duplas no comando não serão necessárias se o shell do seu CMD já estiver no diretório C:\Program Files\Amazon\EC2ConfigService\.
Contudo, é necessário ser muito cuidadoso para que as opções do arquivo XML especificadas na pasta Ec2ConfigService\Settings estejam corretas; caso contrário, pode não conseguir conectar-se à instância. Para obter mais informações sobre os arquivos de configurações, consulte Arquivos de configurações do EC2Config. Para ver um exemplo de como configurar e executar o Sysprep do Windows pela linha de comando, consulte Ec2ConfigService\Scripts\InstallUpdates.ps1.