bifrost/playbooks/roles/bifrost-create-dib-image/README.md
Ganesh Mahalingam 802cec490b Make init element configurable for bifrost vagrant VM
Bifrost vagrant uses simple-init by default for post install modifications.
This patch allows the use of an alternate init mechanism, eg: cloud-init

Change-Id: If22416f48fbf43173f008c86b978f11d937a8a99
Co-Authored-By: John.L.Villalovos <john.l.villalovos@intel.com>
Closes-Bug: #1541548
2016-02-05 11:41:18 -08:00

139 lines
4.8 KiB
Markdown

bifrost-create-dib-image
========================
This role uses diskimage-builder to create a bootable disk image or ramdisk.
Requirements
------------
This role requires:
- Ansible 2.0
Role Variables
--------------
The role can use the disk-image-create or ramdisk-image-create scripts. Which
script is used is controlled by the build_ramdisk variable. The default is
false.
build_ramdisk: false
The dib_env_vars are settings for the diskimage-builder environment variables
which allow settings to be passed to elements that are being utilized to build
a disk image. More information on diskimage-builder can be found at:
http://git.openstack.org/cgit/openstack/diskimage-builder/
dib_env_vars:
DIB_CLOUD_INIT_DATASOURCES: "ConfigDrive"
ELEMENTS_PATH: "/opt/stack/diskimage-builder/elements"
The final destination of the image is specified by dib_imagename.
dib_imagename: "/path/to/image.qcow2"
dib_os_element controls which OS will be used to build the image.
dib_os_element: "ubuntu"
dib_elements is a space-separated list of elements that will be
added to the resulting disk image.
dib_elements: "vm serial-console"
dib_init_element is used to set the init tool that will be used to provision
the installed OS. This is an argument that is passed to
[diskimage-builder](http://docs.openstack.org/developer/diskimage-builder/)
which generates a deployable image of the OS defined in 'dib_os_element'. By
default we use 'simple-init'. You can modify this to use other init tools, for
example: cloud-init (see below)
dib_init_element: simple-init
dib_packages is a comma-separated list of packages to be installed
on the resulting disk image.
dib_packages: "traceroute,python-devel"
dib_os_release can be utilized to set the DIB_RELEASE environment
variable for semi-dynamic disk image creation by a user or the
test script. By default, it is not set, but an example if
dib_os_element is set to ``debian``, then a user could choose
the ``jessie`` release.
dib_os_release: jessie
All the other command-line options to disk-image-create or
ramdisk-image-create can be used by the role. The following is a list
of the command-line options, their corresponding variables, and the type
of the value to supply. Please refer to the help text for disk-image-create
for further information.
| Option | Variable name | Value |
-----------------------------------------------------------------
| -x | dib_trace | boolean |
| -u | dib_uncompressed | boolean |
| -c | dib_clearenv | boolean |
| --no-tmpfs | dib_notmpfs | boolean |
| --offline | dib_offline | boolean |
| -n | dib_skipbase | boolean |
| -a | dib_arch | arch |
| -o | dib_imagename | /path/to/image |
| -t | dib_imagetype | image type |
| --image-size | dib_imagesize | size in GB |
| --image-cache | dib_imagecache | /path/to/cache |
| --max-online-resize | dib_maxresize | size in blocks |
| --min-tmpfs | dib_mintmpfs | size in GB |
| --mkfs-options | dib_mkfsopts | mkfs flags |
| --qemu-img-options | dib_qemuopts | comma-separated list |
| --root-label | dib_rootlabel | label |
| --ramdisk-element | dib_rdelement | element name |
| -t | dib_installtype | source or package |
Using cloud-init
----------------
By default, bifrost uses the 'simple-init' dib element, which will disable
cloud-init. If you have cloud-init enabled in your image(Ubuntu/Fedora) and you
wish to allow configdrive to work with it, you set 'dib_init_element' to
['cloud-init-datasources'](http://docs.openstack.org/developer/diskimage-builder/elements/cloud-init-datasources/README.html).
Dependencies
------------
dib-utils must be installed from pip for the image creation to work.
Example Playbook
----------------
- hosts: localhost
connection: local
name: "Build DIB image"
become: yes
gather_facts: yes
roles:
- role: bifrost-create-dib-image
License
-------
Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Author Information
------------------
Ironic Developers