2015-10-08 19:18:44 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
|
|
|
page_title: "Drivers: Raw Exec"
|
|
|
|
sidebar_current: "docs-drivers-raw-exec"
|
|
|
|
description: |-
|
|
|
|
The Raw Exec task driver simply fork/execs and provides no isolation.
|
|
|
|
---
|
|
|
|
|
|
|
|
# Raw Fork/Exec Driver
|
|
|
|
|
|
|
|
Name: `raw_exec`
|
|
|
|
|
|
|
|
The `raw_exec` driver is used to execute a command for a task without any
|
2015-10-09 18:29:59 +00:00
|
|
|
isolation. Further, the task is started as the same user as the Nomad process.
|
|
|
|
As such, it should be used with extreme care and is disabled by default.
|
2015-10-08 19:18:44 +00:00
|
|
|
|
|
|
|
## Task Configuration
|
|
|
|
|
|
|
|
The `raw_exec` driver supports the following configuration in the job spec:
|
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
* `command` - The command to execute. Must be provided. If executing a binary
|
|
|
|
that exists on the host, the path must be absolute. If executing a binary that
|
2016-08-27 12:56:39 +00:00
|
|
|
is downloaded from an [`artifact`](/docs/jobspec/index.html#artifact_doc), the
|
2016-03-16 16:56:04 +00:00
|
|
|
path can be relative from the allocations's root directory.
|
2015-11-18 23:16:42 +00:00
|
|
|
|
2016-01-11 19:12:09 +00:00
|
|
|
* `args` - (Optional) A list of arguments to the optional `command`.
|
2016-07-18 14:24:30 +00:00
|
|
|
References to environment variables or any [interpretable Nomad
|
2016-02-06 23:34:21 +00:00
|
|
|
variables](/docs/jobspec/interpreted.html) will be interpreted
|
2016-01-11 19:12:09 +00:00
|
|
|
before launching the task. For example:
|
|
|
|
|
|
|
|
```
|
2016-02-06 23:34:21 +00:00
|
|
|
args = ["${nomad.datacenter}", "${MY_ENV}", "${meta.foo}"]
|
2016-01-11 19:12:09 +00:00
|
|
|
```
|
2015-10-08 19:18:44 +00:00
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
## Examples
|
2015-10-08 19:18:44 +00:00
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
To run a binary present on the Node:
|
2015-10-08 19:18:44 +00:00
|
|
|
|
|
|
|
```
|
2016-03-16 16:56:04 +00:00
|
|
|
task "example" {
|
|
|
|
driver = "raw_exec"
|
|
|
|
|
|
|
|
config {
|
|
|
|
# When running a binary that exists on the host, the path must be absolute
|
|
|
|
command = "/bin/sleep"
|
|
|
|
args = ["1"]
|
2015-11-21 20:18:16 +00:00
|
|
|
}
|
|
|
|
}
|
2015-10-08 19:18:44 +00:00
|
|
|
```
|
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
To execute a binary downloaded from an [`artifact`](/docs/jobspec/index.html#artifact_doc):
|
2015-10-15 21:40:08 +00:00
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
```
|
|
|
|
task "example" {
|
|
|
|
driver = "raw_exec"
|
2015-10-15 21:40:08 +00:00
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
config {
|
|
|
|
command = "binary.bin"
|
|
|
|
}
|
2015-10-15 21:40:08 +00:00
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
artifact {
|
|
|
|
source = "https://dl.dropboxusercontent.com/u/1234/binary.bin"
|
|
|
|
options {
|
|
|
|
checksum = "sha256:abd123445ds4555555555"
|
|
|
|
}
|
|
|
|
}
|
2015-10-15 21:40:08 +00:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-03-16 16:56:04 +00:00
|
|
|
## Client Requirements
|
|
|
|
|
|
|
|
The `raw_exec` driver can run on all supported operating systems. It is however
|
|
|
|
disabled by default. In order to be enabled, the Nomad client configuration must
|
|
|
|
explicitly enable the `raw_exec` driver in the client's
|
2016-03-22 21:29:47 +00:00
|
|
|
[options](/docs/agent/config.html#options) field:
|
2015-10-15 21:40:08 +00:00
|
|
|
|
|
|
|
```
|
2016-03-22 21:29:47 +00:00
|
|
|
client {
|
|
|
|
options = {
|
|
|
|
"driver.raw_exec.enable" = "1"
|
|
|
|
}
|
2016-03-16 16:56:04 +00:00
|
|
|
}
|
2015-10-15 21:40:08 +00:00
|
|
|
```
|
|
|
|
|
2015-10-08 19:18:44 +00:00
|
|
|
## Client Attributes
|
|
|
|
|
|
|
|
The `raw_exec` driver will set the following client attributes:
|
|
|
|
|
2016-10-03 21:00:32 +00:00
|
|
|
* `driver.raw_exec` - This will be set to "1", indicating the driver is available.
|
|
|
|
|
2015-10-08 19:18:44 +00:00
|
|
|
## Resource Isolation
|
|
|
|
|
|
|
|
The `raw_exec` driver provides no isolation.
|