# Comandi ad hoc in Ansible

Ansible consente l'esecuzione di comandi ad hoc tramite la riga di comando. Questi comandi sono impiegati principalmente per operazioni occasionali e non ripetitive, a differenza dei playbook.

## Sintassi di base

La sintassi generale di un comando ad hoc è la seguente:

```bash
ansible [pattern] -m [module] -a "[module options]"
```

Il *pattern* identifica i nodi target su cui eseguire il comando, mentre il modulo specificato determina il tipo di operazione da effettuare.

Alcuni dei moduli più comunemente utilizzati includono `ping`, `setup`, `copy`, `shell`, `service`, e altri. Per eseguire un'operazione di *privilege escalation*, è necessario aggiungere l'opzione `-become`.

Se non viene specificato alcun modulo, Ansible utilizza di default il modulo `command`. Questo modulo è simile al modulo shell, ma presenta alcune limitazioni: non consente l'uso del redirect o del piping.

## Esempi di utilizzo

```bash
ansible db -m shell -a "uptime"

ansible all -m user -a "name=testuser" --become

ansible all -m copy -a "src=/path/to/file dest=/path/to/file"
```
