

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Cómo crear un paquete en Distributor
<a name="distributor-working-with-packages-create"></a>

Para crear un paquete, prepare su software o activos instalables, un archivo por plataforma de sistema operativo. Se requiere al menos un archivo para crear un paquete.

A veces distintas plataformas pueden utilizar el mismo archivo, pero todos los archivos que asocie a su paquete deben incluirse en la sección `Files` del manifiesto. Si está creando un paquete utilizando el flujo de trabajo simple en la consola, el manifiesto se genera para usted. El número máximo de archivos que se pueden asociar a un único documento es 20. El tamaño máximo de cada archivo es de 1 GB. Para obtener más información acerca de las plataformas admitidas, consulte [Plataformas de paquetes y arquitecturas admitidas](distributor.md#what-is-a-package-platforms).

Al crear un paquete, el sistema crea un nuevo [documento de SSM](documents.md). Este documento le permite implementar el paquete en nodos administrados.

Solo para fines de demostración, hay un paquete de ejemplo, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), que puede descargar desde nuestro sitio web. El paquete de ejemplo incluye un manifiesto JSON previamente completado y tres archivos.zip que contienen instaladores para PowerShell v7.0.0. Los scripts de instalación y desinstalación no contienen comandos válidos. Aunque debe comprimir cada software instalable y scripts en un archivo .zip para crear un paquete en el flujo de trabajo **Avanzado**, no debe comprimir los recursos instalables en el flujo de trabajo **Simple**.

