

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á.

# Usando cloud-init em AL2
<a name="amazon-linux-cloud-init"></a>

O pacote cloud-init é uma aplicação de código aberto criado pela Canonical que é usado para inicializar imagens Linux em um ambiente de computação em nuvem, como o Amazon EC2. O Amazon Linux contém uma versão personalizada do cloud-init. Isso permite que você especifique ações que devem acontecer com sua instância no momento da inicialização. É possível transmitir ações desejadas para cloud-init por meio dos campos de dados do usuário ao executar uma instância. Isso significa que você pode usar o common AMIs para muitos casos de uso e configurá-los dinamicamente na inicialização. O Amazon Linux também usa cloud-init para executar a configuração inicial da conta ec2-user.

 Para obter mais informações, consulte a [documentação de cloud-init](http://cloudinit.readthedocs.org/en/latest/). 

O Amazon Linux usa as ações de cloud-init localizadas em `/etc/cloud/cloud.cfg.d` e em `/etc/cloud/cloud.cfg`. É possível criar seus próprios arquivos de ações de cloud-init em `/etc/cloud/cloud.cfg.d`. Todos os arquivos nesse diretório são lidos por cloud-init. Eles são lidos em ordem léxica e arquivos mais recentes substituem arquivos mais antigos.

O pacote cloud-init executa essas e outras tarefas de configuração comuns para as instâncias na inicialização:
+ Definir o local padrão.
+ Definir o nome do host.
+ Analisar e lidar com os dados do usuário.
+ Gerenciar chaves SSH privadas de host.
+ Adicionar as chaves SSH públicas de um usuário ao `.ssh/authorized_keys` para facilitar login e administração.
+ Preparar os repositórios para gerenciamento de pacotes.
+ Lidar com as ações de pacotes definidas nos dados do usuário.
+ Execute scripts de usuário encontrados nos dados do usuário.
+ Montar volumes de armazenamento de instâncias, se aplicável.
  + Por padrão, o volume de armazenamento de instância `ephemeral0` será montado em `/media/ephemeral0` se estiver presente e possuir um sistema de arquivos válido; caso contrário, ele não será montado.
  + Por padrão, todos os volumes de troca associados à instância são montados (somente para os tipos de instância `m1.small` e `c1.medium`).
  + É possível substituir a montagem do volume de armazenamento de instância padrão com a seguinte diretriz de cloud-init:

    ```
    #cloud-config
    mounts:
    - [ ephemeral0 ]
    ```

    Para obter mais informações sobre o controle sobre montagens, consulte [Montagens](http://cloudinit.readthedocs.io/en/latest/topics/modules.html#mounts) na documentação do cloud-init.
  + Os volumes de armazenamento de instâncias que oferecem suporte a TRIM não são formatados quando uma instância é iniciada, portanto, é necessário particioná-los e formatá-los para poder montá-los. Para obter mais informações, consulte [TRIMSuporte ao volume do armazenamento de instâncias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html#InstanceStoreTrimSupport). É possível usar o módulo `disk_setup` para particionar e formatar seus volumes de armazenamento de instâncias na inicialização. Para obter mais informações, consulte [Configuração de discos](http://cloudinit.readthedocs.io/en/latest/topics/modules.html#disk-setup) na documentação do cloud-init.

## Formatos de dados do usuário compatíveis
<a name="supported-user-data-formats"></a>

O pacote cloud-init oferece suporte ao tratamento de dados do usuário em vários formatos:
+ Gzip
  + Se os dados do usuário estiverem compactados com gzip, o cloud-init descompactará os dados e os tratará adequadamente.
+ Multipart MIME
  + Usando um arquivo multipart MIME, é possível especificar mais do que um tipo de dados. Por exemplo, você pode especificar um script de dados do usuário e um tipo de configuração de nuvem. Cada parte do arquivo multipart poderá ser tratada pelo cloud-init se for um dos formatos com suporte.
+ Decodificação de base64
  +  Se os dados do usuário estiverem codificados em base64, o cloud-init determinará se ele pode entender os dados decodificados como um dos tipos compatíveis. Se ele entender os dados decodificados, ele decodificará os dados e os tratará adequadamente. Caso contrário, ele retornará os dados base64 intactos.
+ Script de dados do usuário
  + Começa com `#!` ou `Content-Type: text/x-shellscript`.
  + O script é executado pelo `/etc/init.d/cloud-init-user-scripts` durante o primeiro ciclo de inicialização. Isso ocorre tardiamente no processo de inicialização (depois que as ações de configuração inicial são executadas).
+ Arquivo de inclusão
  + Começa com `#include` ou `Content-Type: text/x-include-url`.
  + Esse conteúdo é um arquivo de inclusão. O arquivo contém uma lista de URLs, uma por linha. Cada um deles URLs é lido e seu conteúdo passa pelo mesmo conjunto de regras. O conteúdo lido do URL pode ser comprimido com gzip ou texto MIME-multi-part simples.
+ Dados de configuração da nuvem
  + Começa com `#cloud-config` ou `Content-Type: text/cloud-config`.
  + Esse conteúdo são dados de configuração da nuvem.
+ Trabalho inicial (não suportado no AL2)
  + Começa com `#upstart-job` ou `Content-Type: text/upstart-job`.
  + Esse conteúdo é armazenado em um arquivo em`/etc/init`, e o upstart consome o conteúdo da mesma forma que faz com outros trabalhos iniciantes.
+ Gancho de inicialização na nuvem
  + Começa com `#cloud-boothook` ou `Content-Type: text/cloud-boothook`.
  + Esse conteúdo são dados boothook. São armazenados em um arquivo em `/var/lib/cloud` e executados imediatamente.
  +  Este é o *hook* mais antigo disponível. Não é fornecido nenhum mecanismo para executá-lo somente uma vez. O boothook deve cuidar disso por conta própria. Ele é fornecido com o ID de instância na variável de ambiente `INSTANCE_ID`. Use essa variável para fornecer um once-per-instance conjunto de dados do boothook.