Módulos de ação compatíveis com o gerenciador de componentes do AWSTOE - EC2 Image Builder

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Módulos de ação compatíveis com o gerenciador de componentes do AWSTOE

Os serviços de criação de imagens, como o EC2 Image Builder, AWSTOE usam módulos de ação para ajudar a configurar as instâncias do EC2 que são usadas para criar e testar imagens de máquina personalizadas. Esta seção descreve os recursos dos módulos de AWSTOE ação mais usados e como configurá-los, incluindo exemplos.

AWSTOE os componentes são criados com documentos YAML de texto simples. Para obter mais informações sobre sintaxe de documentos, consulte Use a estrutura de documentos de AWSTOE componentes para componentes personalizados.

nota

Todos os módulos de ação usam a mesma conta do atendente do Systems Manager quando são executados, os quais são root, no Linux, e NT Authority\SYSTEM, no Windows.

Módulos de execução geral

A seção a seguir contém detalhes dos módulos de ação que executam comandos e instruções de execução geral.

ExecuteBash

O módulo de ExecuteBashação permite que você execute scripts bash com códigos/comandos de shell embutidos. Este módulo é compatível com Linux.

Todos os comandos e instruções que você especifica no bloco de comandos são convertidos em um arquivo (por exemplo, input.sh) e executados com o bash shell. O resultado da execução do arquivo shell é o código de saída da etapa.

O ExecuteBashmódulo manipula as reinicializações do sistema se o script sair com um código de saída de. 194 Quando iniciado, o aplicativo executa uma das seguintes ações:

  • O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que iniciou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.

  • O aplicativo salva o executionstate atual, configura um gatilho de reinicialização para executar o aplicativo novamente e reinicia o sistema.

Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.

Entrada
Primitivo Descrição Tipo Obrigatório
commands Contém uma lista de instruções ou comandos a serem executados de acordo com a sintaxe do bash. O YAML de várias linhas é permitido. Listar Sim

Exemplo de entrada: antes e depois de uma reinicialização

name: ExitCode194Example description: This shows how the exit code can be used to restart a system with ExecuteBash schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecuteBash inputs: commands: - | REBOOT_INDICATOR=/var/tmp/reboot-indicator if [ -f "${REBOOT_INDICATOR}" ]; then echo 'The reboot file exists. Deleting it and exiting with success.' rm "${REBOOT_INDICATOR}" exit 0 fi echo 'The reboot file does not exist. Creating it and triggering a restart.' touch "${REBOOT_INDICATOR}" exit 194
Saída
Campo Descrição Tipo
stdout Saída padrão da execução do comando. string

Se você iniciar uma reinicialização e retornar o código de saída 194 como parte do módulo de ação, a compilação será retomada na mesma etapa do módulo de ação que iniciou a reinicialização. Se você iniciar uma reinicialização sem o código de saída, o processo de compilação poderá falhar.

Exemplo de saída: antes da reinicialização (primeira vez no documento)

{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }

Exemplo de saída: após a reinicialização, (segunda vez no documento)

{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }

ExecuteBinary

O módulo de ExecuteBinaryação permite que você execute arquivos binários com uma lista de argumentos de linha de comando.

O ExecuteBinarymódulo manipula as reinicializações do sistema se o arquivo binário sair com um código de saída 194 (Linux) ou 3010 (Windows). Quando iniciado, o aplicativo executa uma das seguintes ações:

  • O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que começou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.

  • O aplicativo salva o executionstate atual, configura um gatilho de reinicialização para executar o aplicativo novamente e reinicia o sistema.

Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.

Entrada
Primitivo Descrição Tipo Obrigatório
path O caminho para o arquivo binário para execução. String Sim
arguments Contém uma lista de argumentos de linha de comando a serem usados ao executar o binário. Lista de strings Não

Exemplo de entrada: install.NET

- name: "InstallDotnet" action: ExecuteBinary inputs: path: C:\PathTo\dotnet_installer.exe arguments: - /qb - /norestart
Saída
Campo Descrição Tipo
stdout Saída padrão da execução do comando. string

Exemplo de saída

{ "stdout": "success" }

ExecuteDocument

O módulo de ExecuteDocumentação adiciona suporte para documentos de componentes aninhados, executando vários documentos de componentes a partir de um documento. AWSTOE valida o documento que é passado no parâmetro de entrada em tempo de execução.

Restrições
  • Esse módulo de ação é executado uma vez, sem permitir novas tentativas e sem a opção de definir limites de timeout. ExecuteDocumentdefine os seguintes valores padrão e retorna um erro se você tentar alterá-los.

    • timeoutSeconds: -1

    • maxAttempts: 1

    nota

    Você pode deixar esses valores em branco e AWSTOE usar os valores padrão.

  • O aninhamento de documentos é permitido, com até três níveis de profundidade, mas não mais do que isso. Três níveis de aninhamento se traduzem em quatro níveis de documentos, já que o nível superior não está aninhado. Nesse cenário, o documento de nível mais baixo não deve chamar nenhum outro documento.

  • A execução cíclica de documentos de componentes não é permitida. Qualquer documento que se chame fora de uma estrutura em loop, ou que chame outro documento mais alto na cadeia de execução atual, inicia um ciclo que pode resultar em um loop infinito. Quando o AWSTOE detecta uma execução cíclica, ele interrompe a execução e registra a falha.

Restrições de nível de aninhamento para o módulo de ExecuteDocument ação.

Se um documento do componente tentar se executar sozinho ou executar qualquer um dos documentos do componente que estão mais acima na cadeia de execução atual, a execução falhará.

Entrada

Primitivo Descrição Tipo Obrigatório
document

Caminho do documento do componente. Entre as opções válidas estão:

  • Caminhos de arquivo locais

  • S3-URI

  • ARNs da versão de compilação do componente do EC2 Image Builder

String Sim
document-s3-bucket-owner

O ID da conta do proprietário do bucket do S3 onde são armazenados os documentos do componente. (Recomendado se você estiver usando URIs do S3 no documento do componente.)

String Não
phases

Fases a serem executadas no documento do componente, expressas como uma lista separada por vírgulas. Se nenhuma fase for especificada, todas as fases serão executadas.

String Não
parameters

Parâmetros de entrada que são passados para o documento do componente no runtime como pares valores-chave.

Lista de mapas de parâmetros Não

Entrada do mapa de parâmetros

Primitivo Descrição Tipo Obrigatório
name

O nome do parâmetro de entrada a ser passado para o documento do componente que o módulo de ExecuteDocumentação está executando.

String Sim
value

O valor do parâmetro de entrada.

String Sim
Exemplos de entrada

Os exemplos a seguir mostram variações das entradas do documento do componente, dependendo do caminho de instalação.

Exemplo de entrada: caminho do documento local

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: Sample-1.yaml phases: build parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

Exemplo de entrada: URI do S3 como caminho do documento

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: s3://my-bucket/Sample-1.yaml document-s3-bucket-owner: 123456789012 phases: build,validate parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

Exemplo de entrada: ARN do componente EC2 Image Builder como um caminho de documento

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0 phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

Usando um ForEach loop para executar documentos

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForEachLoop' forEach: - Sample-1.yaml - Sample-2.yaml inputs: document: "{{myForEachLoop.value}}" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2

Usando um loop For para executar documentos

# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForLoop' for: start: 1 end: 2 updateBy: 1 inputs: document: "Sample-{{myForLoop.value}}.yaml" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Saída

AWSTOE cria um arquivo de saída chamado detailedoutput.json toda vez que é executado. O arquivo contém detalhes sobre cada fase e etapa de cada documento do componente que é invocado durante a execução. Para o módulo de ExecuteDocumentação, você pode encontrar um breve resumo do tempo de execução no outputs campo e detalhes sobre as fases, etapas e documentos que ele é executado nodetailedOutput.

{ \"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\" }",

O objeto de resumo de saída de cada documento do componente contém os seguintes detalhes, conforme mostrado aqui, com valores de amostra:

  • executedStepCount“:1

  • "executionId":"12345a67-89bc-01de-2f34-abcd56789012"

  • “failedStepCount“:0

  • "failureMessage":""

  • “ignoredFailedStepContagem” :0

  • "logUrl":""

  • “status” :"sucesso”

Exemplo de saída

O exemplo a seguir mostra a saída do módulo de ExecuteDocumentação quando ocorre uma execução aninhada. Neste exemplo, o documento do componente main.yaml executa com êxito o documento do componente Sample-1.yaml.

{ "executionId": "12345a67-89bc-01de-2f34-abcd56789012", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "main.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteNestedDocument", "status": "success", "failureMessage": "", "timeoutSeconds": -1, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteDocument", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]", "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]", "loop": null, "detailedOutput": [ { "executionId": "98765f43-21ed-09cb-8a76-fedc54321098", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "Sample-1.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteBashStep", "status": "success", "failureMessage": "", "timeoutSeconds": 7200, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteBash", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]", "outputs": "[{\"stdout\":\"Hello World!\"}]", "loop": null, "detailedOutput": null }] }] }] }] }] }] }] }

