# SSH exec task A command can be executed via the Site Controller via the SSH protocol. ## Example ```json { "label": "show running config", "taskType": "ExtensionTaskSsh", "options": { "host": "192.168.100.100", "port": 22, "timeout": 1800, "commandTemplate": "show running config" } } ``` ### Options * `host` - The host to ssh to * `port` - The port to ssh to * `timeout` - The timeout for executing the command * `commandTemplate` It can be a Nunjucks (a subset of Jinja2) template.See the Context Objects for available objects according to the stage. * For `serverRegistered`, `serverDecommissioned`, `switchRegistered`: The `Server` and `Network` objects are available. The user can refer to the [Server](https://us08.metalsoft.io/api/v2/swagger#/Server/getServerInfo) and [NetworkDevice](https://us08.metalsoft.io/api/v2/swagger#/Network%20Device/getNetworkDevice) objects' parameters depending on the asset that is being changed. Refer to your environment's [API documentation]. * For `serverInstanceGroupCreateDNS`, `serverInstanceGroupUpdateDNS`, `serverInstanceGroupDeleteDN`,`serverInstanceUpdateDNS`, `serverInstanceDeleteDNS`: A server DNS record set object similar to this: ```json "serverInstanceGroupDNSRecordSet": { "zone": { "zoneName": "eveng-qa02.metalcloud.io", "soaEmail": "admin.eveng-qa02.metalcloud.io", "nameServers": [ "ns1.evenq-qa02.metalcloud.io" ], "ttl": 3600, "isDefault": true }, "infrastructureId": 3870, "serverInstanceGroup": { "label": "instance-array-3386" }, "hostname": "lambda", "fqdn": "lambda.eveng-qa02.metalcloud.io", "ips": [ { "status": "allocated", "ip": "10.20.50.36" } ] } ``` * For `serverCreateDNS`, `serverDeleteDNS` an object similar to is provided in `variables.json`: ```json "serverDNSRecordSet": { "zone": { "zoneName": "us08.metalsoft.io", "soaEmail": "admin.us08.metalsoft.io", "nameServers": ["n1.metalsoft.io"], "ttl": 3600, "isDefault": true }, "serverId": 10, "serialNumber": "serial-number", "managementAddress": "192.168.100.100", "hostname": "server-10", "fqdn": "server-10.us08.metalsoft.io", "ip": { "status": "allocated", "ip": "192.168.100.100" }, "operation": "create" } ``` * For `switchCreateDNS`, `switchDeleteDNS` the following payload is provided: ```json "switchDNSRecordSet": { "zone": { "zoneName": "us08.metalsoft.io", "soaEmail": "admin.us08.metalsoft.io", "nameServers": ["n1.metalsoft.io"], "ttl": 3600, "isDefault": true }, "switchId": 10, "managementAddress": "192.168.100.100", "hostname": "switch-10", "fqdn": "switch-10.us08.metalsoft.io", "ip": { "status": "allocated", "ip": "192.168.100.100" }, "operation": "create" } ```