**Topics**
+ [Cómo crear un paquete mediante el flujo de trabajo simple](#distributor-working-with-packages-create-simple)
+ [Cómo crear un paquete mediante el flujo de trabajo avanzado](#distributor-working-with-packages-create-adv)

## Cómo crear un paquete mediante el flujo de trabajo simple
<a name="distributor-working-with-packages-create-simple"></a>

Esta sección describe cómo crear un paquete en Distributor mediante la elección del flujo de trabajo de creación de paquete **Simple** en la consola de Distributor. Distributor es una herramienta de AWS Systems Manager. Para crear un paquete, prepare los archivos de los recursos instalables, un archivo por plataforma de sistema operativo. Se requiere al menos un archivo para crear un paquete. El proceso de creación de paquetes **simple** genera scripts de instalación y desinstalación, resúmenes de archivos y un manifiesto con formato JSON para usted. El flujo de trabajo **Simple** gestiona el proceso de cargar y comprimir sus archivos instalables, así como el proceso de crear un nuevo paquete y un [documento SSM](documents.md) asociado. Para obtener más información acerca de las plataformas admitidas, consulte [Plataformas de paquetes y arquitecturas admitidas](distributor.md#what-is-a-package-platforms).

Cuando se utiliza el método simple para crear un paquete, Distributor crea scripts `install` y `uninstall` en su nombre. Sin embargo, al crear un paquete para una actualización in-situ, debe proporcionar su propio contenido de script de `update` en la pestaña **Update script (Script de actualización)**. Cuando agrega comandos de entrada para un script de `update`, Distributor incluye este script en el paquete .zip que crea para usted, junto con los scripts `install` y `uninstall`.

**nota**  
Utilice la opción de actualización `In-place` para agregar archivos nuevos o actualizados a una instalación de paquete existente sin desconectar la aplicación asociada.

**Cómo crear un paquete mediante el flujo de trabajo simple**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Distributor**.

1. En la página de Distributor inicio, elija **Crear paquete y**, a continuación, haga clic en **Simple**.

1. En la página **Añadir paquete**, escriba un nombre para su paquete. Los nombres de paquete solo pueden incluir letras, números, puntos, guiones y guiones bajos. El nombre debe ser lo suficientemente genérico como para aplicarse a todas las versiones de los archivos adjuntos del paquete, pero lo suficientemente concreto como para identificar la finalidad del paquete.

1. (Opcional) En **Version Name (Nombre de la versión)**, escriba un nombre de versión. Los nombres de las versiones pueden tener un máximo de 512 caracteres y no pueden contener caracteres especiales.

1. En **Location (Ubicación)**, seleccione un bucket mediante el nombre y el prefijo del bucket o mediante la dirección URL del bucket.

1. En **Cargar software**, elija **Agregar software**, y luego busque los archivos de software instalables con las extensiones `.rpm`, `.msi` o `.deb`. Si el nombre del archivo contiene espacios, se produce un error en la carga. Puede cargar más de un archivo de software en una única acción.

1. Para la **plataforma de destino**, verifique que la plataforma del sistema operativo de destino que se muestra para cada archivo instalable sea correcta. Si el sistema operativo que se muestra no es correcto, seleccione el sistema operativo correcto en la lista desplegable.

   En el flujo de trabajo de creación de paquetes **simple**, debido a que carga cada archivo instalable solo una vez, se requieren pasos adicionales para dar una orden Distributor a un único archivo en múltiples sistemas operativos. Por ejemplo, si carga un archivo de software instalable denominado `Logtool_v1.1.1.rpm`, debe cambiar algunos valores predeterminados en el flujo de trabajo **Simple** para dirigir al mismo software en las versiones compatibles de los sistemas operativos Amazon Linux y Ubuntu Server. Al apuntar a varias plataformas, realice una de las siguientes acciones.
   + Utilice el flujo de trabajo **avanzado** en su lugar, comprima cada archivo instalable en un archivo .zip antes de comenzar y cree manualmente el manifiesto para que un archivo instalable pueda ser dirigido a múltiples plataformas o versiones de sistemas operativos. Para obtener más información, consulte [Cómo crear un paquete mediante el flujo de trabajo avanzado](#distributor-working-with-packages-create-adv).
   + Edite manualmente el archivo de manifiesto en el flujo de trabajo **simple** para que su archivo .zip esté dirigido a múltiples plataformas o versiones del sistema operativo. Para obtener más información acerca de cómo hacerlo, consulte el final del paso 4 en [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest).

1. En **Platform version** (Versión de la plataforma), verifique que la versión de la plataforma del sistema operativo que se muestra sea **\$1any**, una versión de lanzamiento principal seguida de una comodín (7.\$1) o la versión exacta de lanzamiento del sistema operativo a la que desea que se aplique su software. Para obtener más información sobre cómo especificar una versión de plataforma del sistema operativo, consulte el paso 4 en [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest).

1. En **Architecture** (Arquitectura), elija la arquitectura de procesador correcta para cada archivo instalable de la lista desplegable. Para obtener más información acerca de las arquitecturas de procesadores compatibles, consulte [Plataformas de paquetes y arquitecturas admitidas](distributor.md#what-is-a-package-platforms).

1. (Opcional) Expanda los **scripts** y revise los scripts que Distributor genera para su software instalable.

1. (Opcional) Para proporcionar un script de actualización para su uso con actualizaciones in situ, expanda **Scripts**, elija la pestaña **Update script (Script de actualización)** e introduzca los comandos de script de actualización.

   Systems Manager no genera scripts de actualización en su nombre.

1. Para añadir más archivos de software instalable, seleccione **Añadir software**. De no ser así, vaya al siguiente paso.

1. (Opcional) Expanda el **manifiesto**, y revise el manifiesto del paquete JSON que Distributor genera para su software instalable. Si cambió alguna información sobre su software desde que comenzó este procedimiento, como la versión de plataforma o la plataforma de destino, elija **Generar manifiesto** para mostrar el manifiesto actualizado del paquete.

   Puede editar el manifiesto manualmente si desea dirigir un software instalable en más de un sistema operativo, como se describe en el paso 8. Para obtener más información sobre cómo editar el manifiesto, consulte [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest).

1. Elija **Create package (Crear paquete)**.

Espere que Distributor termine de cargar su software y crear el paquete. Distributor muestra el estado de carga para cada archivo instalable. En función del número y el tamaño de los paquetes que se agregan, esto puede tardar unos minutos. Distributor automáticamente le redirige a la página **Detalles del paquete** para el nuevo paquete, pero puede elegir abrir esta página usted mismo después de que el software se haya cargado. La página **Detalles del paquete** no muestra toda la información sobre el paquete hasta que Distributor termine el proceso de creación de paquete. Para detener el proceso de carga y creación del paquete, seleccione **Cancelar**.

Si Distributor no puede cargar cualquiera de los archivos de instalación de software, muestra un mensaje de **Upload failed** (Carga fallida). Para volver a intentar la carga, elija **Reintentar carga**. Para obtener más información acerca de cómo solucionar errores en la creación de paquetes, consulte [AWS Systems ManagerSolución de problemasDistributor](distributor-troubleshooting.md).

## Cómo crear un paquete mediante el flujo de trabajo avanzado
<a name="distributor-working-with-packages-create-adv"></a>

En esta sección podrá descubrir cómo los usuarios avanzados pueden crear un paquete en Distributor después de cargar recursos instalables comprimidos con scripts de instalación y desinstalación, así como un archivo de manifiesto JSON, en un bucket de Amazon S3.

Para crear un paquete, prepare los archivos .zip de los recursos instalables, un archivo .zip por plataforma de sistema operativo. Se requiere al menos un archivo .zip para crear un paquete. A continuación, cree un manifiesto JSON. El manifiesto incluye indicadores a los archivos de código del paquete. Cuando tenga sus archivos de código necesarios agregados a una carpeta o un directorio y el manifiesto se haya rellenado con los valores correctos, cargue el paquete en un bucket de S3.

Hay disponible un paquete de ejemplo, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), para su descarga desde nuestro sitio web. El paquete de ejemplo incluye un manifiesto JSON completo y tres archivos .zip.

**Topics**
+ [Paso 1: crear los archivos ZIP](#packages-zip)
+ [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest)
+ [Paso 3: cargar el paquete y el manifiesto en un bucket de Amazon S3](#packages-upload-s3)
+ [Paso 4: añadir un paquete a Distributor](#distributor-working-with-packages-add)

### Paso 1: crear los archivos ZIP
<a name="packages-zip"></a>

La base del paquete es al menos un archivo .zip P de recursos instalables o software. Un paquete incluye un archivo .zip por sistema operativo que desee admitir, a menos que un archivo .zip se pueda instalar en varios sistemas operativos. Por ejemplo, las versiones compatibles de las instancias de Red Hat Enterprise Linux y Amazon Linux normalmente pueden ejecutar los mismos archivos ejecutables .RPM, por lo que debe adjuntar un único archivo .zip en el paquete para admitir ambos sistemas operativos.

**Archivos requeridos**  
Se requieren los elementos siguientes en cada archivo .zip:
+ Un script de **install** y un script de **uninstall**. Los nodos administrados basados en Windows Server requieren scripts de PowerShell (scripts denominados `install.ps1` y `uninstall.ps1`). Los nodos administrados basados en Linux requieren scripts de shell (scripts denominados `install.sh` y `uninstall.sh`). SSM Agent ejecuta las instrucciones de los scripts **install** y **uninstall**.

  Por ejemplo, los scripts de instalación podrían ejecutar un instalador (como .rpm o .msi), podrían copiar archivos o establecer opciones de configuración.
+ Un archivo ejecutable, paquetes de instalador (.rpm, .deb, .msi, etc.) y otros scripts o archivos de configuración.

**Archivos opcionales**  
El siguiente elemento es opcional en cada archivo .zip:
+ Un script **update**. Proporcionar un script de actualización le permite utilizar la opción `In-place update` para instalar un paquete. Si desea agregar archivos nuevos o actualizados a una instalación de paquete existente, la opción `In-place update` no desconecta la aplicación de paquete mientras se realiza la actualización. Los nodos administrados basados en Windows Server requieren un script de PowerShell (script denominado `update.ps1`). Los nodos administrados basados en Linux requieren un script de shell (script denominado `update.sh`). SSM Agent ejecuta las instrucciones del script **update**.

Para obtener más información acerca de la instalación o actualización de paquetes, consulte [Instalar o actualizar paquetes de Distributor](distributor-working-with-packages-deploy.md).

Para ver ejemplos de archivos .zip, incluidos los scripts de muestra **install** y **uninstall**, descargue el paquete de ejemplo, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip).

### Paso 2: crear el manifiesto del paquete JSON
<a name="packages-manifest"></a>

Después de preparar y comprimir sus archivos instalables, cree un manifiesto JSON. Lo siguiente es una plantilla. Las partes de la plantilla de manifiesto se describen en el procedimiento que se describe en esta sección. Puede utilizar un editor de JSON para crear este manifiesto en un archivo independiente. Si lo prefiere, puede crear el manifiesto en la consola de AWS Systems Manager cuando cree un paquete.

```
{
  "schemaVersion": "2.0",
  "version": "your-version",
  "publisher": "optional-publisher-name",
  "packages": {
    "platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-1.zip"
        }
      }
    },
    "another-platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-2.zip"
        }
      }
    },
    "another-platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-3.zip"
        }
      }
    }
  },
  "files": {
    ".zip-file-name-1.zip": {
      "checksums": {
        "sha256": "checksum"
      }
    },
    ".zip-file-name-2.zip": {
      "checksums": {
        "sha256": "checksum"
      }
    }
  }
}
```

**Cómo crear un manifiesto del paquete JSON**

1. Añada la versión de esquema al manifiesto. En esta versión, la versión de esquema es siempre `2.0`.

   ```
   { "schemaVersion": "2.0",
   ```

1. Añada una versión del paquete definido por el usuario al manifiesto. También es el valor de **Version name (Nombre de versión)** que ha especificado al agregar el paquete a Distributor. Pasa a formar parte del documento de AWS Systems Manager que crea Distributor al agregar el paquete. También proporciona este valor como una entrada en el documento `AWS-ConfigureAWSPackage` para instalar una versión del paquete que no sea la última. Un valor `version` puede contener letras, números, guiones bajos, guiones y puntos, y tener un máximo de 128 caracteres de longitud. Le recomendamos que utilice una versión del paquete en lenguaje natural para facilitarle a usted y a los demás administradores la especificación de las versiones de paquete exactas durante la implementación. A continuación se muestra un ejemplo.

   ```
   "version": "1.0.1",
   ```

1. (Opcional). Añada un nombre de editor. A continuación se muestra un ejemplo.

   ```
   "publisher": "MyOrganization",
   ```

1. Añada paquetes. En la sección `"packages"` se describen las plataformas, las versiones de lanzamiento y las arquitecturas compatibles con los archivos .zip en el paquete. Para obtener más información, consulte [Plataformas de paquetes y arquitecturas admitidas](distributor.md#what-is-a-package-platforms).

   El valor *platform-version* puede ser el valor de comodín `_any`. Utilícelo para indicar que un archivo .zip admite cualquier versión de la plataforma. También puede especificar una versión de lanzamiento principal seguida de un comodín para que se admitan todas las versiones secundarias, como la 7.\$1. Si elige especificar un valor de *platform-version* para una versión específica del sistema operativo, asegúrese de que coincida con la versión de lanzamiento exacta del sistema operativo AMI de destino. A continuación, se muestran los recursos sugeridos para obtener el valor correcto del sistema operativo.
   + En nodos administrados basados en Windows Server, la versión de lanzamiento está disponible como datos de Windows Management Instrumentation (WMI). Puede ejecutar el siguiente comando del símbolo del sistema para obtener información de la versión y, a continuación, analizar los resultados de `version`.

     ```
     wmic OS get /format:list
     ```
   + En un nodo administrado basado en Linux, obtenga la versión escaneando en primer lugar la versión del sistema operativo (el siguiente comando). Busque el valor de `VERSION_ID`.

     ```
     cat /etc/os-release
     ```

     Si esto no da los resultados que necesita, ejecute el siguiente comando para obtener información de la versión LSB del archivo `/etc/lsb-release` y busque el valor de `DISTRIB_RELEASE`.

     ```
     lsb_release -a
     ```

     Si estos métodos fallan, normalmente puede encontrar la versión según la distribución. Por ejemplo, en Debian Server, puede examinar el archivo `/etc/debian_version` o, en Red Hat Enterprise Linux, el archivo `/etc/redhat-release`.

     ```
     hostnamectl
     ```

   ```
   "packages": {
       "platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-1.zip"
           }
         }
       },
       "another-platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-2.zip"
           }
         }
       },
       "another-platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-3.zip"
           }
         }
       }
     }
   ```

   A continuación se muestra un ejemplo. En este ejemplo, la plataforma del sistema operativo es `amazon`, la versión de lanzamiento compatible es `2016.09`, la arquitectura es `x86_64` y el archivo .zip que es compatible con esta plataforma es `test.zip`.

   ```
   {
       "amazon": {
           "2016.09": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   Puede añadir el valor de comodín `_any` para indicar que el paquete es compatible con todas las versiones del elemento principal. Por ejemplo, para indicar que el paquete es compatible con cualquier versión de lanzamiento de Amazon Linux, la instrucción del paquete será parecida a la que se muestra a continuación. Puede utilizar el comodín `_any` en los niveles de arquitectura o versión para admitir todas las versiones de una plataforma o todas las arquitecturas de una versión, o todas las versiones y todas las arquitecturas de una plataforma.

   ```
   {
       "amazon": {
           "_any": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   En el siguiente ejemplo se agrega `_any` para mostrar que el primer paquete, `data1.zip`, es compatible con todas las arquitecturas de Amazon Linux 2016.09. El segundo paquete, `data2.zip`, es compatible con todas las versiones de Amazon Linux, pero solo para los nodos administrados con la arquitectura `x86_64`. Las versiones `2023.8` y `_any` son entradas bajo `amazon`. Hay una plataforma (Amazon Linux), pero diferentes versiones, arquitecturas y archivos .zip asociados admitidos.

   ```
   {
       "amazon": {
           "2023.8": {
               "_any": {
                   "file": "data1.zip"
               }
           },
           "_any": {
               "x86_64": {
                   "file": "data2.zip"
               }
           }
       }
   }
   ```

   Puede hacer referencia a un archivo .zip más de una vez en la sección `"packages"` del manifiesto, si el archivo .zip es compatible con más de una plataforma. Por ejemplo, si tiene un archivo .zip que admite versiones Red Hat Enterprise Linux 8.x y Amazon Linux, tendría dos entradas en la sección `"packages"` apuntando al mismo archivo .zip, como se muestra en el siguiente ejemplo.

   ```
   {
       "amazon": {
           "2023.8.20250715 ": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       },
       "redhat": {
           "8.*": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

1. Añada la lista de archivos .zip que forman parte de este paquete en el paso 4. Cada entrada de archivo requiere el nombre de archivo y el valor hash de la suma de comprobación `sha256`. Los valores de suma de comprobación en el manifiesto deben coincidir con el valor hash `sha256` en los recursos comprimidos para evitar que se produzca un error en la instalación de paquetes.

   Para obtener la suma de comprobación exacta de su instalables, puede ejecutar los siguientes comandos. En Linux, ejecute `shasum -a 256 file-name.zip` o `openssl dgst -sha256 file-name.zip`. En Windows, ejecute el cmdlet `Get-FileHash -Path path-to-.zip-file` en [PowerShell](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-6).

   La sección `"files"` del manifiesto incluye una referencia a cada uno de los archivos .zip del paquete.

   ```
   "files": {
           "test-agent-x86.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE2706223c7616ca9fb28863a233b38e5a23a8c326bb4ae241dcEXAMPLE"
               }
           },
           "test-agent-x86_64.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE572a745844618c491045f25ee6aae8a66307ea9bff0e9d1052EXAMPLE"
               }
           },
           "test-agent-x86_64.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           },
           "test-agent-x86.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE12a4abb10315aa6b8a7384cc9b5ca8ad8e9ced8ef1bf0e5478EXAMPLE"
               }
           },
           "test-agent-x86_64.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.rpm.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           }
       }
   ```

1. Una vez que haya añadido la información del paquete, guarde y cierre el archivo de manifiesto.

A continuación se muestra un ejemplo de un manifiesto completado. En este ejemplo, tiene un archivo .zip, `NewPackage_LINUX.zip`, que admite más de una plataforma, pero al que se hace referencia en la sección `"files"` solo una vez.

```
{
    "schemaVersion": "2.0",
    "version": "1.7.1",
    "publisher": "Amazon Web Services",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_WINDOWS.zip"
                }
            }
        },
        "amazon": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        },
        "ubuntu": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        }
    },
    "files": {
        "NewPackage_WINDOWS.zip": {
            "checksums": {
                "sha256": "EXAMPLEc2c706013cf8c68163459678f7f6daa9489cd3f91d52799331EXAMPLE"
            }
        },
        "NewPackage_LINUX.zip": {
            "checksums": {
                "sha256": "EXAMPLE2b8b9ed71e86f39f5946e837df0d38aacdd38955b4b18ffa6fEXAMPLE"
            }
        }
    }
}
```

#### Ejemplo de paquete
<a name="package-manifest-examples"></a>

Hay disponible un paquete de ejemplo, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), para su descarga desde nuestro sitio web. El paquete de ejemplo incluye un manifiesto JSON completo y tres archivos .zip.

### Paso 3: cargar el paquete y el manifiesto en un bucket de Amazon S3
<a name="packages-upload-s3"></a>

Prepare el paquete; para ello, copie o transfiera todos los archivos .zip a una carpeta o un directorio. Un paquete válido requiere el manifiesto que creó en [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest) y todos los archivos .zip identificados en la lista del archivo de manifiesto.

**Cómo cargar el paquete y el manifiesto en Amazon S3**

1. Copie o mueva todos los archivos de almacenamiento .zip que ha especificado en el manifiesto a una carpeta o un directorio. No comprima la carpeta ni el directorio al que mueve los archivos del archivo.zip y el archivo de manifiesto.

1. Cree un bucket o elija uno existente. Para obtener más información, consulte [Creación de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) en la *Guía de introducción a Amazon Simple Storage Service*. Para obtener más información acerca de cómo ejecutar un comando de AWS CLI para crear un bucket, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html) en la *Referencia de los comandos de la AWS CLI*.

1. Cargar la carpeta o el directorio en el bucket. Para obtener más información, consulte [Cargar un objeto en un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) en la *Guía de introducción a Amazon Simple Storage Service*. Si planea pegar el manifiesto JSON en la consola AWS Systems Manager, no cargue el manifiesto. Para obtener más información acerca de cómo ejecutar un comando de AWS CLI para cargar los archivos en un bucket, consulte [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html) en la *Referencia de los comandos de la AWS CLI*.

1. En la página de inicio del bucket, elija la carpeta o el directorio que se ha cargado. Si cargó sus archivos a una subcarpeta en un bucket, asegúrese de anotar la subcarpeta (también conocido como un *prefijo*). Necesita el prefijo para agregar el paquete a Distributor.

### Paso 4: añadir un paquete a Distributor
<a name="distributor-working-with-packages-add"></a>

Puede utilizar la consola de AWS Systems Manager, las herramientas de línea de comandos de AWS (AWS CLI y Herramientas de AWS para PowerShell) o los AWS SDK para agregar un nuevo paquete a Distributor. Cuando agrega un paquete, se agrega un nuevo [documento de SSM](documents.md). El documento le permite implementar el paquete en nodos administrados.

**Topics**
+ [Cómo agregar un destino mediante la consola](#create-pkg-console)
+ [Cómo agregar un paquete mediante la AWS CLI](#create-pkg-cli)

#### Cómo agregar un destino mediante la consola
<a name="create-pkg-console"></a>

Puede utilizar la consola de AWS Systems Manager para crear un paquete. Tenga listo el nombre del bucket al que se ha cargado el paquete en [Paso 3: cargar el paquete y el manifiesto en un bucket de Amazon S3](#packages-upload-s3).

**Cómo añadir un paquete a Distributor (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Distributor**.

1. En la página de Distributor inicio, elija **Crear paquete y**, a continuación, haga clic en **Avanzado**.

1. En la página **Añadir paquete**, escriba un nombre para su paquete. Los nombres de paquete solo pueden incluir letras, números, puntos, guiones y guiones bajos. El nombre debe ser lo suficientemente genérico como para aplicarse a todas las versiones de los archivos adjuntos del paquete, pero lo suficientemente concreto como para identificar la finalidad del paquete.

1. En **Version name (Nombre de versión)**, escriba el valor exacto de la entrada `version` en su archivo de manifiesto.

1. En **S3 bucket name (Nombre del bucket de S3)**, seleccione el nombre del bucket al que se ha cargado sus archivos .zip y manifiesto en [Paso 3: cargar el paquete y el manifiesto en un bucket de Amazon S3](#packages-upload-s3).

1. En **S3 key prefix (Prefijo de clave de S3)**, escriba la subcarpeta del bucket en el que están almacenados el manifiesto y sus archivos .zip.

1. En **Manifest** (Manifiesto), elija **Extract from package** (Extraer del paquete) para utilizar un manifiesto que ha cargado al bucket de Amazon S3 con sus archivos .zip.

   (Opcional) Si no subió su manifiesto JSON al bucket de Amazon S3 donde almacenó sus archivos .zip, elija **New manifest** (Nuevo manifiesto). Puede crear o pegar todo el manifiesto en el campo de edición de JSON. Para obtener más información sobre cómo crear el manifiesto JSON, consulte [Paso 2: crear el manifiesto del paquete JSON](#packages-manifest).

1. Cuando haya terminado con el manifiesto, elija **Crear paquete**.

1. Espere a que Distributor cree el paquete desde su archivos .zip y manifiesto. En función del número y el tamaño de los paquetes que se añaden, esto puede tardar unos minutos. Distributor automáticamente le redirige a la página de**detalles del paquete** pero puede elegir abrir esta página por usted mismo después de que el software se haya cargado. La página **Detalles del paquete** no muestra toda la información sobre el paquete hasta que Distributor termine el proceso de creación de paquete. Para detener el proceso de carga y creación del paquete, seleccione **Cancelar**.

#### Cómo agregar un paquete mediante la AWS CLI
<a name="create-pkg-cli"></a>

Puede utilizar la AWS CLI para crear un paquete. Tenga la URL lista desde el bucket en el que haya cargado el paquete en [Paso 3: cargar el paquete y el manifiesto en un bucket de Amazon S3](#packages-upload-s3).

**Cómo agregar un paquete a Amazon S3 mediante la AWS CLI**

1. Para usar la AWS CLI para crear un paquete, ejecute el siguiente comando, reemplazando *package-name* por el nombre del paquete y *path to manifest-file* por la ruta del archivo de manifiesto JSON. amzn-s3-demo-bucket es la URL del bucket Amazon S3 donde está almacenado todo el paquete. Al ejecutar el comando **create-document** en Distributor, debe especificar el valor `Package` para `--document-type`.

   Si no agregó el archivo de manifiesto al bucket de Amazon S3, el valor del parámetro `--content` es la ruta del archivo al archivo de manifiesto JSON.

   ```
   aws ssm create-document \
       --name "package-name" \
       --content file://path-to-manifest-file \
       --attachments Key="SourceUrl",Values="amzn-s3-demo-bucket" \
       --version-name version-value-from-manifest \
       --document-type Package
   ```

   A continuación se muestra un ejemplo.

   ```
   aws ssm create-document \
       --name "ExamplePackage" \
       --content file://path-to-manifest-file \
       --attachments Key="SourceUrl",Values="https://s3.amazonaws.com/amzn-s3-demo-bucket/ExamplePackage" \
       --version-name 1.0.1 \
       --document-type Package
   ```

1. Compruebe que el paquete se añadió y que muestra el manifiesto de paquete mediante la ejecución del siguiente comando, sustituyendo *package-name* por el nombre de su paquete. Para obtener una versión específica del documento (no la misma que la versión de un paquete), puede agregar el parámetro `--document-version`.

   ```
   aws ssm get-document \
       --name "package-name"
   ```

Para obtener más información acerca de otras opciones que puede utilizar con el comando **create-document**, consulte [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html) en la sección sobre AWS Systems Manager de la *Referencia de comandos de la AWS CLI*. Para obtener más información sobre otras opciones que puede usar con el comando **get-document**, consulte [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html).