ExecutePowerShell

O módulo de ExecutePowerShellação permite que você execute PowerShell scripts com códigos/comandos de shell embutidos. Este módulo oferece suporte à plataforma Windows e ao Windows PowerShell.

Todos os comandos/instruções especificados no bloco de comandos são convertidos em um arquivo de script (por exemplo,input.ps1) e executados usando o Windows. PowerShell O resultado da execução do arquivo shell é o código de saída.

O ExecutePowerShellmódulo manipula as reinicializações do sistema se o comando shell sair com um código de saída de. 3010 Quando iniciado, o aplicativo executa uma das seguintes ações:

  • O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que iniciou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.

  • Salva o executionstate atual, configura um gatilho de reinicialização para executar novamente o aplicativo e reinicializa o sistema.

Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.

Entrada
Primitivo Descrição Tipo Obrigatório
commands Contém uma lista de instruções ou comandos a serem executados de acordo com a PowerShell sintaxe. O YAML de várias linhas é permitido. Lista de strings

Sim. Deve especificar commands ou file, não ambos.

file Contém o caminho para um arquivo de PowerShell script. PowerShell será executado nesse arquivo usando o argumento da linha de -file comando. O caminho deve apontar para um arquivo do .ps1. String

Sim. Deve especificar commands ou file, não ambos.

Exemplo de entrada: antes e depois de uma reinicialização

name: ExitCode3010Example description: This shows how the exit code can be used to restart a system with ExecutePowerShell schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecutePowerShell inputs: commands: - | $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator' if (Test-Path -Path $rebootIndicator) { Write-Host 'The reboot file exists. Deleting it and exiting with success.' Remove-Item -Path $rebootIndicator -Force | Out-Null [System.Environment]::Exit(0) } Write-Host 'The reboot file does not exist. Creating it and triggering a restart.' New-Item -Path $rebootIndicator -ItemType File | Out-Null [System.Environment]::Exit(3010)
Saída
Campo Descrição Tipo
stdout Saída padrão da execução do comando. string

Se você executar uma reinicialização e retornar o código de saída 3010 como parte do módulo de ação, a compilação será retomada na mesma etapa do módulo de ação que iniciou a reinicialização. Se você executar uma reinicialização sem o código de saída, o processo de compilação poderá falhar.

Exemplo de saída: antes da reinicialização (primeira vez no documento)

{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }

Exemplo de saída: após a reinicialização, (segunda vez no documento)

{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }

Módulos de download e upload de arquivos

A seção a seguir contém detalhes dos módulos de ação que executam comandos e instruções de download e upload.

Baixe e faça upload de módulos de ação

S3Download

Com o módulo de ação S3Download, você pode baixar um objeto do Amazon S3, ou um conjunto de objetos, para um arquivo ou pasta local que você especifica com o caminho destination. Se algum arquivo já existir no local especificado e o sinalizador do overwrite estiver definido como verdadeiro, o S3Download substituirá o arquivo.

