spread
spread copied to clipboard
spread (via snap) exec: "lxc": executable file not found in $PATH
Cannot allocate lxd:ubuntu-16.04: cannot launch lxd container: exec: "lxc": executable file not found in $PATH
I was looking to start using spread very soon while we're redeploy some ci infra. I've got a fresh Xenial instance. I can launch and list lxc a-ok as my user, but can't get spread to do the examples.
It has the same error whether installed in strict or in dev mode.
ubuntu@osci-slavehost:~/temp⟫ tree
.
├── examples
│ └── hello
│ └── task.yaml
└── spread.yaml
2 directories, 3 files
ubuntu@osci-slavehost:~/temp⟫ head -n999 examples/hello/task.yaml spread-hello.yaml spread.yaml
==> examples/hello/task.yaml <==
summary: Greet the planet
environment:
GREETING: Hello
GREETING/bar: Goodbye
SUBJECT/baz: world
execute: |
echo "$GREETING $SUBJECT!"
exit 1
==> spread.yaml <==
project: hello-world
backends:
lxd:
systems:
- ubuntu-16.04
suites:
examples/:
summary: Simple examples
environment:
SUBJECT/foo: sanity
SUBJECT/bar: lunacy
path: /remote/path
ubuntu@osci-slavehost:~/temp⟫ lxc list
+-----------------------+---------+------------------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-----------------------+---------+------------------+------+------------+-----------+
| intergalactic-shellie | RUNNING | 10.0.8.45 (eth0) | | PERSISTENT | 0 |
+-----------------------+---------+------------------+------+------------+-----------+
# ^ lxc unit created by ubuntu user manually
ubuntu@osci-slavehost:~/temp⟫ spread -list
lxd:ubuntu-16.04:examples/hello:baz
lxd:ubuntu-16.04:examples/hello:bar
lxd:ubuntu-16.04:examples/hello:foo
ubuntu@osci-slavehost:~/temp⟫ spread -v
2016/08/26 00:14:57 Found /home/ubuntu/temp/spread.yaml.
2016/08/26 00:14:57 Allocating lxd:ubuntu-16.04...
2016/08/26 00:14:57 Cannot allocate lxd:ubuntu-16.04: cannot launch lxd container: exec: "lxc": executable file not found in $PATH
2016/08/26 00:14:57 Successful tasks: 0
2016/08/26 00:14:57 Aborted tasks: 3
error: unsuccessful run
1 ubuntu@osci-slavehost:~/temp⟫ snap list
Name Version Rev Developer Notes
spread 2016.08.23 11 niemeyer -
ubuntu-core 16.04.1 216 canonical -
FYI: My use case is to use LXD local, and prefer to consume spread by snaps.
I'm having the same issue on dev/zesty: max@eden:~/workspace.d$ snap list Name Version Rev Developer Notes spread 2016.10.05 23 niemeyer - ubuntu-core 16.04.1 423 canonical -
Assuming this is a snap confinement issue, is there a PPA available as a work around? I haven't found install instructions anywhere detailing supported installation methods
I guess the problem here is that spread is installed from a snap and that spread binary can't access the lxc binary from the host as this is a general thing snaps can't do. Same problem applies for the qemu backend.
The only way out is to build spread on your own and copy it somewhere into your $PATH
$ mkdir work
$ export GOPATH=`pwd`/work
$ go get -d -v github.com/snapcore/snapd/...
$ go build github.com/snapcore/spread/cmd/spread
$ sudo cp spread /usr/local/bin
Hi All,
I'm re-revisiting spread as a runner for some OpenStack engineering efforts, and still found the lxc client issue in spread snap 2018.08.30.
I've moved around it for our evaluation purposes by just building spread, but we still prefer to consume it via snaps.
Cheers,
Ryan