Update composer-cli documentation
Add documentation for the new upload and providers commands.
This commit is contained in:
parent
b5df65f658
commit
eee7a3e47d
@ -43,6 +43,10 @@ The available types of images is displayed by ``composer-cli compose types``.
|
|||||||
Currently this consists of: alibaba, ami, ext4-filesystem, google, hyper-v,
|
Currently this consists of: alibaba, ami, ext4-filesystem, google, hyper-v,
|
||||||
live-iso, openstack, partitioned-disk, qcow2, tar, vhd, vmdk
|
live-iso, openstack, partitioned-disk, qcow2, tar, vhd, vmdk
|
||||||
|
|
||||||
|
You can optionally start an upload of the finished image, see `Image Uploads`_ for
|
||||||
|
more information.
|
||||||
|
|
||||||
|
|
||||||
Monitor the build status
|
Monitor the build status
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@ -60,3 +64,115 @@ Downloading the final image is done with ``composer-cli compose image UUID`` and
|
|||||||
save the qcow2 image as ``UUID-disk.qcow2`` which you can then use to boot a VM like this::
|
save the qcow2 image as ``UUID-disk.qcow2`` which you can then use to boot a VM like this::
|
||||||
|
|
||||||
qemu-kvm --name test-image -m 1024 -hda ./UUID-disk.qcow2
|
qemu-kvm --name test-image -m 1024 -hda ./UUID-disk.qcow2
|
||||||
|
|
||||||
|
|
||||||
|
Image Uploads
|
||||||
|
-------------
|
||||||
|
|
||||||
|
``composer-cli`` can upload the images to a number of services, including AWS,
|
||||||
|
OpenStack, and vSphere. The upload can be started when the build is finished,
|
||||||
|
by using ``composer-cli compose start ...`` or an existing image can be uploaded
|
||||||
|
with ``composer-cli upload start ...``. In order to access the service you need
|
||||||
|
to pass authentication details to composer-cli using a TOML file, or reference
|
||||||
|
a previously saved profile.
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
Providers are the services providers with Ansible playbook support under
|
||||||
|
``/usr/share/lorax/lifted/providers/``, you will need to gather some provider
|
||||||
|
specific information in order to authenticate with it. You can view the
|
||||||
|
required fields using ``composer-cli providers template <PROVIDER>``, eg. for AWS
|
||||||
|
you would run::
|
||||||
|
|
||||||
|
composer-cli upload template aws
|
||||||
|
|
||||||
|
The output looks like this::
|
||||||
|
|
||||||
|
provider = "aws"
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
aws_access_key = "AWS Access Key"
|
||||||
|
aws_bucket = "AWS Bucket"
|
||||||
|
aws_region = "AWS Region"
|
||||||
|
aws_secret_key = "AWS Secret Key"
|
||||||
|
|
||||||
|
Save this into an ``aws-credentials.toml`` file and use it when running ``start``.
|
||||||
|
|
||||||
|
AWS
|
||||||
|
^^^
|
||||||
|
|
||||||
|
The access key and secret key can be created by going to the
|
||||||
|
``IAM->Users->Security Credentials`` section and creating a new access key. The
|
||||||
|
secret key will only be shown when it is first created so make sure to record
|
||||||
|
it in a secure place. The region should be the region that you want to use the
|
||||||
|
AMI in, and the bucket can be an existing bucket, or a new one, following the
|
||||||
|
normal AWS bucket naming rules. It will be created if it doesn't already exist.
|
||||||
|
|
||||||
|
When uploading the image it is first uploaded to the s3 bucket, and then
|
||||||
|
converted to an AMI. If the conversion is successful the s3 object will be
|
||||||
|
deleted. If it fails, re-trying after correcting the problem will re-use the
|
||||||
|
object if you have not deleted it in the meantime, speeding up the process.
|
||||||
|
|
||||||
|
|
||||||
|
Profiles
|
||||||
|
--------
|
||||||
|
|
||||||
|
Profiles store the authentication settings associated with a specific provider.
|
||||||
|
Providers can have multiple profiles, as long as their names are unique. For
|
||||||
|
example, you may have one profile for testing and another for production
|
||||||
|
uploads.
|
||||||
|
|
||||||
|
Profiles are created by pushing the provider settings template to the server using
|
||||||
|
``composer-cli providers push <PROFILE.TOML>`` where ``PROFILE.TOML`` is the same as the
|
||||||
|
provider template, but with the addition of a ``profile`` field. For example, an AWS
|
||||||
|
profile named ``test-uploads`` would look like this::
|
||||||
|
|
||||||
|
provider = "aws"
|
||||||
|
profile = "test-uploads"
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
aws_access_key = "AWS Access Key"
|
||||||
|
aws_bucket = "AWS Bucket"
|
||||||
|
aws_region = "AWS Region"
|
||||||
|
aws_secret_key = "AWS Secret Key"
|
||||||
|
|
||||||
|
You can view the profile by using ``composer-cli providers aws test-uploads``.
|
||||||
|
|
||||||
|
|
||||||
|
Build an image and upload results
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
If you have a profile named ``test-uploads``::
|
||||||
|
|
||||||
|
composer-cli compose start example-http-server ami "http image" aws test-uploads
|
||||||
|
|
||||||
|
Or if you have the settings stored in a TOML file::
|
||||||
|
|
||||||
|
composer-cli compose start example-http-server ami "http image" aws-settings.toml
|
||||||
|
|
||||||
|
It will return the UUID of the image build, and the UUID of the upload. Once
|
||||||
|
the build has finished successfully it will start the upload process, which you
|
||||||
|
can monitor with ``composer-cli upload info <UPLOAD-UUID>``
|
||||||
|
|
||||||
|
You can also view the upload logs from the Ansible playbook with::
|
||||||
|
|
||||||
|
``composer-cli upload log <UPLOAD-UUID>``
|
||||||
|
|
||||||
|
The type of the image must match the type supported by the provider.
|
||||||
|
|
||||||
|
|
||||||
|
Upload an existing image
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
You can upload previously built images, as long as they are in the ``FINISHED`` state, using ``composer-cli upload start ...```. If you have a profile named ``test-uploads``::
|
||||||
|
|
||||||
|
composer-cli upload start <UUID> "http-image" aws test-uploads
|
||||||
|
|
||||||
|
Or if you have the settings stored in a TOML file::
|
||||||
|
|
||||||
|
composer-cli upload start <UUID> "http-image" aws-settings.toml
|
||||||
|
|
||||||
|
This will output the UUID of the upload, which can then be used to monitor the status in the same way
|
||||||
|
described above.
|
||||||
|
Loading…
Reference in New Issue
Block a user