Sua localização source pode apontar para um objeto específico no Amazon S3, ou você pode usar um prefixo de chave com um caractere curinga de asterisco (*) para baixar um conjunto de objetos que correspondam ao caminho do prefixo da chave. Quando você especifica um prefixo de chave na sua localização source, o módulo de ação S3Download baixa tudo o que corresponde ao prefixo (arquivos e pastas incluídos). Certifique-se de que o prefixo da chave termine com uma barra, seguida por um asterisco (/*), para que você baixe tudo que corresponda ao prefixo. Por exemplo: s3://my-bucket/my-folder/*.

nota

Todas as pastas no caminho de destino devem existir antes do download, ou o download falhará.

Se a ação S3Download de um prefixo de chave especificado falhar durante um download, o conteúdo da pasta não voltará ao estado anterior à falha. A pasta de destino permanece como estava no momento da falha.

Casos de uso compatíveis

O módulo de ação S3Download é compatível com os seguintes casos de uso:

  • O objeto Amazon S3 é baixado para uma pasta local, conforme especificado no caminho de download.

  • Os objetos do Amazon S3 (com um prefixo de chave no caminho do arquivo do Amazon S3) são baixados para a pasta local especificada, que copia recursivamente todos os objetos do Amazon S3 que correspondem ao prefixo da chave na pasta local.

Requisitos do IAM

O perfil do IAM que você associa ao seu perfil de instância precisa ter permissões para executar o módulo de ação S3Download. As seguintes políticas do IAM devem ser anexadas ao perfil do IAM associada ao perfil de instância:

  • Arquivo único: s3:GetObject no bucket/objeto (por exemplo,). arn:aws:s3:::BucketName/*

  • Vários arquivos: s3:ListBucket no bucket/objeto (por exemplo, arn:aws:s3:::BucketName) e s3:GetObject no bucket/objeto (por exemplo, arn:aws:s3:::BucketName/*).

Entrada

Primitivo

Descrição

Tipo

Obrigatório

Padrão

source

O bucket do Amazon S3 que é a fonte para seu download. Você pode especificar um caminho para um objeto específico ou usar um prefixo de chave que termine com uma barra, seguida por um caractere curinga de asterisco (/*), para baixar um conjunto de objetos que correspondam ao prefixo da chave.

String

Sim

N/D

destination

O caminho local em que os objetos do Amazon S3 são baixados. Para baixar um único arquivo, especifique o nome do arquivo como parte do caminho. Por exemplo, /myfolder/package.zip.

String

Sim

N/D

expectedBucketOwner

ID da conta do proprietário esperada do bucket fornecido no caminho source. Recomendamos que você verifique a propriedade do bucket Amazon S3 especificado na fonte.

String

Não

N/D

overwrite

Quando definido como verdadeiro, se um arquivo com o mesmo nome já existir na pasta de destino no caminho local especificado, o arquivo de download substituirá o arquivo local. Quando definido como false, o arquivo existente no sistema local é protegido contra a substituição e o módulo de ação falha com um erro de download.

Por exemplo, Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download..

Booleano

Não

verdadeiro

nota

Nos exemplos a seguir, o caminho da pasta do Windows pode ser substituído por um caminho do Linux. Por exemplo, C:\myfolder\package.zip pode ser substituído por /myfolder/package.zip.

Exemplo de entrada: copiar um objeto do Amazon S3 para um arquivo local

O exemplo a seguir mostra como copiar um objeto do Amazon S3 para um arquivo local.

- name: DownloadMyFile action: S3Download inputs: - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022 overwrite: false - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022 overwrite: true - source: s3://mybucket/path/to/package.zip destination: C:\myfolder\package.zip expectedBucketOwner: 123456789022
Exemplo de entrada: copie todos os objetos do Amazon S3 para um bucket do Amazon S3 com prefixo de chave em uma pasta local

O exemplo a seguir mostra como copiar todos os objetos do Amazon S3 para um bucket do Amazon S3 para uma pasta local. O Amazon S3 não tem o conceito de pasta, portanto, todos os objetos que correspondem ao prefixo da chave são copiados. O número máximo de objetos que podem ser baixados é 1000.

- name: MyS3DownloadKeyprefix action: S3Download maxAttempts: 3 inputs: - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022 overwrite: false - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022 overwrite: true - source: s3://mybucket/path/to/* destination: C:\myfolder\ expectedBucketOwner: 123456789022
Saída

Nenhum.

S3Upload

Com o módulo de ação S3Upload, você pode carregar um arquivo de um arquivo ou pasta de origem para um local do Amazon S3. Você pode usar um curinga (*) no caminho especificado para o local de origem para carregar todos os arquivos cujo caminho corresponda ao padrão curinga.

Se a ação recursiva do S3Upload falhar, todos os arquivos que já foram carregados permanecerão no bucket Amazon S3 de destino.

Casos de uso compatíveis
  • Arquivo local para o objeto Amazon S3.

  • Arquivos locais na pasta (com curinga) para o prefixo de chave do Amazon S3.

  • Copie a pasta local (recurse deve ter sido definido como true) para o prefixo de chave do Amazon S3.

Requisitos do IAM

O perfil do IAM que você associa ao seu perfil de instância precisa ter permissões para executar o módulo de ação S3Upload. As seguintes políticas do IAM devem ser anexadas ao perfil do IAM associada ao perfil de instância. A política deve conceder permissões de s3:PutObject ao bucket de destino do Amazon S3. Por exemplo, arn:aws:s3:::BucketName/*.

Entrada

Primitivo

Descrição

Tipo

Obrigatório

Padrão

source

O caminho local onde os arquivos/pastas fonte se originam. O source suporta um caractere curinga de asterisco (*).

String

Sim

N/D

destination

O caminho para o bucket de destino do Amazon S3 onde os arquivos/pastas de origem são carregados.

String

Sim

N/D

recurse

Quando definido como true, executa o S3Upload recursivamente.

String

Não

false

expectedBucketOwner

O ID esperado da conta do proprietário para o bucket do Amazon S3 especificado no caminho de destino. Recomendamos que você verifique a propriedade do bucket Amazon S3 especificado no destino.

String

Não

N/D

Exemplo de entrada: copiar um arquivo local para um objeto do Amazon S3

O exemplo a seguir mostra como copiar um arquivo local para um objeto do Amazon S3.

- name: MyS3UploadFile action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\package.zip destination: s3://mybucket/path/to/package.zip expectedBucketOwner: 123456789022
Exemplo de entrada: copie todos os arquivos em uma pasta local para um bucket do Amazon S3 com prefixo de chave

O exemplo a seguir mostra como copiar todos os arquivos na pasta local para um bucket do Amazon S3 com prefixo de chave. Este exemplo não copia subpastas ou seu conteúdo porque o recurse não está especificado e o padrão é false.

- name: MyS3UploadMultipleFiles action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\* destination: s3://mybucket/path/to/ expectedBucketOwner: 123456789022
Exemplo de entrada: copiar recursivamente todos os arquivos e pastas de uma pasta local para um bucket do Amazon S3

O exemplo a seguir mostra como copiar recursivamente todos os arquivos e pastas de uma pasta local para um bucket do Amazon S3 com o prefixo de chaves.

- name: MyS3UploadFolder action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\myfolder\* destination: s3://mybucket/path/to/ recurse: true expectedBucketOwner: 123456789022
Saída

Nenhum.

WebDownload

O módulo de WebDownloadação permite que você baixe arquivos e recursos de um local remoto pelo protocolo HTTP/HTTPS (HTTPS é recomendado). Não há limites para o número ou o tamanho dos downloads. Este módulo lida com a lógica de repetição e recuo exponencial.

Cada operação de download recebe no máximo 5 tentativas de sucesso, de acordo com as entradas do usuário. Essas tentativas diferem das especificadas no campo maxAttempts do documento steps, que estão relacionadas às falhas do módulo de ação.

Esse módulo de ação manipula implicitamente os redirecionamentos. Todos os códigos de status HTTP, exceto 200, resultam em um erro.

Entrada
Primitivo Descrição Tipo Obrigatório Padrão
source O URL HTTP/HTTPS válido (é recomendado HTTPS), que segue o padrão RFC 3986. Expressões de encadeamento são permitidas. String

Sim

N/D
destination Um caminho absoluto ou relativo de arquivo ou pasta no sistema local. Os caminhos das pastas devem terminar com /. Se não terminarem com /, serão tratados como caminhos de arquivo. O módulo cria qualquer arquivo ou pasta necessário para downloads bem-sucedidos. Expressões de encadeamento são permitidas. String Sim N/D
overwrite Quando ativado, substitui todos os arquivos existentes no sistema local pelo arquivo ou recurso baixado. Quando não ativado, os arquivos existentes no sistema local não são sobrescritos e o módulo de ação falha com um erro. Quando a substituição está ativada e a soma de verificação e o algoritmo são especificados, o módulo de ação baixa o arquivo somente se a soma de verificação e o hash de qualquer arquivo preexistente não corresponderem. Booleano Não true
checksum Quando você especifica a soma de verificação, ela é comparada com o hash do arquivo baixado que é gerado com o algoritmo fornecido. Para que a verificação do arquivo seja ativada, a soma de verificação e o algoritmo devem ser fornecidos. Expressões de encadeamento são permitidas. String Não N/D
algorithm O algoritmo usado para calcular a soma de verificação. As opções são MD5, SHA1, SHA256 e SHA512. Para que a verificação do arquivo seja ativada, a soma de verificação e o algoritmo devem ser fornecidos. Expressões de encadeamento são permitidas. String Não N/D
ignoreCertificateErrors A validação do certificado SSL é ignorada quando ativada. Booleano Não false
Saída
Primitivo Descrição Tipo
destination String delimitada por caracteres de nova linha que especifica o caminho de destino em que os arquivos ou recursos baixados são armazenados. String

Exemplo de entrada: baixar arquivo remoto no destino local

- name: DownloadRemoteFile action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\testfolder\package.zip

Saída:

{ "destination": "C:\\testfolder\\package.zip" }

Exemplo de entrada: baixe mais de um arquivo remoto em mais de um destino local

- name: DownloadRemoteFiles action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: /tmp/java14_renamed.zip - source: https://testdomain/path/to/java14.zip destination: /tmp/create_new_folder_and_add_java14_as_zip/

Saída:

{ "destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip" }

Exemplo de entrada: baixe um arquivo remoto sem sobrescrever o destino local e baixe outro arquivo remoto com verificação de arquivo

- name: DownloadRemoteMultipleProperties action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder\java14_renamed.zip overwrite: false - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder_and_add_java14_as_zip\ checksum: ac68bbf921d953d1cfab916cb6120864 algorithm: MD5 overwrite: true

Saída:

{ "destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip" }

Exemplo de entrada: baixe o arquivo remoto e ignore a validação da certificação SSL

- name: DownloadRemoteIgnoreValidation action: WebDownload maxAttempts: 3 inputs: - source: https://www.bad-ssl.com/resource destination: /tmp/downloads/ ignoreCertificateErrors: true

Saída:

{ "destination": "/tmp/downloads/resource" }

Módulos de operação do sistema de arquivos

A seção a seguir contém detalhes dos módulos de ação que executam comandos e instruções de operação do sistema de arquivos.

AppendFile

O módulo de AppendFileação adiciona conteúdo especificado ao conteúdo preexistente de um arquivo.

Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8), você poderá especificar o valor da codificação do arquivo usando a opção encoding. Por padrão, presume-se que utf-16 e utf-32 usam a codificação little-endian.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • O arquivo especificado não existe no runtime.

  • Você não tem permissões de gravação para modificar o conteúdo do arquivo.

  • O módulo encontra um erro durante a operação do arquivo.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Sim
content O conteúdo a ser anexado ao arquivo. String Não String vazia N/D Sim
encoding O padrão de codificação. String Não utf8 utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE e utf-32-BE. O valor da opção de codificação não diferencia maiúsculas de minúsculas. Sim

Exemplo de entrada: anexar arquivo sem codificação (Linux)

- name: AppendingFileWithOutEncodingLinux action: AppendFile inputs: - path: ./Sample.txt content: "The string to be appended to the file"

Exemplo de entrada: anexar arquivo sem codificação (Windows)

- name: AppendingFileWithOutEncodingWindows action: AppendFile inputs: - path: C:\MyFolder\MyFile.txt content: "The string to be appended to the file"

Exemplo de entrada: anexar arquivo com codificação (Linux)

- name: AppendingFileWithEncodingLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32

Exemplo de entrada: anexar arquivo com codificação (Windows)

- name: AppendingFileWithEncodingWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32

Exemplo de entrada: anexar arquivo com string vazio (Linux)

- name: AppendingEmptyStringLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt

Exemplo de entrada: anexar arquivo com string vazio (Windows)

- name: AppendingEmptyStringWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt
Saída

Nenhum.

CopyFile

O módulo de CopyFileação copia arquivos da fonte especificada para o destino especificado. Por padrão, o módulo cria recursivamente a pasta de destino se ela não existir no runtime.

Se um arquivo com o nome especificado já existir na pasta especificada, o módulo de ação, por padrão, substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro. Essa opção funciona da mesma forma que o comando cp no Linux, que substitui por padrão.

O nome do arquivo de origem pode incluir um curinga (*). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/ ou \). Se caracteres curinga forem incluídos no nome do arquivo de origem, todos os arquivos que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de um arquivo usando um caractere curinga, a entrada para a opção destination deverá terminar com um separador de caminho de arquivo (/ ou \), que indica que a entrada de destino é uma pasta.

Se o nome do arquivo de destino for diferente do nome do arquivo de origem, você poderá especificar o nome do arquivo de destino usando a opção destination. Se você não especificar um nome de arquivo de destino, o nome do arquivo de origem será usado para criar o arquivo de destino. Qualquer texto que siga o último separador de caminho de arquivo (/ ou \) será tratado como o nome do arquivo. Se você quiser usar o mesmo nome de arquivo do arquivo de origem, a entrada da opção destination deverá terminar com um separador de caminho de arquivo (/ ou \).

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para criar um arquivo na pasta especificada.

  • Os arquivos de origem não existem no runtime.

  • Já existe uma pasta com o nome de arquivo especificado e a overwriteopção está definida como false.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
source O caminho do arquivo de origem. String Sim N/D N/D Sim
destination O caminho do arquivo de destino. String Sim N/D N/D Sim
overwrite Quando definido como false, os arquivos de destino não serão substituídos quando já houver um arquivo no local especificado com o nome especificado. Booleano Não true N/D Sim

Exemplo de entrada: copiar um arquivo (Linux)

- name: CopyingAFileLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt

Exemplo de entrada: copiar um arquivo (Windows)

- name: CopyingAFileWindows action: CopyFile inputs: - source: C:\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt

Exemplo de entrada: copiar um arquivo usando o nome do arquivo de origem (Linux)

- name: CopyingFileWithSourceFileNameLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/

Exemplo de entrada: copiar um arquivo usando o nome do arquivo de origem (Windows)

- name: CopyingFileWithSourceFileNameWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\

Exemplo de entrada: copiar um arquivo usando o caractere curinga (Linux)

- name: CopyingFilesWithWildCardLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

Exemplo de entrada: copiar um arquivo usando o caractere curinga (Windows)

- name: CopyingFilesWithWildCardWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

Exemplo de entrada: copiar um arquivo sem substituir (Linux)

- name: CopyingFilesWithoutOverwriteLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false

Exemplo de entrada: copiar um arquivo sem substituir (Windows)

- name: CopyingFilesWithoutOverwriteWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
Saída

Nenhum.

CopyFolder

O módulo de CopyFolderação copia uma pasta da origem especificada para o destino especificado. A entrada para a opção source é a pasta a ser copiada, e a entrada para a opção destination é a pasta em que o conteúdo da pasta de origem é copiado. Por padrão, o módulo cria recursivamente a pasta de destino se ela não existir no runtime.

Se uma pasta com o nome especificado já existir na pasta especificada, o módulo de ação, por padrão, substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.

O nome da pasta de origem pode incluir um curinga (*). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/ ou \). Se caracteres curinga forem incluídos no nome da pasta de origem, todas as pastas que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser copiar mais de uma pasta usando um caractere curinga, a entrada para a opção destination deverá terminar com um separador de caminho de arquivo (/ ou \), que indica que a entrada de destino é uma pasta.

Se o nome da pasta de destino for diferente do nome da pasta de origem, você poderá especificar o nome do arquivo da pasta usando a opção destination. Se você não especificar um nome da pasta de destino, o nome da pasta de origem será usado para criar a pasta de destino. Qualquer texto que siga o último separador de caminho de arquivo (/ ou \) será tratado como o nome da pasta. Se você quiser usar o mesmo nome de pasta da pasta de origem, a entrada da opção destination deverá terminar com um separador de caminho de arquivo (/ ou \).

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para criar uma pasta na pasta especificada.

  • As pastas de origem não existem no runtime.

  • Já existe uma pasta com o nome de pasta especificado e a overwriteopção está definida como false.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
source O caminho da pasta de origem. String Sim N/D N/D Sim
destination O caminho da pasta de destino. String Sim N/D N/D Sim
overwrite Quando definido como false, as pastas de destino não serão substituídas quando já houver uma pasta no local especificado com o nome especificado. Booleano Não true N/D Sim

Exemplo de entrada: copiar uma pasta (Linux)

- name: CopyingAFolderLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder

Exemplo de entrada: copiar uma pasta (Windows)

- name: CopyingAFolderWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder

Exemplo de entrada: copiar uma pasta usando o nome da pasta de origem (Linux)

- name: CopyingFolderSourceFolderNameLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/

Exemplo de entrada: copiar uma pasta usando o nome da pasta de origem (Windows)

- name: CopyingFolderSourceFolderNameWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\

Exemplo de entrada: copiar uma pasta usando o caractere curinga (Linux)

- name: CopyingFoldersWithWildCardLinux action: CopyFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

Exemplo de entrada: copiar uma pasta usando o caractere curinga (Windows)

- name: CopyingFoldersWithWildCardWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

Exemplo de entrada: copiar uma pasta sem substituir (Linux)

- name: CopyingFoldersWithoutOverwriteLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder overwrite: false

Exemplo de entrada: copiar uma pasta sem substituir (Windows)

- name: CopyingFoldersWithoutOverwrite action: CopyFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder overwrite: false
Saída

Nenhum.

CreateFile

O módulo de CreateFileação cria um arquivo em um local especificado. Por padrão, se necessário, o módulo também cria as pastas principais recursivamente.

Se um arquivo já existir na pasta especificada, o módulo de ação, por padrão, truncará ou substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro.

Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8), você poderá especificar o valor da codificação do arquivo usando a opção encoding. Por padrão, presume-se que utf-16 e utf-32 usam a codificação little-endian.

owner,group e permissions são entradas opcionais. A entrada para permissions deve ser um valor de string. Os arquivos são criados com valores padrão quando não são fornecidos. Essas opções não são suportadas nas plataformas Windows. Esse módulo de ação valida e retorna um erro se as opções owner, group e permissions forem usadas em plataformas Windows.

Esse módulo de ação pode criar um arquivo com permissões definidas pelo valor padrão umask do sistema operacional. Você deve definir o valor umask se quiser substituir o valor padrão.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para criar um arquivo ou uma pasta na pasta parent especificada.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Sim
content O conteúdo do texto do arquivo. String Não N/D N/D Sim
encoding O padrão de codificação. String Não utf8 utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE e utf-32-BE. O valor da opção de codificação não diferencia maiúsculas de minúsculas. Sim
owner O nome do usuário ou ID. String Não N/D N/D Não compatível com Windows.
group O nome ou ID do grupo. String Não O usuário atual. N/D Não compatível com Windows.
permissions As permissões de arquivo. String Não 0666 N/D Não compatível com Windows.
overwrite Se o nome do arquivo especificado já existir, definir esse valor como false evita que o arquivo seja truncado ou substituído por padrão. Booleano Não true N/D Sim

Exemplo de entrada: criar um arquivo sem substituir (Linux)

- name: CreatingFileWithoutOverwriteLinux action: CreateFile inputs: - path: /home/UserName/Sample.txt content: The text content of the sample file. overwrite: false

Exemplo de entrada: criar um arquivo sem substituir (Windows)

- name: CreatingFileWithoutOverwriteWindows action: CreateFile inputs: - path: C:\Temp\Sample.txt content: The text content of the sample file. overwrite: false

Exemplo de entrada: criar um arquivo com propriedades do arquivo

- name: CreatingFileWithFileProperties action: CreateFile inputs: - path: SampleFolder/Sample.txt content: The text content of the sample file. encoding: UTF-16 owner: Ubuntu group: UbuntuGroup permissions: 0777 - path: SampleFolder/SampleFile.txt permissions: 755 - path: SampleFolder/TextFile.txt encoding: UTF-16 owner: root group: rootUserGroup

Exemplo de entrada: criar um arquivo sem propriedades do arquivo

- name: CreatingFileWithoutFileProperties action: CreateFile inputs: - path: ./Sample.txt - path: Sample1.txt

Exemplo de entrada: criar um arquivo vazio para ignorar uma seção no script de limpeza do Linux

- name: CreateSkipCleanupfile action: CreateFile inputs: - path: <skip section file name>

Para obter mais informações, consulte Substitua o script de limpeza do Linux.

Saída

Nenhum.

CreateFolder

O módulo de CreateFolderação cria uma pasta em um local especificado. Por padrão, se necessário, o módulo também cria as pastas principais recursivamente.

Se a pasta já existir na pasta especificada, o módulo de ação, por padrão, truncará ou substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.

owner,group e permissions são entradas opcionais. A entrada para permissions deve ser um valor de string. Essas opções não são suportadas nas plataformas Windows. Esse módulo de ação valida e retorna um erro se as opções owner, group e permissions forem usadas em plataformas Windows.

Esse módulo de ação pode criar uma pasta com permissões definidas pelo valor padrão umask do sistema operacional. Você deve definir o valor umask se quiser substituir o valor padrão.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem permissão para criar uma pasta no local especificado.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho da pasta. String Sim N/D N/D Sim
owner O nome do usuário ou ID. String Não O usuário atual. N/D Não compatível com Windows.
group O nome ou ID do grupo. String Não O grupo do usuário atual. N/D Não compatível com Windows.
permissions As permissões da pasta. String Não 0777 N/D Não compatível com Windows.
overwrite Se o nome do arquivo especificado já existir, definir esse valor como false evita que o arquivo seja truncado ou substituído por padrão. Booleano Não true N/D Sim

Exemplo de entrada: criar uma pasta (Linux)

- name: CreatingFolderLinux action: CreateFolder inputs: - path: /Sample/MyFolder/

Exemplo de entrada: criar uma pasta (Windows)

- name: CreatingFolderWindows action: CreateFolder inputs: - path: C:\MyFolder

Exemplo de entrada: criar uma pasta especificando as propriedades da pasta

- name: CreatingFolderWithFolderProperties action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ owner: SampleOwnerName group: SampleGroupName permissions: 0777 - path: /Sample/MyFolder/SampleFoler/ permissions: 777

Exemplo de entrada: criar uma pasta que substitua a pasta existente, se houver uma.

- name: CreatingFolderWithOverwrite action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ overwrite: true
Saída

Nenhum.

O módulo de CreateSymlinkação cria links simbólicos ou arquivos que contêm uma referência a outro arquivo. Este módulo não é compatível com plataformas Windows.

A entrada para as opções path e target pode ser um caminho absoluto ou relativo. Se a entrada da opção path for um caminho relativo, ela será substituída pelo caminho absoluto quando o link for criado.

Por padrão, quando um link com o nome especificado já existe na pasta especificada, o módulo de ação retorna um erro. Você pode substituir esse comportamento padrão configurando a opção force como true. Quando a opção force estiver definida como true, o módulo substituirá o link existente.

Se uma pasta principal não existir, o módulo de ação cria a pasta recursivamente, por padrão.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • O arquivo de destino não existe no runtime.

  • Já existe um arquivo de link não simbólico com o nome especificado.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Não compatível com Windows.
target O caminho do arquivo de destino para o qual o link simbólico aponta. String Sim N/D N/D Não compatível com Windows.
force Força a criação de um link quando já existe um link com o mesmo nome. Booleano Não false N/D Não compatível com Windows.

Exemplo de entrada: criar um link simbólico que força a criação de um link

- name: CreatingSymbolicLinkWithForce action: CreateSymlink inputs: - path: /Folder2/Symboliclink.txt target: /Folder/Sample.txt force: true

Exemplo de entrada: criar um link simbólico que não força a criação de um link

- name: CreatingSymbolicLinkWithOutForce action: CreateSymlink inputs: - path: Symboliclink.txt target: /Folder/Sample.txt
Saída

Nenhum.

DeleteFile

O módulo de DeleteFileação exclui um arquivo ou arquivos em um local especificado.

A entrada de path deve ser um caminho de arquivo válido ou um caminho de arquivo com um caractere curinga (*) no nome do arquivo. Quando caracteres curinga são especificados no nome do arquivo, todos os arquivos na mesma pasta que correspondam ao curinga são excluídos.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a operação solicitada.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Sim

Exemplo de entrada: excluir um único arquivo (Linux)

- name: DeletingSingleFileLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/Sample.txt

Exemplo de entrada: excluir um único arquivo (Windows)

- name: DeletingSingleFileWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\Sample.txt

Exemplo de entrada: excluir um arquivo que termina com “log” (Linux)

- name: DeletingFileEndingWithLogLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*log

Exemplo de entrada: excluir um arquivo que termina com “log” (Windows)

- name: DeletingFileEndingWithLogWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*log

Exemplo de entrada: excluir todos os arquivos em uma pasta especificada (Linux)

- name: DeletingAllFilesInAFolderLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*

Exemplo de entrada: excluir todos os arquivos em uma pasta especificada (Windows)

- name: DeletingAllFilesInAFolderWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*
Saída

Nenhum.

DeleteFolder

O módulo de DeleteFolderação exclui pastas.

Se a pasta não estiver vazia, você deverá definir a force opção true para remover a pasta e seu conteúdo. Se você não definir a opção force como true e a pasta que você está tentando excluir não estiver vazia, o módulo de ação retornará um erro. O valor padrão da opção force é false.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a operação solicitada.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho da pasta. String Sim N/D N/D Sim
force Remove a pasta, esteja ela vazia ou não. Booleano Não false N/D Sim

Exemplo de entrada: excluir uma pasta que não esteja vazia usando a force opção (Linux)

- name: DeletingFolderWithForceOptionLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/ force: true

Exemplo de entrada: excluir uma pasta que não esteja vazia usando a force opção (Windows)

- name: DeletingFolderWithForceOptionWindows action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\ force: true

Exemplo de entrada: excluir uma pasta (Linux)

- name: DeletingFolderWithOutForceLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/

Exemplo de entrada: excluir uma pasta (Windows)

- name: DeletingFolderWithOutForce action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\
Saída

Nenhum.

ListFiles

O módulo de ListFilesação lista os arquivos em uma pasta especificada. Quando a opção recursiva está definida como true, ela lista os arquivos nas subpastas. Por padrão, este módulo não lista arquivos em subpastas.

Para listar todos os arquivos com nomes que correspondam a um padrão especificado, use a opção fileNamePattern para fornecer o padrão. A opção fileNamePattern aceita o valor curinga (*). Quando o fileNamePattern é fornecido, todos os arquivos que correspondem ao formato de nome de arquivo especificado são retornados.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • A pasta especificada não existe no runtime.

  • Você não tem a permissão para criar um arquivo ou uma pasta na pasta parent especificada.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho da pasta. String Sim N/D N/D Sim
fileNamePattern O padrão a ser correspondido ao listar todos os arquivos com nomes que correspondam ao padrão. String Não N/D N/D Sim
recursive Lista os arquivos na pasta recursivamente. Booleano Não false N/D Sim

Exemplo de entrada: listar todos os arquivos em uma pasta especificada (Linux)

- name: ListingFilesInSampleFolderLinux action: ListFiles inputs: - path: /Sample/MyFolder/Sample

Exemplo de entrada: listar todos os arquivos em uma pasta especificada (Windows)

- name: ListingFilesInSampleFolderWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\Sample

Exemplo de entrada: listar arquivos que terminam com “log” (Linux)

- name: ListingFilesWithEndingWithLogLinux action: ListFiles inputs: - path: /Sample/MyFolder/ fileNamePattern: *log

Exemplo de entrada: listar arquivos que terminam com “log” (Windows)

- name: ListingFilesWithEndingWithLogWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\ fileNamePattern: *log

Exemplo de entrada: listar arquivos recursivamente

- name: ListingFilesRecursively action: ListFiles inputs: - path: /Sample/MyFolder/ recursive: true
Saída
Primitivo Descrição Tipo
files A lista de arquivos. String

Exemplo de saída

{ "files": "/sample1.txt,/sample2.txt,/sample3.txt" }

MoveFile

O módulo de MoveFileação move arquivos da fonte especificada para o destino especificado.

Se um arquivo já existir na pasta especificada, o módulo de ação, por padrão, substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro. Essa opção funciona da mesma forma que o comando mv no Linux, que substitui por padrão.

O nome do arquivo de origem pode incluir um curinga (*). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/ ou \). Se caracteres curinga forem incluídos no nome do arquivo de origem, todos os arquivos que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de um arquivo usando um caractere curinga, a entrada para a opção destination deverá terminar com um separador de caminho de arquivo (/ ou \), que indica que a entrada de destino é uma pasta.

Se o nome do arquivo de destino for diferente do nome do arquivo de origem, você poderá especificar o nome do arquivo de destino usando a opção destination. Se você não especificar um nome de arquivo de destino, o nome do arquivo de origem será usado para criar o arquivo de destino. Qualquer texto que siga o último separador de caminho de arquivo (/ ou \) será tratado como o nome do arquivo. Se você quiser usar o mesmo nome de arquivo do arquivo de origem, a entrada da opção destination deverá terminar com um separador de caminho de arquivo (/ ou \).

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para criar um arquivo na pasta especificada.

  • Os arquivos de origem não existem no runtime.

  • Já existe uma pasta com o nome de arquivo especificado e a overwriteopção está definida como false.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
source O caminho do arquivo de origem. String Sim N/D N/D Sim
destination O caminho do arquivo de destino. String Sim N/D N/D Sim
overwrite Quando definido como false, os arquivos de destino não serão substituídos quando já houver um arquivo no local especificado com o nome especificado. Booleano Não true N/D Sim

Exemplo de entrada: mover um arquivo (Linux)

- name: MovingAFileLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt

Exemplo de entrada: mover um arquivo (Windows)

- name: MovingAFileWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt

Exemplo de entrada: mover um arquivo usando o nome do arquivo de origem (Linux)

- name: MovingFileWithSourceFileNameLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/

Exemplo de entrada: mover um arquivo usando o nome do arquivo de origem (Windows)

- name: MovingFileWithSourceFileNameWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder

Exemplo de entrada: mover um arquivo usando o caractere curinga (Linux)

- name: MovingFilesWithWildCardLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

Exemplo de entrada: mover um arquivo usando o caractere curinga (Windows)

- name: MovingFilesWithWildCardWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder

Exemplo de entrada: mover um arquivo sem substituir (Linux)

- name: MovingFilesWithoutOverwriteLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false

Exemplo de entrada: mover um arquivo sem substituir (Windows)

- name: MovingFilesWithoutOverwrite action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
Saída

Nenhum.

MoveFolder

O módulo de MoveFolderação move as pastas da origem especificada para o destino especificado. A entrada para a opção source é a pasta a ser movida, e a entrada para a opção destination é a pasta para a qual o conteúdo das pastas de origem é movido.

Se a pasta parent de destino ou a entrada para a opção destination não existirem no runtime, o comportamento padrão do módulo é criar a pasta no destino especificado recursivamente.

Se uma pasta igual à pasta de origem já existir na pasta de destino, o módulo de ação, por padrão, substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false. Quando a opção de substituição estiver definida como false e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.

O nome da pasta de origem pode incluir um curinga (*). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/ ou \). Se caracteres curinga forem incluídos no nome da pasta de origem, todas as pastas que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de uma pasta usando um caractere curinga, a entrada para a opção destination deverá terminar com um separador de caminho de arquivo (/ ou \), que indica que a entrada de destino é uma pasta.

Se o nome da pasta de destino for diferente do nome da pasta de origem, você poderá especificar o nome do arquivo da pasta usando a opção destination. Se você não especificar um nome da pasta de destino, o nome da pasta de origem será usado para criar a pasta de destino. Qualquer texto que siga o último separador de caminho de arquivo (/ ou \) será tratado como o nome da pasta. Se você quiser usar o mesmo nome de pasta da pasta de origem, a entrada da opção destination deverá terminar com um separador de caminho de arquivo (/ ou \).

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para criar uma pasta na pasta de destino.

  • As pastas de origem não existem no runtime.

  • Já existe uma pasta com o nome especificado e a opção overwrite está definida como false.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
source O caminho da pasta de origem. String Sim N/D N/D Sim
destination O caminho da pasta de destino. String Sim N/D N/D Sim
overwrite Quando definido como false, as pastas de destino não serão substituídas quando já houver uma pasta no local especificado com o nome especificado. Booleano Não true N/D Sim

Exemplo de entrada: mover uma pasta (Linux)

- name: MovingAFolderLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder

Exemplo de entrada: mover uma pasta (Windows)

- name: MovingAFolderWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder

Exemplo de entrada: mover uma pasta usando o nome da pasta de origem (Linux)

- name: MovingFolderWithSourceFolderNameLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/

Exemplo de entrada: mover uma pasta usando o nome da pasta de origem (Windows)

- name: MovingFolderWithSourceFolderNameWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\

Exemplo de entrada: mover uma pasta usando o caractere curinga (Linux)

- name: MovingFoldersWithWildCardLinux action: MoveFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/

Exemplo de entrada: mover uma pasta usando o caractere curinga (Windows)

- name: MovingFoldersWithWildCardWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\

Exemplo de entrada: mover uma pasta sem substituir (Linux)

- name: MovingFoldersWithoutOverwriteLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder overwrite: false

Exemplo de entrada: mover uma pasta sem substituir (Windows)

- name: MovingFoldersWithoutOverwriteWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder overwrite: false
Saída

Nenhum.

ReadFile

O módulo de ReadFileação lê o conteúdo de um arquivo de texto do tipo string. Esse módulo pode ser usado para ler o conteúdo de um arquivo para uso em etapas subsequentes por meio de encadeamento ou para ler dados no arquivo do console.log. Se o caminho especificado for um link simbólico, este módulo retornará o conteúdo do arquivo de destino. Este módulo só oferece suporte a arquivos de texto.

Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8), você poderá especificar o valor da codificação do arquivo usando a opção encoding. Por padrão, presume-se que utf-16 e utf-32 usam a codificação little-endian.

Por padrão, esse módulo não pode imprimir o conteúdo do arquivo no arquivo do console.log. Você pode substituir essa configuração definindo a propriedade printFileContent como true.

Esse módulo pode retornar somente o conteúdo de um arquivo. Ele não pode analisar arquivos, como arquivos Excel ou JSON.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • O arquivo não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Sim
encoding O padrão de codificação. String Não utf8 utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE e utf-32-BE. O valor da opção de codificação não diferencia maiúsculas de minúsculas. Sim
printFileContent Imprime o conteúdo do arquivo no arquivo console.log. Booleano Não false N/D Sim.

Exemplo de entrada: ler um arquivo (Linux)

- name: ReadingFileLinux action: ReadFile inputs: - path: /home/UserName/SampleFile.txt

Exemplo de entrada: ler um arquivo (Windows)

- name: ReadingFileWindows action: ReadFile inputs: - path: C:\Windows\WindowsUpdate.log

Exemplo de entrada: ler um arquivo e especificar o padrão de codificação

- name: ReadingFileWithFileEncoding action: ReadFile inputs: - path: /FolderName/SampleFile.txt encoding: UTF-32

Exemplo de entrada: ler um arquivo e imprimir no console.log arquivo do

- name: ReadingFileToConsole action: ReadFile inputs: - path: /home/UserName/SampleFile.txt printFileContent: true
Saída
Campo Descrição Tipo
content O conteúdo do arquivo. string

Exemplo de saída

{ "content" : "The file content" }

SetFileEncoding

O módulo de SetFileEncodingação modifica a propriedade de codificação de um arquivo existente. Este módulo pode converter a codificação do arquivo do utf-8 em um padrão de codificação especificado. Por padrão, presume-se que utf-16 e utf-32 usam a codificação little-endian.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a modificação especificada.

  • O arquivo não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Sim
encoding O padrão de codificação. String Não utf8 utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE e utf-32-BE. O valor da opção de codificação não diferencia maiúsculas de minúsculas. Sim

Exemplo de entrada: definir propriedade de codificação do arquivo

- name: SettingFileEncodingProperty action: SetFileEncoding inputs: - path: /home/UserName/SampleFile.txt encoding: UTF-16
Saída

Nenhum.

SetFileOwner

O módulo de SetFileOwneração modifica as propriedades owner e do group proprietário de um arquivo existente. Se o arquivo especificado for um link simbólico, o módulo modifica a propriedade owner do arquivo de origem. Este módulo não é compatível com plataformas Windows.

Este módulo aceita nomes de usuários e grupos como entradas. Se o nome do grupo não for fornecido, o módulo atribuirá o proprietário do grupo do arquivo ao grupo ao qual o usuário pertence.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a modificação especificada.

  • O nome do usuário ou grupo especificado não existe no runtime.

  • O arquivo não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Não compatível com Windows.
owner O nome do usuário. string Sim N/D N/D Não compatível com Windows.
group O nome do grupo de usuários. String Não O nome do grupo ao qual o usuário pertence. N/D Não compatível com Windows.

Exemplo de entrada: definir a propriedade do proprietário do arquivo sem especificar o nome do grupo de usuários

- name: SettingFileOwnerPropertyNoGroup action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser

Exemplo de entrada: definir a propriedade do proprietário do arquivo especificando o nome do grupo de usuários

- name: SettingFileOwnerProperty action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser group: LinuxUserGroup
Saída

Nenhum.

SetFolderOwner

O módulo de SetFolderOwneração modifica recursivamente as propriedades owner e o group proprietário de uma pasta existente. Por padrão, o módulo pode modificar a propriedade de todo o conteúdo de uma pasta. Você pode configurar a opção recursive para false para substituir esse comportamento. Este módulo não é compatível com plataformas Windows.

Este módulo aceita nomes de usuários e grupos como entradas. Se o nome do grupo não for fornecido, o módulo atribuirá o proprietário do grupo do arquivo ao grupo ao qual o usuário pertence.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a modificação especificada.

  • O nome do usuário ou grupo especificado não existe no runtime.

  • A pasta não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho da pasta. String Sim N/D N/D Não compatível com Windows.
owner O nome do usuário. string Sim N/D N/D Não compatível com Windows.
group O nome do grupo de usuários. String Não O nome do grupo ao qual o usuário pertence. N/D Não compatível com Windows.
recursive Substitui o comportamento padrão de modificar a propriedade de todo o conteúdo de uma pasta quando definido como false. Booleano Não true N/D Não compatível com Windows.

Exemplo de entrada: definir a propriedade do proprietário da pasta sem especificar o nome do grupo de usuários

- name: SettingFolderPropertyWithOutGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser

Exemplo de entrada: definir a propriedade do proprietário da pasta sem substituir a propriedade de todo o conteúdo em uma pasta

- name: SettingFolderPropertyWithOutRecursively action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser recursive: false

Exemplo de entrada: definir a propriedade do arquivo especificando o nome do grupo de usuários

- name: SettingFolderPropertyWithGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser group: LinuxUserGroup
Saída

Nenhum.

SetFilePermissions

O módulo de SetFilePermissionsação modifica o permissions de um arquivo existente. Este módulo não é compatível com plataformas Windows.

A entrada para permissions deve ser um valor de string.

Esse módulo de ação pode criar um arquivo com permissões definidas pelo valor unmask padrão do sistema operacional. Você deve definir o valor umask se quiser substituir o valor padrão.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a modificação especificada.

  • O arquivo não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho do arquivo. String Sim N/D N/D Não compatível com Windows.
permissions As permissões de arquivo. String Sim N/D N/D Não compatível com Windows.

Exemplo de entrada: modificar permissões de arquivo

- name: ModifyingFilePermissions action: SetFilePermissions inputs: - path: /home/UserName/SampleFile.txt permissions: 766
Saída

Nenhum.

SetFolderPermissions

O módulo de SetFolderPermissionsação modifica recursivamente a permissions de uma pasta existente e de todos os seus subarquivos e subpastas. Por padrão, esse módulo pode modificar as permissões para todo o conteúdo da pasta especificada. Você pode configurar a recursive opção para false para substituir esse comportamento. Este módulo não é compatível com plataformas Windows.

A entrada para permissions deve ser um valor de string.

Esse módulo de ação pode modificar as permissões de acordo com o valor umask padrão do sistema operacional. Você deve definir o valor umask se quiser substituir o valor padrão.

O módulo de ação retorna um erro quando ocorre o seguinte:

  • Você não tem a permissão para realizar a modificação especificada.

  • A pasta não existe no runtime.

  • O módulo de ação encontra um erro ao executar a operação.

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos Compatível com todas as plataformas
path O caminho da pasta. String Sim N/D N/D Não compatível com Windows.
permissions As permissões da pasta. String Sim N/D N/D Não compatível com Windows.
recursive Substitui o comportamento padrão de modificar as permissões de todo o conteúdo de uma pasta quando definido como false. Booleano Não true N/D Não compatível com Windows.

Exemplo de entrada: definir permissões de pasta

- name: SettingFolderPermissions action: SetFolderPermissions inputs: - path: SampleFolder/ permissions: 0777

Exemplo de entrada: definir permissões de pasta sem modificar as permissões para todo o conteúdo de uma pasta

- name: SettingFolderPermissionsNoRecursive action: SetFolderPermissions inputs: - path: /home/UserName/SampleFolder/ permissions: 777 recursive: false
Saída

Nenhum.

Ações de instalação de software

Esta seção descreve os módulos de ação que executam comandos e instruções de ação de instalação de software.

Requisitos do IAM

Se o caminho de download da instalação for um URI do S3, o perfil do IAM associado ao perfil de instância deverá ter permissão para executar o módulo de ação S3Download. Para conceder a permissão necessária, anexe a S3:GetObject política do IAM ao perfil do IAM associada ao seu perfil de instância e especifique o caminho para seu bucket. Por exemplo, arn:aws:s3:::BucketName/*.

Entradas MSI complexas

Se suas cadeias de caracteres de entrada contiverem aspas duplas ("), você deverá usar um dos seguintes métodos para garantir que elas sejam interpretadas corretamente:

  • Você pode usar aspas simples (') na parte externa da string, para contê-la, e aspas duplas (“) dentro da string, conforme mostrado no exemplo a seguir.

    properties: COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'

    Nesse caso, se você precisar usar um apóstrofo dentro de sua string, deverá contorná-la. Isso significa usar outra aspa simples (') antes do apóstrofo.

  • Você pode usar aspas duplas (“) na parte externa da string para contê-la. E você pode contornar qualquer aspa dupla dentro de sua string, usando o caractere de barra invertida (\), conforme mostrado no exemplo a seguir.

    properties: COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""

Ambos os métodos passam o valor COMPANYNAME="Acme ""Widgets"" and ""Gizmos.""" para o comando msiexec.

Módulos de ações de instalação de software

InstallMSI

O módulo de ação InstallMSI instala um aplicativo do Windows usando um arquivo MSI. Você pode especificar o arquivo MSI usando um caminho local, um URI de objeto do S3 ou um URL da web. A opção de reinicialização configura o comportamento de reinicialização do sistema.

AWSTOE gera o msiexec comando com base nos parâmetros de entrada para o módulo de ação. Os valores dos parâmetros de entrada path (localização do arquivo MSI) e logFile (localização do arquivo de log) devem estar entre aspas (“).

Os seguintes códigos de saída MSI são considerados bem-sucedidos:

  • 0 (Sucesso)

  • 1614 (ERROR_PRODUCT_UNINSTALLED)

  • 1641 (reinicialização iniciada)

  • 3010 (reinicialização necessária)

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos
path

Especifique o local do arquivo MSI usando uma das opções a seguir:

  • O caminho do arquivo local. O caminho pode ser absoluto ou relativo

  • Um URI de objeto S3 válido.

  • Um URL HTTP/HTTPS da web válido (é recomendado HTTPS) que siga o padrão RFC 3986.

Expressões de encadeamento são permitidas.

String Sim N/D N/D
reboot

Configure o comportamento de reinicialização do sistema após a execução bem-sucedida do módulo de ação.

Configurações:
  • Force: inicia a reinicialização do sistema após a execução bem-sucedida do comando msiexec.

  • Allow: inicia uma reinicialização do sistema se o comando msiexec retornar um código de saída que indique que uma reinicialização é necessária.

  • Skip: registra o log de uma mensagem informativa no arquivo console.log indicando que a reinicialização foi ignorada. Essa opção impede a reinicialização, mesmo que o comando msiexec retorne um código de saída indicando que uma reinicialização é necessária.

String Não Allow Allow, Force, Skip
logOptions

Especifique as opções a serem usadas para o registro de instalação do MSI. Os sinalizadores especificados são passados para o instalador do MSI, junto com o parâmetro da linha do comando /L para ativar o registro. Se nenhum sinalizador for especificado, AWSTOE usa o valor padrão.

Para obter mais informações sobre opções de log do MSI, consulte Opções de linha de comando na documentação de produto do Microsoft Windows Installer.

String Não *VX i,w,e,a,r,u,c,m,o,p,v,x,+,!,*
logFile

Um caminho absoluto ou relativo para a localização do arquivo de log. Se o caminho de log do arquivo não existir, será criado. Se o caminho do arquivo de log não for fornecido, AWSTOE não armazenará o log de instalação do MSI.

String Não N/D N/D
properties

Pares valores-chave de propriedades de registro MSI, por exemplo: TARGETDIR: "C:\target\location"

 

Observação: a modificação das seguintes propriedades não é permitida:

  • REBOOT="ReallySupress"

  • REINSTALLMODE="ecmus"

  • REINSTALL="ALL"

Map[String]String Não N/D N/D
ignoreAuthenticodeSignatureErrors

Sinalize para ignorar erros de validação de assinatura authenticode para o instalador especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores.

Configurações:
  • true: os erros de validação são ignorados e o instalador é executado.

  • false: os erros de validação não são ignorados. O instalador é executado somente quando a validação é bem-sucedida. Esse é o comportamento padrão.

Booleano Não false true, false
allowUnsignedInstaller

Sinalize para permitir a execução do instalador não assinado especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores.

Configurações:
  • true: ignora o status de NotSigned retornado pelo comando Get-AuthenticodeSignature e executa o instalador.

  • false: requer que o instalador seja assinado. Instaladores não assinados não serão executados. Esse é o comportamento padrão.

Booleano Não false true, false
Exemplos

Os exemplos a seguir mostram variações da seção de entrada do documento do componente, dependendo do caminho de instalação.

Exemplo de entrada: caminho de instalação do documento local

- name: local-path-install steps: - name: LocalPathInstaller action: InstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-install.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true

Exemplo de entrada: instalação do caminho do Amazon S3

- name: s3-path-install steps: - name: S3PathInstaller action: InstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-install.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true

Exemplo de entrada: instalação do caminho da web

- name: web-path-install steps: - name: WebPathInstaller action: InstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-install.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
Saída

Este é um exemplo da saída do módulo de ação InstallMSI.

{ "logFile": "web-path-install.log", "msiExitCode": 0, "stdout": "" }

Desinstalar MSI

O módulo de ação UninstallMSI permite que você remova um aplicativo do Windows usando um arquivo MSI. Você pode especificar o local do arquivo MSI usando um caminho local, um URI de objeto do S3 ou um URL da web. A opção de reinicialização configura o comportamento de reinicialização do sistema.

AWSTOE gera o msiexec comando com base nos parâmetros de entrada para o módulo de ação. A localização do arquivo MSI (path) e a localização do arquivo de log (logFile) são explicitamente colocadas entre aspas duplas (“) ao gerar o comando. msiexec

Os seguintes códigos de saída MSI são considerados bem-sucedidos:

  • 0 (Sucesso)

  • 1605 (ERROR_UNKNOWN_PRODUCT)

  • 1614 (ERROR_PRODUCT_UNINSTALLED)

  • 1641 (reinicialização iniciada)

  • 3010 (reinicialização necessária)

Entrada
Primitivo Descrição Tipo Obrigatório Valor padrão Valores aceitos
path

Especifique o local do arquivo MSI usando uma das opções a seguir:

  • O caminho do arquivo local. O caminho pode ser absoluto ou relativo.

  • Um URI de objeto S3 válido.

  • Um URL HTTP/HTTPS da web válido (é recomendado HTTPS) que siga o padrão RFC 3986.

Expressões de encadeamento são permitidas.

String Sim N/D N/D
reboot

Configure o comportamento de reinicialização do sistema após a execução bem-sucedida do módulo de ação.

Configurações:
  • Force: inicia a reinicialização do sistema após a execução bem-sucedida do comando msiexec.

  • Allow: inicia uma reinicialização do sistema se o comando msiexec retornar um código de saída que indique que uma reinicialização é necessária.

  • Skip: registra o log de uma mensagem informativa no arquivo console.log indicando que a reinicialização foi ignorada. Essa opção impede a reinicialização, mesmo que o comando msiexec retorne um código de saída indicando que uma reinicialização é necessária.

String Não Allow Allow, Force, Skip
logOptions

Especifique as opções a serem usadas para o registro de instalação do MSI. Os sinalizadores especificados são passados para o instalador do MSI, junto com o parâmetro da linha do comando /L para ativar o registro. Se nenhum sinalizador for especificado, AWSTOE usa o valor padrão.

Para obter mais informações sobre opções de log do MSI, consulte Opções de linha de comando na documentação de produto do Microsoft Windows Installer.

String Não *VX i,w,e,a,r,u,c,m,o,p,v,x,+,!,*
logFile

Um caminho absoluto ou relativo para a localização do arquivo de log. Se o caminho de log do arquivo não existir, será criado. Se o caminho do arquivo de log não for fornecido, AWSTOE não armazenará o log de instalação do MSI.

String Não N/D N/D
properties

Pares valores-chave de propriedades de registro MSI, por exemplo: TARGETDIR: "C:\target\location"

 

Observação: a modificação das seguintes propriedades não é permitida:

  • REBOOT="ReallySupress"

  • REINSTALLMODE="ecmus"

  • REINSTALL="ALL"

Map[String]String Não N/D N/D
ignoreAuthenticodeSignatureErrors

Sinalize para ignorar erros de validação de assinatura authenticode para o instalador especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores.

Configurações:
  • true: os erros de validação são ignorados e o instalador é executado.

  • false: os erros de validação não são ignorados. O instalador é executado somente quando a validação é bem-sucedida. Esse é o comportamento padrão.

Booleano Não false true, false
allowUnsignedInstaller

Sinalize para permitir a execução do instalador não assinado especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores.

Configurações:
  • true: ignora o status de NotSigned retornado pelo comando Get-AuthenticodeSignature e executa o instalador.

  • false: requer que o instalador seja assinado. Instaladores não assinados não serão executados. Esse é o comportamento padrão.

Booleano Não false true, false
Exemplos

Os exemplos a seguir mostram variações da seção de entrada do documento do componente, dependendo do caminho de instalação.

Exemplo de entrada: remove a insta;ação do caminho do documento local

- name: local-path-uninstall steps: - name: LocalPathUninstaller action: UninstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-uninstall.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true

Exemplo de entrada: remove a instalação do caminho do Amazon S3

- name: s3-path-uninstall steps: - name: S3PathUninstaller action: UninstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-uninstall.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true

Exemplo de entrada: remove a instalação do caminho da web

- name: web-path-uninstall steps: - name: WebPathUninstaller action: UninstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-uninstall.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
Saída

Este é um exemplo da saída do módulo de ação UninstallMSI.

{ "logFile": "web-path-uninstall.log", "msiExitCode": 0, "stdout": "" }

Módulos de ação do sistema

A seção a seguir descreve os módulos de ação que executam comandos e instruções de sistema de arquivo.

Módulos de ação do sistema

Reinicializar

O módulo de ação de Reboot reinicia a instância. Ele tem uma opção configurável para atrasar o início da reinicialização. Por padrão, delaySeconds está definido como 0, o que significa que não há atraso. O tempo limite da etapa não é compatível com o módulo de ação de reinicialização, pois não se aplica quando a instância é reinicializada.

Se o aplicativo for chamado pelo Systems Manager Agent, ele entregará o código de saída (3010 para Windows, 194 para Linux) para o Systems Manager Agent. O Systems Manager Agent lida com a reinicialização do sistema conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.

Se o aplicativo é invocado no host como um processo independente, ele salva o estado de execução atual, configura um gatilho de execução automática pós-reinicialização para executar novamente o aplicativo após a reinicialização e, em seguida, reinicializa o sistema.

Acionador de execução automática após a reinicialização:

  • Windows. AWSTOE cria uma entrada do Windows Task Scheduler com um gatilho que é executado automaticamente em SystemStartup

  • Linux. AWSTOE adiciona um trabalho no crontab que é executado automaticamente após a reinicialização do sistema.

@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml

Esse gatilho é limpo quando o aplicativo é iniciado.

Novas tentativas

Por padrão, o número máximo de novas tentativas é definido para o CommandRetryLimit do Systems Manager. Se o número de reinicializações exceder o limite de novas tentativas, a automação falhará. É possível alterar o limite editando o arquivo de configuração do agente do Systems Manager (Mds.CommandRetryLimit). Consulte Configuração do runtime no código aberto do agente do Systems Manager.

Para usar o módulo de ação de Reboot, para etapas que contêm reinicialização exitcode (por exemplo, 3010), você deve executar o binário do aplicativo como sudo user.

Entrada
Primitivo Descrição Tipo Obrigatório Padrão
delaySeconds Atrasa um determinado período de tempo antes de iniciar uma reinicialização. Inteiro

Não

0

Exemplo de entrada: etapa de reinicialização

- name: RebootStep action: Reboot onFailure: Abort maxAttempts: 2 inputs: delaySeconds: 60

Saída

Nenhum.

Quando o módulo Reboot é concluído, o Image Builder continua na próxima etapa da compilação.

SetRegistry

O módulo de SetRegistryação aceita uma lista de entradas e permite que você defina o valor da chave de registro especificada. Se não existir uma chave de registro, ela será criada no caminho definido. Esse atributo se aplica somente ao Windows.

Entrada
Primitivo Descrição Tipo Obrigatório
path Caminho da chave de registro. String Sim
name Nome da chave de registro. String Sim
value Valor da chave de registro. Sequência/número/array Sim
type Tipo de valor da chave de registro. String Sim
Prefixos de caminho compatíveis
  • HKEY_CLASSES_ROOT / HKCR:

  • HKEY_USERS / HKU:

  • HKEY_LOCAL_MACHINE / HKLM:

  • HKEY_CURRENT_CONFIG / HKCC:

  • HKEY_CURRENT_USER / HKCU:

Tipos compatíveis
  • BINARY

  • DWORD

  • QWORD

  • SZ

  • EXPAND_SZ

  • MULTI_SZ

Exemplo de entrada: definir valores de chave de registro

- name: SetRegistryKeyValues action: SetRegistry maxAttempts: 3 inputs: - path: HKLM:\SOFTWARE\MySoftWare name: MyName value: FirstVersionSoftware type: SZ - path: HKEY_CURRENT_USER\Software\Test name: Version value: 1.1 type: DWORD

Saída

Nenhum.

UpdateOS

O módulo de ação UpdateOS adiciona suporte para a instalação de atualizações do Windows e do Linux. Ele instala todas as atualizações disponíveis por padrão. Como alternativa, você pode configurar uma lista de uma ou mais atualizações específicas para instalar o módulo de ação. Você também pode especificar atualizações a serem excluídas da instalação.

Se as listas “incluir” e “excluir” forem fornecidas, a lista de atualizações resultante poderá incluir somente aquelas listadas na lista “incluir” que não estejam listadas na lista “excluir”.

nota

O UpdateOS não é compatível com o Amazon Linux 2023 (AL2023). Recomendamos que você atualize sua AMI básica para a nova versão que vem com cada lançamento. Para outras alternativas, consulte Controlar as atualizações recebidas de versões principais e secundárias no Guia do usuário do Amazon Linux 2023.

  • Windows. As atualizações são instaladas a partir da fonte de atualização configurada na máquina de destino.

  • Linux. O aplicativo verifica o gerenciador de pacotes compatível na plataforma Linux e usa o gerenciador de pacotes yum ou apt-get. Se nenhum dos dois for compatível, será retornado um erro. Você deve ter permissões de sudo para executar o módulo de ação UpdateOS. Se você não tiver permissões de sudo, um error.Input será retornado.

Entrada
Primitivo Descrição Tipo Obrigatório
include

Para Windows, você pode especificar o seguinte:

  • Uma ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) devem ser incluídas na lista de atualizações que podem ser instaladas. Os formatos válidos são KB1234567 ou 1234567.

  • Um nome de atualização usando um valor curinga (*). Os formatos válidos são Security* ou *Security*.

Para Linux, você pode especificar um ou mais pacotes a serem incluídos na lista de atualizações para instalação.

Lista de strings Não
exclude

Para Windows, você pode especificar o seguinte:

  • Uma ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) devem ser incluídas na lista de atualizações para serem excluídas da instalação. Os formatos válidos são KB1234567 ou 1234567.

  • Um nome de atualização usando um valor curinga (*). Os formatos válidos são Security* ou *Security*.

Para Linux, você pode especificar um ou mais pacotes a serem excluídos na lista de atualizações para instalação.

Lista de strings Não

Exemplo de entrada: adicionar suporte para instalação de atualizações do Linux

- name: UpdateMyLinux action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: exclude: - ec2-hibinit-agent

Exemplo de entrada: adicionar suporte para instalação de atualizações do Windows

- name: UpdateWindowsOperatingSystem action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: include: - KB1234567 - '*Security*'

Saída

Nenhum.