Agregar un script de instalación de la compilación - Amazon GameLift Servers

Agregar un script de instalación de la compilación

Cree un script de instalación para el sistema operativo (SO) de la compilación del juego:

  • Windows: cree un archivo de procesamiento por lotes denominado “install.bat”.

  • Linux: cree un archivo de script de intérprete de comandos denominado “install.sh“.

Al crear un script de instalación, tenga en cuenta lo siguiente:

  • El script no puede aceptar ninguna entrada por parte del usuario.

  • Amazon GameLift Servers instala la compilación y vuelve a crear los directorios de archivos del paquete de compilación en un servidor de alojamiento en las siguientes ubicaciones:

    • Flotas de Windows: C:\game

    • Flotas de Linux: /local/game

  • Durante el proceso de instalación para flotas de Linux, el usuario que realiza la ejecución tiene acceso limitado a la estructura de archivos de la instancia. Dicho usuario dispone de acceso completo al directorio en el que se instalan los archivos de compilación. Si el script de instalación realiza acciones que requieren permisos de administrador, especifique el acceso de administrador mediante sudo. El usuario en ejecución para las flotas de Windows dispone de permisos de administrador de forma predeterminada. Los errores de permisos relacionados con el script de instalación generan un mensaje de evento que indica un problema con el script.

  • En Linux, Amazon GameLift Servers admite lenguajes comunes de intérprete de comandos, como bash. Añada un shebang (como #!/bin/bash) al principio del script de instalación. Para verificar la compatibilidad con los comandos de intérprete de comandos de su preferencia, inicie una sesión remota en una instancia de Linux activa y abra una petición del intérprete de comandos. Para obtener más información, consulte Conexión remota a instancias de flota de Amazon GameLift Servers.

  • El script de instalación no puede confiar en una conexión de emparejamiento de VPC. La conexión de emparejamiento de VPC no estará disponible hasta que Amazon GameLift Servers instale la compilación en las instancias de la flota.

ejemplo Archivo bash de instalación de Windows

En este ejemplo, el archivo install.bat instala los componentes del tiempo de ejecución de Visual C++ necesarios para el servidor de juegos y escribe los resultados en un archivo de registro. El script incluye el archivo de componente en el paquete de compilación en la raíz.

vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
ejemplo Script de intérprete de comandos de instalación de Linux

Este archivo install.sh de ejemplo utiliza bash en el script de instalación y escribe los resultados en un archivo de registro.

#!/bin/bash echo 'Hello World' > install.log

Este archivo install.sh de ejemplo muestra cómo puede utilizar el agente de Amazon CloudWatch para recopilar métricas personalizadas y de nivel del sistema, y gestionar la rotación de registros. Puesto que Amazon GameLift Servers se ejecuta en una VPC de servicio, debe conceder permisos a Amazon GameLift Servers para que asuma un rol de AWS Identity and Access Management (IAM) en su nombre. Para permitir que Amazon GameLift Servers asuma un rol, cree un rol que incluya la política administrada CloudWatchAgentAdminPolicy de AWS y utilice ese rol cuando cree una flota.

sudo yum install -y amazon-cloudwatch-agent sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y collectd cat <<'EOF' > /tmp/config.json { "agent": { "metrics_collection_interval": 60, "run_as_user": "root", "credentials": { "role_arn": "arn:aws:iam::account#:role/rolename" } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/tmp/log", "log_group_name": "gllog", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "namespace": "GL_Metric", "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { // Configure metrics you want to collect. // For more information, see Manually create or edit the CloudWatch agent configuration file. } } } EOF sudo mv /tmp/config.json /opt/aws/amazon-cloudwatch-agent/bin/config.json sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json sudo systemctl enable amazon-cloudwatch-agent.service