Estou emocionado em anunciar macOS suporte em Construtor de imagens EC2. Esse novo recurso permite criar e gerenciar imagens de máquina para cargas de trabalho do macOS, além do suporte existente para Home windows e Linux.
Uma imagem dourada é uma imagem de disco inicializável, também chamada de Imagem de máquina Amazon (AMI)pré-instalado com o sistema operacional e todas as ferramentas necessárias para suas cargas de trabalho. No contexto de um pipeline de integração contínua e implantação contínua (CI/CD), sua imagem dourada provavelmente contém a versão específica do seu sistema operacional (macOS) e todas as ferramentas e bibliotecas de desenvolvimento necessárias para construir e testar seus aplicativos (Código X, Through rápidae assim por diante.)
Desenvolver e gerenciar manualmente pipelines para criar imagens douradas do macOS consome tempo e desvia recursos talentosos de outras tarefas. E quando você tem pipelines existentes para criar imagens do Linux ou do Home windows, você precisa usar ferramentas diferentes para criar imagens do macOS, levando a um fluxo de trabalho desarticulado.
Por esses motivos, muitos de vocês têm solicitado a capacidade de gerenciar suas imagens do macOS usando o EC2 Picture Builder. Você deseja consolidar seus pipelines de imagens em sistemas operacionais e aproveitar as vantagens da automação e das integrações centradas na nuvem que o EC2 Picture Builder oferece.
Ao adicionar suporte ao macOS ao EC2 Picture Builder, agora você pode simplificar seus processos de gerenciamento de imagens e reduzir a sobrecarga operacional de manutenção de imagens do macOS. O EC2 Picture Builder se encarrega de testar, controlar versões e validar as imagens base em escala, economizando os custos associados à manutenção de suas versões preferidas do macOS.
Vamos ver isso em ação
Vamos criar um pipeline para criar uma AMI do macOS com Xcode 16. Você pode seguir um processo semelhante para instalar o Fastlane em suas AMIs.
Em um nível superior, existem quatro etapas principais.
- Defino um componente para cada ferramenta que desejo instalar. Um componente é um Documento YAML que informa ao EC2 Picture Builder qual aplicativo instalar e como. Neste exemplo, crio um componente personalizado para instalar o Xcode. Se quiser instalar o Fastlane, você cria um segundo componente. eu uso o
ExecuteBash
ação para inserir os comandos shell necessários para instalar o Xcode. - Eu defino um receita. Uma receita começa a partir de uma imagem base e lista os componentes que desejo instalar nela.
- Eu defino o configuração de infraestrutura Quero usar para construir minha imagem. Isso outline o conjunto de Amazon Elastic Compute Cloud (Amazon EC2) instâncias para construir a imagem. No meu caso, aloco um Host dedicado EC2 Mac em minha conta e faço referência a ele na configuração da infraestrutura.
- Eu crio um pipeline e um cronograma para rodar na infraestrutura com as receitas fornecidas e um fluxo de trabalho de imagem. Eu testo a AMI de saída e entrego no destino escolhido (minha conta ou outra conta)
É muito mais fácil do que parece. Vou te mostrar os passos do Console de gerenciamento da AWS. Também posso configurar o EC2 Picture Builder com o Interface de linha de comando da AWS (AWS CLI) ou escreva código usando um de nossos SDKs da AWS.
Etapa 1: crie um componente
Abro o console e seleciono Construtor de imagens EC2então Componentese finalmente Criar componente.
Eu seleciono uma base Sistema operacional de imagem e o Versões de sistema operacional compatíveis. Então, eu entro em um Nome do componente e Versão do componente. eu seleciono Definir o conteúdo do documento e insira este YAML como Contente.
identify: InstallXCodeDocument
description: This downloads and installs Xcode. Be sure you run `xcodeinstall authenticate -s us-east-1` out of your laptop computer first.
schemaVersion: 1.0
phases:
- identify: construct
steps:
- identify: InstallXcode
motion: ExecuteBash
inputs:
instructions:
- sudo -u ec2-user /choose/homebrew/bin/brew faucet sebsto/macos
- sudo -u ec2-user /choose/homebrew/bin/brew set up xcodeinstall
- sudo -u ec2-user /choose/homebrew/bin/xcodeinstall obtain -s us-east-1 --name "Xcode 16.xip"
- sudo -u ec2-user /choose/homebrew/bin/xcodeinstall set up --name "Xcode 16.xip"
- identify: validate
steps:
- identify: TestXcode
motion: ExecuteBash
inputs:
instructions:
- xcodebuild -version && xcode-select -p
Eu uso uma ferramenta que escrevi para baixar e instalar o Xcode a partir da linha de comando. xcodeinstall integra-se com Gerenciador de segredos da AWS para armazenar com segurança tokens de autenticação da internet. Antes de executar o pipeline, eu autentico do meu laptop computer com o comando xcodeinstall authenticate -s us-east-1
. Este comando inicia uma sessão com o servidor Apple e armazena o token da sessão no Secrets and techniques Supervisor. xcodeinstall usa esse token durante o pipeline de criação de imagem para baixar o Xcode.
Ao usar o xcodeinstall com o Secrets and techniques Supervisor, você deve dar permissão ao seu pipeline para acessar os segredos. Aqui está o documento de política que adicionei à função anexada à instância do EC2 usada pelo EC2 Picture Builder (na configuração de infraestrutura a seguir).
{
"Sid": "xcodeinstall",
"Impact": "Enable",
"Motion": (
"secretsmanager:GetSecretValue"
"secretsmanager:PutSecretValue"
),
"Useful resource": "arn:aws:secretsmanager:us-east-1::secret:xcodeinstall*"
}
Para testar e depurar esses componentes localmente, sem ter que esperar um longo ciclo para iniciar e reciclar a instância do EC2 Mac, você pode usar o Comando AWS Process Orchestrator e Executor (AWSTOE).
Passo 2: Crie uma receita
O próximo passo é criar uma receita. No console, eu seleciono Receitas de imagens e Criar receita de imagem.
Eu seleciono macOS como base Sistema operacional de imagem. Eu escolho macOS Sonoma ARM64 como Nome da imagem.
No Construir componentes seção, seleciono o componente Xcode 16 que acabei de criar durante a etapa 1.
Por fim, certifico-me de que o quantity seja grande o suficiente para armazenar o sistema operacional, o Xcode e minhas compilações. Eu normalmente seleciono 500 Gb gp3
quantity.
Etapas 3 e 4: Criar o pipeline (e a configuração da infraestrutura)
No Construtor de imagens EC2 página, eu seleciono Pipelines de imagens e Criar pipeline de imagem. Eu dou um nome ao meu pipeline e seleciono um Cronograma de construção. Para esta demonstração, seleciono um gatilho guide.
Em seguida, seleciono a receita que acabei de criar (Sonoma-Xcode).
Eu escolhi Fluxos de trabalho padrão para Definir processo de criação de imagem (não mostrado por questões de brevidade).
Eu crio ou seleciono um existente configuração de infraestrutura. No contexto da construção de imagens do macOS, você deve alocar Hosts dedicados Amazon EC2 primeiro. É aqui que escolho o tipo de instância que o EC2 Picture Builder usará para criar a AMI. Também posso selecionar opcionalmente minha nuvem privada digital (VPC), grupo de segurança, AWS Identification and Entry Administration (IAM) funções com permissões necessárias durante a preparação da imagem, par de chaves e todos os parâmetros que costumo selecionar quando inicio uma instância EC2.
Por fim, seleciono onde desejo distribuir a AMI de saída. Por padrão, ele permanece na minha conta. Mas também posso compartilhar ou copiar para outras contas.
Execute o pipeline
Agora estou pronto para executar o pipeline. eu seleciono Pipelines de imagensentão seleciono o pipeline que acabei de criar (Sonoma-Xcode). Do Ações menu, eu seleciono Executar pipeline.
Posso observar o progresso e os registros detalhados de Amazon CloudWatch.
Depois de um tempo, a AMI está criada e pronta para uso.
Testando minha AMI
Para finalizar a demonstração, inicio uma instância EC2 Mac com a AMI que acabei de criar (lembre-se de alocar primeiro um host dedicado ou reutilizar aquele que você usou para o EC2 Picture Builder).
Depois que a instância é iniciada, eu me conecto a ela usando shell seguro (SSH) e verifico se o Xcode está instalado corretamente.
Preço e disponibilidade
EC2 Picture Builder para macOS já está disponível em todas as regiões da AWS onde as instâncias EC2 Mac estão disponíveis: Leste dos EUA (Ohio, Norte da Virgínia), Oeste dos EUA (Oregon), Ásia-Pacífico (Mumbai, Seul, Cingapura, Sydney, Tóquio) e Europa (Frankfurt, Irlanda, Londres, Estocolmo) (nem todos os tipos de instância Mac estão disponíveis em todas as regiões).
Não há custo adicional e você só será cobrado pelos recursos utilizados durante a execução do pipeline, ou seja, o tempo de alocação do seu EC2 Mac Devoted Host, com um mínimo de 24 horas.
A visualização do suporte ao macOS no EC2 Picture Builder permite consolidar seus pipelines de imagens, automatizar seus processos de criação de imagens douradas e usar os benefícios das integrações focadas na nuvem na AWS. À medida que a plataforma EC2 Mac continua a se expandir com mais tipos de instância, esse novo recurso posiciona o EC2 Picture Builder como uma solução abrangente para gerenciamento de imagens em Home windows, Linux e macOS.