Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-07-02 GMT+08:00

Transferencia de los datos de usuario a ECS

Casos

Utilice la función User Data para pasar los datos de usuario a los ECS a:

  • Simplifique la configuración de ECS.
  • Inicialice la configuración de SO de ECS.
  • Sube tus scripts a los ECS durante su creación.
  • Realizar otras tareas usando scripts.

Restricciones de uso

  • Linux
    • La imagen que se utiliza para crear los ECS debe tener Cloud-Init instalado.
    • Los datos de usuario a especificar deben ser menores o iguales a 32 KB.
    • Si los datos de usuario se cargan como texto, los datos solo pueden contener caracteres ASCII. Si los datos de usuario se cargan con un archivo, el archivo puede contener caracteres y el tamaño del archivo no puede superar los 32 KB.
    • La imagen que se utiliza para crear ECS debe ser una imagen pública, una imagen privada creada a partir de una imagen pública o una imagen privada con Cloud-Init instalado.
    • El formato de los scripts personalizados debe ser soportado por los ECS de Linux.
    • DHCP debe estar habilitado en la red VPC y el puerto 80 debe estar habilitado para el grupo de seguridad en la dirección de salida.
    • Cuando se selecciona el modo de inicio de sesión de contraseña, no se admite el paso de datos de usuario.
  • Windows
    • La imagen que se utiliza para crear los ECS debe tener Cloudbase-Init instalado.
    • Los datos de usuario a especificar deben ser menores o iguales a 32 KB.
    • Si los datos de usuario se cargan como texto, los datos solo pueden contener caracteres ASCII. Si los datos de usuario se cargan con un archivo, el archivo puede contener caracteres y el tamaño del archivo no puede superar los 32 KB.
    • La imagen que se utiliza para crear ECS debe ser una imagen pública, una imagen privada creada a partir de una imagen pública o una imagen privada con Cloudbase-Init instalado.
    • DHCP debe estar habilitado en la red VPC y el puerto 80 debe estar habilitado para el grupo de seguridad en la dirección de salida.

Pasando datos de usuario

  1. Cree un script de datos de usuario, cuyo formato cumpla con las especificaciones del script de datos de usuario. Para más detalles, consulte Enlaces útiles.
  2. Al crear un ECS, establezca Advanced Options en Configure now y pegue el contenido de la secuencia de comandos de datos de usuario en el cuadro de texto User Data o cargue el archivo de datos de usuario.

    Puede pasar los datos de usuario a un ECS como texto o como un archivo.

    Texto: Copie el contenido del script de datos del usuario en el cuadro de texto.

    Archivo: Guarde el script de datos del usuario en un archivo de texto y, a continuación, cargue el archivo.

    Figura 1 Datos de usuario
  3. El ECS creado ejecuta automáticamente Cloud-Init/Cloudbase-Init y lee el script de datos del usuario al iniciarlo.

Scripts de datos de usuario de ECS de Linux

Los scripts de datos de usuario personalizados de ECS de Linux se basan en la arquitectura Cloud-Init de código abierto. Esta arquitectura utiliza metadatos de ECS como origen de datos para configurar automáticamente los ECS. Los tipos de script personalizados son compatibles con Cloud-Init de código abierto. Para obtener más información sobre Cloud-Init, consulte http://cloudinit.readthedocs.io/en/latest/topics/format.html.

  • Tiempo de ejecución del script: Un script de datos de usuario personalizado se ejecuta después del momento en que el estado del ECS de destino cambia a Running y antes del momento en que se ejecuta /etc/init.

    De forma predeterminada, los scripts se ejecutan como usuario root.

  • Tipo de script: tanto scripts de datos de usuario como scripts de datos de Cloud-Config son compatibles.
    Tabla 1 Tipos de script de Linux ECS

    -

    Script de datos de usuario

    Script de datos de Cloud-Config

    Descripción

    Los scripts, como los scripts de Shell y Python, se utilizan para configuraciones personalizadas.

    Los métodos predefinidos en Cloud-Init, como el repositorio yum y la clave SSH, se utilizan para configurar ciertas aplicaciones ECS.

    Formato

    Un script debe iniciarse con #!, por ejemplo, #!/bin/bash y #!/usr/bin/env python.

    Cuando un script se inicia por primera vez, se ejecutará en el nivel rc.local-like, indicando una prioridad baja en la secuencia de arranque.

    La primera línea debe ser #cloud-config, y no se permite espacio delante de ella.

    Restricciones

    Antes de la codificación Base64, el tamaño de la secuencia de comandos, incluida la primera línea, no puede superar los 32 KB.

    Antes de la codificación Base64, el tamaño de la secuencia de comandos, incluida la primera línea, no puede superar los 32 KB.

    Frecuencia

    El script se ejecuta solo una vez cuando se inicia ECS por primera vez.

    La frecuencia de ejecución varía según las aplicaciones configuradas en el ECS.

  • ¿Cómo puedo ver los datos de usuario personalizados pasados a un ECS de Linux?
    1. Inicie sesión en el ECS.
    2. Ejecute el siguiente comando para ver los datos de usuario personalizados como usuario root:

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

  • Ejemplos de uso de scripts

    Esta sección describe cómo inyectar scripts en diferentes formatos en ECS de Linux y ver resultados de ejecución de scripts.

    Ejemplo 1: Inyectar un script de datos de usuario.

    Al crear un ECS, establezca User Data en As text e introduzca el script de datos de usuario personalizado.

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

    Después de crear el ECS, iniciarlo y ejecutar el comando cat [file] para comprobar el resultado de la ejecución del script.

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

    Ejemplo 2: Inyecte un script de datos de Cloud-Config.

    Al crear un ECS, establezca User Data en As text e introduzca el script de datos de usuario personalizado.

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

    Después de crear el ECS, iniciarlo y ejecutar el comando cat /etc/hosts para comprobar el resultado de la ejecución del script.

    Figura 2 Consulta de resultados operativos

Scripts de datos de usuario de ECS de Windows

Los scripts de datos de usuario personalizados de ECS de Windows se basan en la arquitectura Cloudbase-Init de código abierto. Esta arquitectura utiliza metadatos de ECS como origen de datos para inicializar y configurar automáticamente los ECS. Los tipos de script personalizados son compatibles con Cloudbase-Init de código abierto. Para obtener más información sobre Cloudbase-Init, consulte https://cloudbase-init.readthedocs.io/en/latest/userdata.html.

  • Tipo de script: tanto los scripts de programa de procesamiento por lotes como los scripts de PowerShell son compatibles.
    Tabla 2 Tipos de script de Windows ECS

    -

    Script de programa de procesamiento por lotes

    Script de PowerShell

    Formato

    El script debe iniciarse con rem cmd, que es la primera línea del script. No se permite ningún espacio al principio de la primera línea.

    El script debe iniciarse con #ps1, que es la primera línea del script. No se permite ningún espacio al principio de la primera línea.

    Restricciones

    Antes de la codificación Base64, el tamaño de la secuencia de comandos, incluida la primera línea, no puede superar los 32 KB.

    Antes de la codificación Base64, el tamaño de la secuencia de comandos, incluida la primera línea, no puede superar los 32 KB.

  • ¿Cómo puedo ver los datos de usuario personalizados que se pasan a un ECS de Windows?
    1. Inicie sesión en el ECS.
    2. Acceda a la siguiente URL en el cuadro de dirección del navegador y vea los datos del usuario:

      http://169.254.169.254/openstack/latest/user_data

  • Ejemplos de uso de scripts

    Esta sección describe cómo inyectar scripts en diferentes formatos en ECS de Windows y ver resultados de ejecución de scripts.

    Ejemplo 1: Inyecte un script de programa de procesamiento por lotes.

    Al crear un ECS, establezca User Data en As text e introduzca el script de datos de usuario personalizado.

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

    Después de crear el ECS, iniciarlo y comprobar el resultado de la ejecución del script. En este ejemplo, se agrega un archivo de texto denominado 1111 al disco C:\.

    Figura 3 Creación de archivos de texto (Lote)

    Para ver los datos de usuario pasados a ECS de Windows, inicie sesión en http://169.254.169.254/openstack/latest/user_data.

    Figura 4 Consulta de datos de usuario (Lote)

    Ejemplo 2: Inyectar un script de PowerShell.

    Al crear un ECS, establezca User Data en As text e introduzca el script de datos de usuario personalizado.

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

    Después de crear el ECS, iniciarlo y comprobar el resultado de la ejecución del script. En este ejemplo, se agrega un archivo de texto denominado aaaa al disco C:\.

    Figura 5 Creación de un archivo de texto (PowerShell)

    Para ver los datos de usuario pasados a ECS de Windows, inicie sesión en http://169.254.169.254/openstack/latest/user_data.

    Figura 6 Consulta de datos de usuario (PowerShell)

Caso 1

Este caso ilustra cómo usar la función de paso de datos de usuario para simplificar la configuración de ECS de Linux.

En este ejemplo, vim está configurado para habilitar el resaltado de sintaxis, mostrar números de línea y establecer la tabulación en 4. El archivo de configuración.vimrc se crea e inyecta en el directorio /root/.vimrc durante la creación de ECS. Después de crear el ECS, vim se configura automáticamente en función de sus requisitos. Esto mejora la eficiencia de la configuración de ECS, especialmente en escenarios de creación de ECS por lotes.

Ejemplo de datos de usuario:

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

Caso 2

Este caso ilustra cómo usar la función de paso de datos de usuario para establecer la contraseña para iniciar sesión en un ECS de Linux.

La nueva contraseña debe cumplir con los requisitos de complejidad de contraseña enumerados en Tabla 3.

Tabla 3 Requerimientos de complejidad de la contraseña

Parámetro

Requisito

Valor de ejemplo

Contraseña

  • Consta de 8 a 26 caracteres.
  • Contiene al menos tres de los siguientes tipos de caracteres:
    • Letras en mayúscula
    • Letras en minúscula
    • Dígitos
    • Caracteres especiales para Windows: $!@%-_=+[]:./,?
    • Caracteres especiales para Linux: !@%-_=+[]:./^,{}?
  • No puede contener el nombre de usuario ni el nombre de usuario escrito al revés.
  • No puede contener más de dos caracteres consecutivos en la misma secuencia que aparecen en el nombre de usuario. (Este requisito solo se aplica a los ECS de Windows.)

YNbUwp!dUc9MClnv

NOTA:

La contraseña de ejemplo se genera aleatoriamente. No lo use.

Ejemplo de datos de usuario:

  • Usar una contraseña de texto cifrado (recomendado)
    #!/bin/bash 
    echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig' | chpasswd -e;

    En el resultado del comando anterior, $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig es la contraseña de texto cifrado, que puede generarse de la siguiente manera:

    1. Ejecute el siguiente comando para generar un valor cifrado de texto cifrado:

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

      Se muestra la siguiente información:

      $6$V6azyeLwcD3CHlpY
    2. Ejecute el siguiente comando para generar una contraseña de texto cifrado basada en el valor salt:

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

      Se muestra la siguiente información:

      $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig

Después de crear el ECS, puede usar la contraseña para iniciar sesión en él.

Caso 3

Este caso ilustra cómo usar la función de paso de datos de usuario para restablecer la contraseña para iniciar sesión en un ECS de Linux.

En este ejemplo, la contraseña del usuario root se restablece a ******.

La nueva contraseña debe cumplir con los requisitos de complejidad de contraseña enumerados en Tabla 4.

Tabla 4 Requerimientos de complejidad de la contraseña

Parámetro

Requisito

Valor de ejemplo

Contraseña

  • Consta de 8 a 26 caracteres.
  • Contiene al menos tres de los siguientes tipos de caracteres:
    • Letras en mayúscula
    • Letras en minúscula
    • Dígitos
    • Caracteres especiales para Windows: $!@%-_=+[]:./,?
    • Caracteres especiales para Linux: !@%-_=+[]:./^,{}?
  • No puede contener el nombre de usuario ni el nombre de usuario escrito al revés.
  • No puede contener más de dos caracteres consecutivos en la misma secuencia que aparecen en el nombre de usuario. (Este requisito solo se aplica a los ECS de Windows.)

YNbUwp!dUc9MClnv

NOTA:

La contraseña de ejemplo se genera aleatoriamente. No lo use.

Ejemplo de datos de usuario (Mantiene la sangría en el siguiente script):

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

Después de crear el ECS, puede usar la contraseña de restablecimiento para iniciar sesión en él. Para garantizar la seguridad del sistema, cambie la contraseña del usuario root después de iniciar sesión en ECS por primera vez.

Caso 4

Este caso ilustra cómo utilizar la función de paso de datos de usuario para crear un usuario en un ECS de Windows y configurar la contraseña para el usuario.

En este ejemplo, el nombre de usuario del usuario es abc, su contraseña es ******, y el usuario se agrega al grupo de usuarios administrators.

La nueva contraseña debe cumplir con los requisitos de complejidad de contraseña enumerados en Tabla 4.

Ejemplo de datos de usuario:

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

Después de crear el ECS, puede utilizar el nombre de usuario y la contraseña creados para iniciar sesión en él.

Caso 5

Este caso ilustra cómo utilizar la función de paso de datos del usuario para actualizar paquetes de software del sistema para ECS de Linux y habilitar el servicio HTTPd. Después de pasar los datos de usuario a un ECS, puede utilizar el servicio HTTPd.

Ejemplo de datos de usuario:

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

Caso 6

Este caso ilustra cómo usar la función de paso de datos de usuario para asignar permisos de usuario root para iniciar sesión remotamente en un ECS de Linux. Después de pasar el archivo a un ECS, puede iniciar sesión en el ECS como usuario root usando autenticación de par de claves SSH.

Ejemplo de datos de usuario:

#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

Enlaces útiles

Para obtener más información sobre casos de paso de datos de usuario, visite el sitio web oficial de Cloud-init/Cloudbase-init: