gliderlabs / glidergun

BSD 3-Clause "New" or "Revised" License
31 stars 15 forks source link

Installing dependencies on CoreOS fails #25

Open coop opened 9 years ago

coop commented 9 years ago

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.

progrium commented 9 years ago

Interesting. Hopefully I can look into it soon. What is the use case running from production?

coop commented 9 years ago

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.

progrium commented 9 years ago

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.

lalyos commented 9 years ago

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

progrium commented 9 years ago

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.