Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a working private OpenStack installation and am trying to use juju. As follows:

dave@dave-D945GTP:~$ juju version
1.11.2-raring-amd64

dave@dave-D945GTP:~$ juju sync-tools
listing the source bucket
found 6 tools
found 6 recent tools (version 1.10.0)
listing target bucket
found 0 tools in target; 6 tools to be copied
copying tools/juju-1.10.0-precise-amd64.tgz, download 2205kB, uploading
copying tools/juju-1.10.0-precise-i386.tgz, download 2306kB, uploading
copying tools/juju-1.10.0-quantal-amd64.tgz, download 2209kB, uploading
copying tools/juju-1.10.0-quantal-i386.tgz, download 2311kB, uploading
copying tools/juju-1.10.0-raring-amd64.tgz, download 2208kB, uploading
copying tools/juju-1.10.0-raring-i386.tgz, download 2312kB, uploading
copied 6 tools

So far, all seems good. However, it fails to bootstrap:

dave@dave-D945GTP:~$ juju -v bootstrap
2013-07-11 09:34:17 INFO juju provider.go:117 environs/openstack: opening environment "openstack"
2013-07-11 09:34:17 INFO juju provider.go:467 environs/openstack: bootstrapping environment "openstack"
2013-07-11 09:34:27 INFO juju tools.go:25 environs: reading tools with major version 1
2013-07-11 09:34:27 INFO juju tools.go:52 environs: filtering tools by series: precise
2013-07-11 09:34:27 INFO juju tools.go:75 environs: picked newest version: 1.10.0
2013-07-11 09:34:28 ERROR juju supercommand.go:234 command failed: cannot start bootstrap instance: no "precise" images in RegionOne with arches [amd64 i386]
error: cannot start bootstrap instance: no "precise" images in RegionOne with arches [amd64 i386]

A swift container named 'juju-cece0b9817a68cba4780784bf0663e45' containing a tools "directory" (with the six files obtained via juju sync-tools) and a bootstrap-verify file is successfully created.

My .juju/environments.yaml is as follows:

default: openstack

environments:
  ## https://juju.ubuntu.com/get-started/openstack/
  openstack:
    type: openstack
    # Specifies whether the use of a floating IP address is required to give the nodes
    # a public IP address. Some installations assign public IP addresses by default without
    # requiring a floating IP address.
    use-floating-ip: true
    admin-secret: sekret
    default-series: precise
    # Globally unique swift bucket name
    control-bucket: juju-cece0b9817a68cba4780784bf0663e45
    # Usually set via the env variable OS_AUTH_URL, but can be specified here
    auth-url: http://10.103.8.1:5000/v2.0/
    # override if your workstation is running a different series to which you are deploying
    # The following are used for userpass authentication (the default)
    auth-mode: userpass
    # Usually set via the env variable OS_USERNAME, but can be specified here
    username: admin
    # Usually set via the env variable OS_PASSWORD, but can be specified here
    password: sekret
    # Usually set via the env variable OS_TENANT_NAME, but can be specified here
    tenant-name: admin
    # Usually set via the env variable OS_REGION_NAME, but can be specified here
    region: RegionOne

After some reading, I determined that I apparently need to upload a "precise" image and run juju image-metadata. I created the metadata as follows...

dave@dave-D945GTP:~/.juju$ juju image-metadata -a amd64 -e http://10.103.8.1:5000/v2.0 -i d7e2ea12-cb50-4687-b5e1-d90f0656164a -n openstack -r RegionOne -s precise

...and moved the resulting files to "streams/v1" in the juju-cece0b9817a68cba4780784bf0663e45 container.

juju bootstrap -v produced exactly the same result.

I also tried copying openstack-index.json and openstack-imagemetadata.json to index.json and imagemetadata.json, respectively, based on some content I found in a (probably irrelevant) bug report.

Again, juju bootstrap -v produced exactly the same result.

Any suggestions?

share|improve this question

1 Answer 1

You'll need to create a second bucket, called juju-dist, where you upload the image data files. Then add

public-bucket-url: <URL TO JUJU-DIST BUCKET>

to you environments.yaml file. That should resolve the "could not find precise image" error.

share|improve this answer
    
By "the image data files", do you mean cloud image files such as those from cloud-images.ubuntu.com or do you mean index.json and imagemetadata.json? I tried the latter, with exactly the same result. –  user174383 Jul 11 '13 at 16:23
    
Yes, it's the index.json and imagemetadata.json that you generated with juju image-metdata command –  Marco Ceppi Jul 11 '13 at 19:01
    
I've created a juju-dist container, made it world readable, put index.json and imagemetadata.json in its root and under streams/v1, and juju bootstrap -v returns the same as before. Notably, on the host running the swift proxy server, I get a "Invalid user token -deferring reject downstream" error message, which is what I would expect of attempting to access a swift object that doesn't exist or for which permission has not been granted. Unfortunately, neither swift nor juju provide sufficient logging to find out what it is. –  user174383 Jul 12 '13 at 8:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.