Cannot bootstrap due to ""precise" images in RegionOne with arches [amd64 i386]" error
I am having an issue with installing Juju and bootstrapping. I have the Swift storage setup, and the new bucket gets created. The tools have been synced, and all that looks fine.
However when I attempt to bootstrap I get the error: "Cannot start bootstrap instance: no "precise images in RegionOne with arches."
In another bucket [Glance] I do have the Percise AMD64 image within it. I've even added the line for the "public bucket url." However, juju is still having this same issue.
Error:
juju -v bootstrap
2013-07-31 22:08:05 INFO juju provider.go:115 environs/openstack: opening environment "openstack"
2013-07-31 22:08:06 INFO juju provider.go:417 environs/openstack: bootstrapping environment "openstack"
2013-07-31 22:08:16 INFO juju tools.go:26 environs: reading tools with major version 1
2013-07-31 22:08:16 INFO juju tools.go:53 environs: filtering tools by series: precise
2013-07-31 22:08:16 INFO juju tools.go:76 environs: picked newest version: 1.10.0
2013-07-31 22:08:28 ERROR juju supercommand.go:235 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]
The version that I am using is: 1.11.4-raring-amd64
My entire environments file is: [I removed all of the bits about MAAS, Amazon, and local]
default: openstack
environments:
openstack:
type: openstack
admin-secret: f[...]2
control-bucket: juj[..]2a
auth-url: http://127.0.0.1:5000/v2.0/
# default-series: precise
auth-mode: userpass
username: admin
password: [XXXX]
tenant-name: admin
region: RegionOne
public-bucket-url: https://swift.canonistack.canonical.com/v1/AUTH_526ad877f3e3464589dc1145dfeaac60
Solution 1:
You need to create a simplestreams file for your cloud. The simplest way for now is to use the juju image-metadata command.
Depending on your version of juju-core, it will be juju image-metadata
or juju-metadata generate-image
. The parameters are the same and I hope they are self explanatory. You can source your openrc.sh
file before running it and it will take most parameters from the environment.
You need to have an image already uploaded into your cloud. See the output of the glance list
command and pick a precise 64bits image.
The metadata command will give you two files: index.json and imagemetadata.json. You need to upload these to a bucket called juju-dist, and a path called streams/v1. Like this:
First, create the bucket:
swift post juju-dist
Now give it the proper ACLs:
swift post juju-dist -r '.r:*'
And now upload the generated files:
swift upload juju-dist/streams/v1 imagemetadata.json index.json
Now point your public-bucket-uri
config parameter from your environments.yaml file to your object storage url. To find it, run keystone catalog
and look for the publicURL
address inthe Service: object-store
block. That's what you will put in your juju public-bucket-url
config parameter.
Now you should be able to bootstrap juju with a precise 64bit image (use series: precise
in your environments.yaml
file), assuming you have taken care of the tools.
More information:
- https://lists.ubuntu.com/archives/juju-dev/2013-August/001324.html
Solution 2:
Please make sure that you have installed the python-glanceclient
packet. Otherwise, juju
can't find the images.