glidergun
glidergun copied to clipboard
Installing dependencies on CoreOS fails
Locally (osx) gun installs fine and gun env
returns the current environment but when using the same Gunfile
in production the initial dependency install fails silently.
local
~$ rm -rf .gun
~$ gun env
* Dependency required, installing aws latest ...
* Dependency required, installing jq 1.4 ...
AWS_DEFAULT_REGION = us-east-1
AWS_ACCESS_KEY_ID = xxxxxx
AWS_SECRET_ACCESS_KEY = xxxxxx
CONSUL_URL = http://localhost:8500
CONSUL_AUTH =
DOCKER_USERNAME = everydayhero+deployer
DOCKER_PASSWORD = xxxxxx
DOCKER_EMAIL = .
DOCKER_SERVER = quay.io
EC2_VPC = production
SSH_USER = core
SSH_BASTION_USER = timc
coreos
timc@production-a-admin-75898aa3 ~/wat $ gun env
* Dependency required, installing aws latest ...
timc@production-a-admin-75898aa3 ~/wat $ ls -l .gun
total 8
drwxr-xr-x 2 timc timc 4096 May 29 03:33 bin
drwxr-xr-x 3 timc timc 4096 May 29 03:33 tmp
The problems seems to be when downloading the aws dependency from https://github.com/gliderlabs/glidergun-rack/blob/master/index/aws which looks like:
# install: ./awscli-bundle/install -i $PREFIX
latest * https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
All I can think of is that the *
in the curl payload is not being properly escaped?
Let me know if you need more information.
Interesting. Hopefully I can look into it soon. What is the use case running from production?
I'll write up the use case in a little but our CI is running CoreOS too so it's something that we're going to have to solve.
Ah, CI is a good use case. We'd talked about running gun from a container in situations like that. But I'd like to see it working on CoreOS too.
Do you plan to use glidergun directly on cores, to with /usr/bin/toolbox, or in a specific container?
I just started a core os instance on google cloud, and tried a simple Gunfire with deps-require aws
$ ./gun
* Dependency required, installing aws latest ...
/usr/bin/env: python: No such file or directory
I did find python in /usr/share/oem/python/bin
, but if i put it into the PATH, it fails with pip ..
Other tip is to start gun in trace mode:
TRACE=1 gun
So you can see exactly which bash line fails
He did have Python because Ansible installed it, but it wrapped it to run inside a container. So after talking more it sounds like they're just going to get glidergun working in a container.