

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di istanze autonome come nodi di accesso AWS PCS
<a name="working-with_login-nodes_standalone"></a>

Puoi configurare istanze EC2 indipendenti per interagire con lo scheduler Slurm di un cluster AWS PCS. Ciò è utile per creare nodi di accesso, workstation o host dedicati alla gestione del flusso di lavoro che funzionano con i cluster AWS PCS ma operano al di fuori della gestione PCS. AWS A tale scopo, ogni istanza autonoma deve:

1. Avere installata una versione del software Slurm compatibile.

1. Essere in grado di connettersi all'endpoint Slurmctld del cluster AWS PCS.

1. Configurate correttamente Slurm Auth e Cred Kiosk Daemon () con l'endpoint e il segreto del cluster PCS. `sackd` AWS [Per ulteriori informazioni, vedete sackd nella documentazione di Slurm.](https://slurm.schedmd.com/sackd.html)

 Questo tutorial ti aiuta a configurare un'istanza indipendente che si connette a un cluster PCS. AWS 

**Contents**
+ [Passaggio 1: recuperare l'indirizzo e il segreto per il cluster AWS PCS di destinazione](working-with_login-nodes_standalone_get-addr.md)
+ [Fase 2: Avvio di un'istanza EC2](working-with_login-nodes_standalone_launch.md)
+ [Passaggio 3: installa Slurm sull'istanza](working-with_login-nodes_standalone_install-slurm.md)
+ [Fase 4 — Recuperare e archiviare il segreto del cluster](working-with_login-nodes_standalone_get-secret.md)
+ [Fase 5 — Configurare la connessione al cluster PCS AWS](working-with_login-nodes_standalone_configure-connection.md)
+ [Fase 6 — (Facoltativo) Verifica della connessione](working-with_login-nodes_standalone_test.md)

# Passaggio 1: recuperare l'indirizzo e il segreto per il cluster AWS PCS di destinazione
<a name="working-with_login-nodes_standalone_get-addr"></a>

Recupera i dettagli sul cluster AWS PCS di destinazione utilizzando AWS CLI il comando che segue. Prima di eseguire il comando, apporta le modifiche seguenti:
+ Sostituisci *region-code* con il Regione AWS punto in cui è in esecuzione il cluster di destinazione.
+ Sostituisci *cluster-ident* con il nome o l'identificatore del cluster di destinazione

```
aws pcs get-cluster --region region-code --cluster-identifier cluster-ident
```

Il comando restituirà un output simile a questo esempio.

```
{
    "cluster": {
        "name": "get-started",
        "id": "pcs_123456abcd",
        "arn": "arn:aws:pcs:us-east-1:111122223333:cluster/pcs_123456abcd",
        "status": "ACTIVE",
        "createdAt": "2024-12-17T21:03:52+00:00",
        "modifiedAt": "2024-12-17T21:03:52+00:00",
        "scheduler": {
            "type": "SLURM",
            "version": "25.05"
        },
        "size": "SMALL",
        "slurmConfiguration": {
            "authKey": {
                "secretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:pcs!slurm-secret-pcs_123456abcd-a12ABC",
                "secretVersion": "ef232370-d3e7-434c-9a87-ec35c1987f75"
            }
        },
        "networking": {
            "subnetIds": [
                "subnet-0123456789abcdef0"
            ],
            "securityGroupIds": [
                "sg-0123456789abcdef0"
            ]
        },
        "endpoints": [
            {
                "type": "SLURMCTLD",
                "privateIpAddress": "10.3.149.220",
                "port": "6817"
            }
        ]
    }
}
```

In questo esempio, l'endpoint del controller Slurm del cluster ha un indirizzo IP di `10.3.149.220` ed è in esecuzione sulla porta. `6817` `secretArn`Verrà utilizzato nei passaggi successivi per recuperare il segreto del cluster. L'indirizzo IP e la porta verranno utilizzati nei passaggi successivi per configurare il `sackd` servizio. 

# Fase 2: Avvio di un'istanza EC2
<a name="working-with_login-nodes_standalone_launch"></a>

**Per avviare un'istanza EC2**

1. Aprire la [console di Amazon EC2](https://console.aws.amazon.com/ec2).

1. Nel pannello di navigazione, scegli **Instances** (Istanze) e quindi scegli **Launch instances** (Avvia istanze) per aprire la nuova procedura guidata di avvio dell'istanza.

1. (Facoltativo) Nella sezione **Nome e tag**, fornisci un nome per l'istanza, ad esempio. `PCS-LoginNode` Il nome viene assegnato all'istanza come tag di risorsa (`Name=PCS-LoginNode`).

1. Nella sezione **Immagini dell'applicazione e del sistema** operativo, seleziona un AMI per uno dei sistemi operativi supportati da AWS PCS. Per ulteriori informazioni, consulta [Sistemi operativi supportati](working-with_ami_installers.md#working-with_ami_installers_os).

1. Nella sezione **Tipo di istanza**, seleziona un tipo di istanza supportato. Per ulteriori informazioni, consulta [Tipi di istanze supportati](working-with_ami_installers.md#working-wth_ami_installers_instance-types).

1. Nella sezione **Coppia di chiavi**, seleziona la coppia di chiavi SSH da usare per l'istanza.

1. Nella sezione **Impostazioni di rete**:

   1. Scegli **Modifica**.

     1. Seleziona il VPC del tuo cluster AWS PCS.

     1. Per **Firewall (gruppi di sicurezza)**, scegli **Seleziona un gruppo di sicurezza esistente**.

        1. Seleziona un gruppo di sicurezza che consenta il traffico tra l'istanza e il controller Slurm del cluster AWS PCS di destinazione. Per ulteriori informazioni, consulta [Requisiti e considerazioni sui gruppi di sicurezza](working-with_networking_sg.md#working-with_networking_sg-requirements).

        1. (Facoltativo) Seleziona un gruppo di sicurezza che consenta l'accesso SSH in entrata all'istanza.

1. Nella sezione **Archiviazione**, configura i volumi di archiviazione in base alle esigenze. Assicurati di configurare uno spazio sufficiente per installare applicazioni e librerie adatte al tuo caso d'uso.

1.  In **Avanzato**, scegli un ruolo IAM che consenta l'accesso al segreto del cluster. Per ulteriori informazioni, consulta [Ottieni il segreto del cluster Slurm](working-with_clusters_secrets_get.md). 

1.  Nel **riquadro Riepilogo**, scegli **Launch instance**. 

# Passaggio 3: installa Slurm sull'istanza
<a name="working-with_login-nodes_standalone_install-slurm"></a>

Quando l'istanza è stata lanciata e diventa attiva, connettiti ad essa utilizzando il tuo meccanismo preferito. Utilizza il programma di installazione Slurm fornito da AWS per installare Slurm sull'istanza. Per ulteriori informazioni, consulta [Programma di installazione Slurm](working-with_ami_installers.md#working-with_ami_installers_slurm).

Scarica il programma di installazione di Slurm, decomprimilo e usa lo script per installare Slurm. `installer.sh` Per ulteriori informazioni, consulta [Fase 3 — Installare Slurm](working-with_ami_custom_install-slurm.md).

# Fase 4 — Recuperare e archiviare il segreto del cluster
<a name="working-with_login-nodes_standalone_get-secret"></a>

Queste istruzioni richiedono il. AWS CLI Per ulteriori informazioni, vedere [Installazione o aggiornamento alla versione più recente di AWS CLI nella](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) *Guida per l'AWS Command Line Interface utente della versione 2*.

Memorizza il segreto del cluster con i seguenti comandi.
+ Crea la directory di configurazione per Slurm.

  ```
  sudo mkdir -p /etc/slurm
  ```
+ Recupera, decodifica e archivia il segreto del cluster. [Prima di eseguire questo comando, *region-code* sostituiscilo con la regione in cui è in esecuzione il cluster di destinazione e sostituiscilo *secret-arn* con il valore `secretArn` recuperato nel passaggio 1.](working-with_login-nodes_standalone_get-addr.md)

  ```
  aws secretsmanager get-secret-value \
   --region region-code \
   --secret-id 'secret-arn' \
   --version-stage AWSCURRENT \
   --query 'SecretString' \
   --output text | base64 -d | sudo tee /etc/slurm/slurm.key
  ```
**avvertimento**  
In un ambiente multiutente, qualsiasi utente con accesso all'istanza potrebbe essere in grado di recuperare il segreto del cluster se può accedere al servizio di metadati dell'istanza (IMDS). Questo, a sua volta, potrebbe consentire loro di impersonare altri utenti. Prendi in considerazione la possibilità di limitare l'accesso a IMDS solo agli utenti root o amministrativi. In alternativa, prendi in considerazione l'utilizzo di un meccanismo diverso che non si basi sul profilo dell'istanza per recuperare e configurare il segreto.
+ Imposta proprietà e autorizzazioni sul file chiave Slurm.

  ```
  sudo chmod 0600 /etc/slurm/slurm.key
  sudo chown slurm:slurm /etc/slurm/slurm.key
  ```
**Nota**  
La chiave Slurm deve essere di proprietà dell'utente e del gruppo con cui viene eseguito il servizio. `sackd` 

# Fase 5 — Configurare la connessione al cluster PCS AWS
<a name="working-with_login-nodes_standalone_configure-connection"></a>

Per stabilire una connessione al cluster AWS PCS, `sackd` avvialo come servizio di sistema seguendo questi passaggi.

**Nota**  
 Se utilizzi Slurm 25.05 o versioni successive, puoi utilizzare uno script per configurare il nodo di accesso in modo che si connetta invece a più cluster. Per ulteriori informazioni, consulta [Connessione di un nodo di accesso autonomo a più cluster in PCS AWS](multi-cluster-login-script.md). 

1. Imposta il file di ambiente per il `sackd` servizio con il comando che segue. Prima di eseguire il comando, sostituite *ip-address* e *port* con i valori recuperati dagli endpoint nel [passaggio](working-with_login-nodes_standalone_get-addr.md) 1.

   ```
   sudo echo "SACKD_OPTIONS='--conf-server=ip-address:port'" > /etc/sysconfig/sackd
   ```

1. Create un file `systemd` di servizio per la gestione del `sackd` processo.

   ```
   sudo cat << EOF > /etc/systemd/system/sackd.service
   [Unit]
   Description=Slurm auth and cred kiosk daemon
   After=network-online.target remote-fs.target
   Wants=network-online.target
   ConditionPathExists=/etc/sysconfig/sackd
   
   [Service]
   Type=notify
   EnvironmentFile=/etc/sysconfig/sackd
   User=slurm
   Group=slurm
   RuntimeDirectory=slurm
   RuntimeDirectoryMode=0755
   ExecStart=/opt/aws/pcs/scheduler/slurm-25.05/sbin/sackd --systemd \$SACKD_OPTIONS
   ExecReload=/bin/kill -HUP \$MAINPID
   KillMode=process
   LimitNOFILE=131072
   LimitMEMLOCK=infinity
   LimitSTACK=infinity
   
   [Install]
   WantedBy=multi-user.target
   EOF
   ```

1. Imposta la proprietà del file `sackd` di servizio.

   ```
   sudo chown root:root /etc/systemd/system/sackd.service && \
       sudo chmod 0644 /etc/systemd/system/sackd.service
   ```

1. Abilita il `sackd` servizio.

   ```
   sudo systemctl daemon-reload && sudo systemctl enable sackd
   ```

1. Avviare il servizio `sackd`.

   ```
   sudo systemctl start sackd
   ```

# Fase 6 — (Facoltativo) Verifica della connessione
<a name="working-with_login-nodes_standalone_test"></a>

Verificare che il `sackd` servizio sia in esecuzione. Di seguito è riportato un output di esempio. Se ci sono errori, di solito vengono visualizzati qui.

```
[root@ip-10-3-27-112 ~]# systemctl status sackd
[x] sackd.service - Slurm auth and cred kiosk daemon
   Loaded: loaded (/etc/systemd/system/sackd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2024-12-17 16:34:55 UTC; 8s ago
 Main PID: 9985 (sackd)
   CGroup: /system.slice/sackd.service
           └─9985 /opt/aws/pcs/scheduler/slurm-25.05/sbin/sackd --systemd --conf-server=10.3.149.220:6817

Dec 17 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Starting Slurm auth and cred kiosk daemon...
Dec 17 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Started Slurm auth and cred kiosk daemon.
Dec 17 16:34:55 ip-10-3-27-112.ec2.internal sackd[9985]: sackd: running
```

Conferma che le connessioni al cluster funzionino utilizzando i comandi del client Slurm come e`sinfo`. `squeue` Ecco un esempio di output da. `sinfo`

```
[root@ip-10-3-27-112 ~]# /opt/aws/pcs/scheduler/slurm-25.05/bin/sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
all up infinite 4 idle~ compute-[1-4]
```

Dovresti anche essere in grado di inviare offerte di lavoro. Ad esempio, un comando simile a questo esempio avvierebbe un processo interattivo su 1 nodo del cluster. 

```
/opt/aws/pcs/scheduler/slurm-25.05/bin/srun --nodes=1 -p all --pty bash -i
```