Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-18 GMT+08:00

Transmissão de dados do usuário para os ECS

Cenários

Use a função User Data para passar dados do usuário para os ECS para:

  • Simplifique a configuração de ECS.
  • Inicialize a configuração do SO de ECS.
  • Carregue seus scripts para os ECS durante a criação de ECS.
  • Executar outras tarefas usando scripts.

Restrições de Uso

  • Linux
    • A imagem usada para criar os ECS deve ter o Cloud-Init instalado.
    • Os dados do usuário a serem especificados devem ser menores ou iguais a 32 KB.
    • Se os dados do usuário forem carregados como texto, os dados poderão conter apenas caracteres ASCII. Se os dados do usuário são carregados usando um arquivo, o arquivo pode conter quaisquer caracteres e o tamanho do arquivo não pode exceder 32 KB.
    • A imagem usada para criar os ECS deve ser uma imagem pública, uma imagem privada criada com base em uma imagem pública ou uma imagem privada com o Cloud-Init instalado.
    • O formato dos scripts personalizados deve ser suportado pelos ECS de Linux.
    • O DHCP deve estar habilitado na rede VPC e a porta 80 deve estar ativada para o grupo de segurança na direção de saída.
    • Quando o modo de login da senha é selecionado, a passagem de dados do usuário não é suportada.
  • Windows
    • A imagem que é usada para criar os ECS deve ter o Cloudbase-Init instalado.
    • Os dados do usuário a serem especificados devem ser menores ou iguais a 32 KB.
    • Se os dados do usuário forem carregados como texto, os dados poderão conter apenas caracteres ASCII. Se os dados do usuário são carregados usando um arquivo, o arquivo pode conter quaisquer caracteres e o tamanho do arquivo não pode exceder 32 KB.
    • A imagem usada para criar os ECS deve ser uma imagem pública, uma imagem privada criada com base em uma imagem pública ou uma imagem privada com o Cloudbase-Init instalado.
    • O DHCP deve estar habilitado na rede VPC e a porta 80 deve estar ativada para o grupo de segurança na direção de saída.

Passando dados do usuário

  1. Crie um script de dados do usuário, cujo formato esteja em conformidade com as especificações de script de dados do usuário. Para mais detalhes, consulte Links úteis.
  2. Ao criar um ECS, defina Advanced Options para Configure now, e cole o conteúdo do script de dados do usuário na caixa de texto User Data ou carregue o arquivo de dados do usuário.

    Você pode passar dados do usuário para um ECS como texto ou como um arquivo.

    Texto: Copie o conteúdo do script de dados do usuário para a caixa de texto.

    Arquivo: Salve o script de dados do usuário em um arquivo de texto e, em seguida, carregue o arquivo.

    Figura 1 Dados do Usuário
  3. O criado ECS executa automaticamente o Cloud-Init/Cloudbase-Init e lê o script de dados do usuário na inicialização.

Scripts de dados do usuário dos ECS Linux

Scripts personalizados de dados do usuário do ECS de Linux são baseados na arquitetura Cloud-Init de código aberto. Essa arquitetura usa metadados de ECS como fonte de dados para configurar automaticamente os ECS. Os tipos de script personalizados são compatíveis com o Cloud-Init de código aberto. Para obter detalhes sobre o Cloud-Init, consulte http://cloudinit.readthedocs.io/en/latest/topics/format.html.

  • Tempo de execução do script: Um script de dados de usuário personalizado é executado após o tempo em que o status do alvo ECS muda para Running e antes do tempo em que /etc/init é executado.

    Por padrão, os scripts são executados como usuário root.

  • Tipo de script: Os scripts de dados do usuário e os scripts de dados do Cloud-Config são apoiados.
    Tabela 1 Tipos de script do Linux ECS

    -

    Script de Dados do Usuário

    Script de dados de configuração na nuvem

    Descrição

    Scripts, como scripts Shell e Python, são usados para configurações personalizadas.

    Métodos pré-definidos no Cloud-Init, como o repositório yum e a chave SSH, são usados para configurar certas aplicações ECS.

    Formato

    Um script deve ser iniciado com #!, por exemplo, #!/bin/bash e #!/usr/bin/env python.

    Quando um script é iniciado pela primeira vez, ele será executado no nível rc.local-like, indicando uma baixa prioridade na sequência de inicialização.

    A primeira linha deve ser #cloud-config, e nenhum espaço é permitido na frente dela.

    Restrição

    Antes da codificação Base64, o tamanho do script, incluindo a primeira linha, não pode exceder 32 KB.

    Antes da codificação Base64, o tamanho do script, incluindo a primeira linha, não pode exceder 32 KB.

    Frequência

    O script é executado apenas uma vez quando o ECS é iniciado pela primeira vez.

    A freqüência de execução varia de acordo com os aplicativos configurados no ECS.

  • Como posso visualizar os dados personalizados do usuário passados para um ECS de Linux?
    1. Efetue login no ECS.
    2. Execute o seguinte comando para exibir os dados de usuário personalizados como usuário root:

      curl http://169.254.169.254/openstack/latest/user_data

  • Exemplos de utilização de scripts

    Esta seção descreve como injetar scripts em diferentes formatos nos ECS do Linux e exibir os resultados da execução de scripts.

    Example 1: Inject a user-data script.

    Ao criar um ECS, defina User Data como As text e insira o script de dados do usuário personalizado.

    #!/bin/bash
    echo "Hello, the time is now $(date -R)" | tee /root/output.txt

    Depois que o ECS for criado, inicie-o e execute o comando cat [file] para verificar o resultado da execução do script.

    [root@XXXXXXXX ~]# cat /root/output.txt
    Hello, the time is now Mon, 16 Jul 2016 16:03:18+0800

    Example 2: Inject a Cloud-Config data script.

    Ao criar um ECS, defina User Data como As text e insira o script de dados do usuário personalizado.

    #cloud-config
    bootcmd:
    - echo 192.168.1.130 us.archive.ubuntu.com >> /etc/hosts

    Depois que o ECS for criado, inicie-o e execute o comando cat /etc/hosts para verificar o resultado da execução do script.

    Figura 2 Visualizando resultados operacionais

Scripts de dados do usuário dos ECS do Windows

Os scripts personalizados de dados do usuário dos ECS Windows são baseados na arquitetura Cloudbase-Init de código aberto. Essa arquitetura usa metadados de ECS como fonte de dados para inicializar e configurar automaticamente os ECS. Os tipos de script personalizados são compatíveis com o Cloudbase-Init de código aberto. Para obter detalhes sobre o Cloudbase-Init, consulte https://cloudbase-init.readthedocs.io/en/latest/userdata.html.

  • Tipo de script: Os scripts do programa de processamento em lote e os scripts do PowerShell são suportados.
    Tabela 2 Tipos de script ECS do Windows

    -

    Script do Programa de Processamento em Lote

    Script do PowerShell

    Formato

    O script deve ser iniciado com rem cmd, que é a primeira linha do script. Nenhum espaço é permitido no início da primeira linha.

    O script deve ser iniciado com #ps1, que é a primeira linha do script. Nenhum espaço é permitido no início da primeira linha.

    Restrição

    Antes da codificação Base64, o tamanho do script, incluindo a primeira linha, não pode exceder 32 KB.

    Antes da codificação Base64, o tamanho do script, incluindo a primeira linha, não pode exceder 32 KB.

  • Como posso visualizar os dados de usuário personalizados passados para um ECS Windows?
    1. Efetue login no ECS.
    2. Acesse o seguinte URL na caixa de endereço do navegador e visualize os dados do usuário:

      http://169.254.169.254/openstack/latest/user_data

  • Exemplos de utilização de scripts

    Esta seção descreve como injetar scripts em diferentes formatos nos ECS do Windows e exibir os resultados da execução de scripts.

    Example 1: Inject a batch-processing program script.

    Ao criar um ECS, defina User Data como As text e insira o script de dados do usuário personalizado.

    rem cmd
    echo "Hello, BAT Test" > C:\1111.txt

    Depois que o ECS for criado, inicie-o e verifique o resultado da execução do script. Neste exemplo, um arquivo de texto chamado 1111 é adicionado ao disco C:\.

    Figura 3 Criando arquivo de texto (Lote)

    Para visualizar os dados do usuário passados para o ECS Windows, faça login em http://169.254.169.254/openstack/latest/user_data.

    Figura 4 Visualizando dados do usuário (Lote)

    Example 2: Inject a PowerShell script.

    Ao criar um ECS, defina User Data como As text e insira o script de dados do usuário personalizado.

    #ps1
    echo "Hello, Powershell Test" > C:\aaaa.txt

    Depois que o ECS for criado, inicie-o e verifique o resultado da execução do script. Neste exemplo, um arquivo de texto chamado aaaa é adicionado ao disco C:\.

    Figura 5 Criando arquivo de texto (PowerShell)

    Para visualizar os dados do usuário passados para o ECS Windows, faça login em http://169.254.169.254/openstack/latest/user_data.

    Figura 6 Visualização de dados do usuário (PowerShell)

Caso 1

Este caso ilustra como usar a função de passagem de dados do usuário para simplificar a configuração do ECS de Linux.

Neste exemplo, o vim está configurado para ativar o realce de sintaxe, exibir números de linha e definir a parada de tabulação como 4. O arquivo de configuração.vimrc é criado e injetado no diretório /root/.vimrc durante a criação do ECS. Depois que o ECS é criado, o vim é configurado automaticamente com base em seus requisitos. Isso melhora a eficiência da configuração de ECS, especialmente em cenários de criação de ECS em lotes.

Exemplo de dados do usuário:

#cloud-config
write_files:
  - path: /root/.vimrc
    content: |
      syntax on
      set tabstop=4
      set number      

Caso 2

Este caso ilustra como usar a função de passagem de dados do usuário para definir a senha para efetuar login em um ECS de Linux.

A nova senha deve atender aos requisitos de complexidade de senha listados em Tabela 3.

Tabela 3 Requisitos de complexidade de senha

Parâmetro

Requisito

Exemplo Valor

Senha

  • Consiste de 8 a 26 caracteres.
  • Contém pelo menos três dos seguintes tipos de caracteres:
    • Letras maiúsculas
    • Letras minúsculas
    • Dígitos
    • Caracteres especiais para Windows: $!@%-_=+[]:./,?
    • Caracteres especiais para Linux: !@%-_=+[]:./^,{}?
  • Não pode conter o nome de usuário ou o nome de usuário soletrado para trás.
  • Não pode conter mais de dois caracteres consecutivos na mesma sequência que aparecem no nome de usuário. (Este requisito aplica-se apenas aos ECS de Windows.)

YNbUwp!dUc9MClnv

NOTA:

A senha de exemplo é gerada aleatoriamente. Não o use.

Exemplo de dados do usuário:

  • Usando uma senha de texto cifrado (recomendado)
    #!/bin/bash 
    echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig' | chpasswd -e;

    Na saída do comando anterior, $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig é a senha do texto cifrado, que podem ser geradas da seguinte forma:

    1. Execute o seguinte comando para gerar um valor de texto cifrado encriptado:

      python -c "import crypt, getpass, pwd;print crypt.mksalt()"

      As seguintes informações são exibidas:

      $6$V6azyeLwcD3CHlpY
    2. Execute o seguinte comando para gerar uma senha de texto cifrado com base no valor salt:

      python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')"

      As seguintes informações são exibidas:

      $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig

Depois que o ECS for criado, você poderá usar a senha para fazer login nele.

Caso 3:

Este caso ilustra como usar a função de passagem de dados do usuário para redefinir a senha para fazer login em um ECS de Linux.

Neste exemplo, a senha do usuário root é redefinida para ******.

A nova senha deve atender aos requisitos de complexidade de senha listados em Tabela 4.

Tabela 4 Requisitos de complexidade de senha

Parâmetro

Requisito

Exemplo Valor

Senha

  • Consiste de 8 a 26 caracteres.
  • Contém pelo menos três dos seguintes tipos de caracteres:
    • Letras maiúsculas
    • Letras minúsculas
    • Dígitos
    • Caracteres especiais para Windows: $!@%-_=+[]:./,?
    • Caracteres especiais para Linux: !@%-_=+[]:./^,{}?
  • Não pode conter o nome de usuário ou o nome de usuário soletrado para trás.
  • Não pode conter mais de dois caracteres consecutivos na mesma sequência que aparecem no nome de usuário. (Este requisito aplica-se apenas aos ECS de Windows.)

YNbUwp!dUc9MClnv

NOTA:

A senha de exemplo é gerada aleatoriamente. Não o use.

Exemplo de dados do usuário (Mantenha a indentação no seguinte script):

#cloud-config
chpasswd:
  list: |
    root:******
  expire: False

Depois que o ECS for criado, você poderá usar a senha de redefinição para fazer login nele. Para garantir a segurança do sistema, altere a senha do usuário root após efetuar login no ECS pela primeira vez.

Caso 4:

Este caso ilustra como usar a função de passagem de dados do usuário para criar um usuário em um ECS Windows e configurar a senha para o usuário.

Neste exemplo, o nome de usuário do usuário é abc, sua senha é ******, e o usuário é adicionado ao grupo de usuários administrators.

A nova senha deve atender aos requisitos de complexidade de senha listados em Tabela 4.

Exemplo de dados do usuário:

rem cmd
net user abc ****** /add
net localgroup administrators abc /add

Depois que o ECS for criado, você poderá usar o nome de usuário e a senha criados para fazer login nele.

Caso 5:

Este caso ilustra como usar a função de passagem de dados do usuário para atualizar pacotes de software do sistema para um ECS de Linux e habilitar o serviço HTTPd. Depois que os dados do usuário forem passados para um ECS, você poderá usar o serviço HTTPd.

Exemplo de dados do usuário:

#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on

Caso 6:

Este caso ilustra como usar a função de passagem de dados do usuário para atribuir permissão root ao usuário para efetuar login remotamente em um ECS de Linux. Depois de passar o arquivo para um ECS, você pode fazer login no ECS como usuário root usando a autenticação de par de chaves SSH.

Exemplo de dados do usuário:

#cloud-config
disable_root: false
runcmd:
- sed -i 's/^PermitRootLogin.*$/PermitRootLogin without-password/' /etc/ssh/sshd_config
- sed -i '/^KexAlgorithms.*$/d' /etc/ssh/sshd_config
- service sshd restart

Links úteis

Para obter mais informações sobre casos de passagem de dados do usuário, visite o site oficial do Cloud-init/Cloudbase-init: