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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Inyección de datos de usuario

Actualización más reciente 2025-02-18 GMT+08:00

Escenarios de aplicación

Puede inyectar datos de usuario para configurar los BMS.

  • Utilice scripts para simplificar la configuración de BMS.
  • Utilice scripts para inicializar los sistemas operativos de BMS.
  • Sube scripts a los BMS en el momento de la creación.
  • Utilice scripts para otros objetivos.

Restricciones

  • Linux:
    • La imagen que se utiliza para crear BMS debe tener Cloud-Init instalado.
    • Los datos de usuario que se inyectarán deben ser inferiores o iguales a 32 KB.
    • Los datos de usuario cargados como texto solo pueden contener caracteres de ASCII. Los datos de usuario cargados como un archivo pueden contener cualquier carácter y el tamaño del archivo debe ser inferior o igual a 32 KB.
    • La imagen que se utiliza para crear BMS 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 script debe cumplir con las especificaciones de script de datos de usuario para BMS de Linux.
    • DHCP debe estar habilitado para la VPC y el puerto 80 debe estar habilitado para el grupo de seguridad en la dirección de salida.
    • Si se utiliza el inicio de sesión con contraseña, la inyección de datos de usuario dejará de estar disponible.
  • Windows:
    • La imagen que se utiliza para crear BMS debe tener Cloudbase-Init instalado.
    • Los datos de usuario que se inyectarán deben ser inferiores o iguales a 32 KB.
    • Los datos de usuario cargados como texto solo pueden contener caracteres de ASCII. Los datos de usuario cargados como un archivo pueden contener cualquier carácter y el tamaño del archivo debe ser inferior o igual a 32 KB.
    • La imagen que se utiliza para crear BMS 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 para la VPC y el puerto 80 debe estar habilitado para el grupo de seguridad en la dirección de salida.

Procedimiento

  1. Cree un script de datos de usuario. El formato debe cumplir con las especificaciones del script de datos del usuario. Para obtener más información, véase Enlaces útiles.
  2. Al crear un BMS, establezca Advanced Settings en Configure now y pegue el contenido del script de datos de usuario en el cuadro de texto User Data o cargue el archivo de datos de usuario.
    Figura 1 Inyección de datos de usuario
  3. El BMS creado ejecuta automáticamente Cloud-Init o Cloudbase-Init para leer el script de datos del usuario al iniciarse.

Scripts de datos de usuario de BMS de Linux

Los scripts de datos de usuario de los BMS de Linux se personalizan mediante el uso de la arquitectura de código abierto Cloud-Init. Esta arquitectura utiliza metadatos de BMS como origen de datos para configurar automáticamente los BMS. Los tipos de script 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 de script: Un script de datos de usuario se ejecuta después del tiempo en que el estado del BMS de destino cambia a Running y antes del tiempo en que se ejecuta /etc/init.
    NOTA:

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

  • Tipo de script: scripts de datos de usuario y scripts de datos de Cloud-Config
    Tabla 1 Tipos de script de BMS de Linux

    -

    Script de datos de usuario

    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 la fuente Yum y la clave SSH, se utilizan para configurar ciertas aplicaciones de BMS.

    Formato

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

    Cuando el BMS se inicia por primera vez, el script 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.

    Restricción

    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 el BMS por primera vez.

    La frecuencia de ejecución varía dependiendo de las aplicaciones instaladas en el BMS.

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

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

  • Ejemplos

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

    Ejemplo 1: Inyectar un script de datos de usuario.

    Al crear un BMS, establezca User Data en As Text e introduzca el contenido del script de datos del usuario.

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

    Una vez creado el BMS, inícielo y ejecute 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: Inyectar un script de datos de Cloud-Config.

    Al crear un BMS, establezca User Data en As Text e introduzca el contenido del script de datos del usuario.

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

    Una vez creado el BMS, inícielo y ejecute el comando cat /etc/hosts para comprobar el resultado de la ejecución del script.

    Figura 2 Consulta del resultado de la ejecución

Scripts de datos de usuario de BMS de Windows

Los scripts de datos de usuario de los BMS de Windows se personalizan mediante la arquitectura Cloudbase-Init de código abierto. Esta arquitectura utiliza metadatos de BMS como origen de datos para inicializar y configurar automáticamente los BMS. Los tipos de script 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: scripts de programa de procesamiento por lotes y scripts de PowerShell
    Tabla 2 Tipos de scripts de BMS de Windows

    -

    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.

    Restricción

    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 inyectados en un BMS de Windows?
    1. Inicie sesión en el BMS.
    2. Ingrese la siguiente URL en el cuadro de dirección de un navegador y vea los datos de usuario inyectados:

      http://169.254.169.254/openstack/latest/user_data

  • Ejemplos

    Esta sección describe cómo inyectar secuencias de comandos en diferentes formatos en BMS de Windows y ver los resultados de ejecución de secuencias de comandos.

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

    Al crear un BMS, establezca User Data en As Text e introduzca el contenido del script de datos del usuario.

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

    Una vez creado el BMS, inícielo y compruebe el resultado de la ejecución del script. En este ejemplo, se agrega un archivo de texto denominado 1111 al disco C:\.

    Figura 3 Archivo de texto 1111.txt

    Para ver los datos de usuario inyectados en el BMS de Windows, inicie sesión en http://169.254.169.254/openstack/latest/user_data.

    Figura 4 Consulta de datos de usuario en 1111.txt

    Ejemplo 2: Inyectar un script de PowerShell.

    Al crear un BMS, establezca User Data en As Text e introduzca el contenido del script de datos del usuario.

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

    Una vez creado el BMS, inícielo y compruebe el resultado de la ejecución del script. En este ejemplo, se agrega un archivo de texto denominado aaaa al disco C:\.

    Figura 5 Archivo de texto aaaa.txt

    Para ver los datos de usuario inyectados en el BMS de Windows, inicie sesión en http://169.254.169.254/openstack/latest/user_data.

    Figura 6 Consulta de datos de usuario en aaaa.txt

Caso 1

Este caso ilustra cómo inyectar datos de usuario para simplificar la configuración de BMS.

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 del BMS. Después de crear el BMS, vim se configura automáticamente en función de sus requisitos. Esto ayuda a mejorar la eficiencia de la configuración de BMS, especialmente cuando está creando BMS por un lote.

El script es el siguiente:

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

Caso 2

Este caso ilustra cómo inyectar datos de usuario para restablecer la contraseña para iniciar sesión en un BMS de Linux.

En este ejemplo, la contraseña del usuario root se restablecerá a "******".

NOTA:

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

Tabla 3 Requerimientos de contraseña

Parámetro

Requerimientos

Valor de ejemplo

Contraseña

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

Test12$@

El script es el siguiente (contener la sangría en el siguiente script):

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

Después de crear el BMS, puede usar la nueva contraseña 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 el BMS por primera vez.

Caso 3

Este caso ilustra cómo inyectar datos de usuario para crear un usuario en un BMS de Windows y establecer una 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.

NOTA:

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

Tabla 4 Requerimientos de contraseña

Parámetro

Requerimientos

Valor de ejemplo

Contraseña

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

Test12$@

El script es el siguiente:

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

Después de crear el BMS, puede usar su nombre de usuario y contraseña para iniciar sesión en él.

Caso 4

Este caso ilustra cómo inyectar datos de usuario para actualizar paquetes de software del sistema para un BMS de Linux y habilitar el servicio HTTPd. Después de inyectar los datos de usuario, puede utilizar el servicio HTTPd.

El script es el siguiente:

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

Caso 5

Este caso ilustra cómo inyectar datos de usuario para asignar el permiso root de usuario para iniciar sesión remotamente en un BMS de Linux. Después de inyectar el archivo, puede iniciar sesión en el BMS como root de usuario en modo de autenticación de clave SSH.

El script es el siguiente:

#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 los casos de inyección de datos de usuario, visite el sitio web oficial de Cloud-init/Cloudbase-init:

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios