72141b7fab
Upgrades yamllint to latest version and adots use of its strict checking. Fix all known problems reported by yamllint so we don't have to do that while touching these files. Change-Id: I4bdc520d9e2aff086c4b463718bc1e053261a4f5 Story: https://tree.taiga.io/project/tripleo-ci-board/task/381 |
||
---|---|---|
.. | ||
defaults | ||
meta | ||
tasks | ||
README.md |
modify-image
An Ansible role for modifying an image via the libguestfs tool, virt-customize.
The role requires an image and a script to run inside of that image via
virt-customize. It also has paramaters for how much memory and cpu to give
the virt-customize VM, and a list of artifacts to copy out of the VM after
running the script. The script will always produce a log of the same name as
the script with .log appended. This can be extracted via the
modify_image_extract_list
variable.
Requirements
Role Variables
image_to_modify
-- the image that virt-customize will operate onmodify_script
-- the script that will be run inside the imagemodify_image_upload_files
-- list of src/dest of files to upload to image (files are uploaded before running the script)modify_image_install_packages
-- list of packages to install in the image (packages are installed before running the script)modify_image_extract_list
-- list of artifacts to extract after the image is modifiedmodify_image_working_dir
-- directory containing image and script. This is also where extracted files and logs will end up.modify_image_vc_ram
-- amount of RAM to give the virt-customize VM (in MB)modify_image_vc_cpu
-- number of CPUs to give the virt-customize VMmodify_image_vc_verbose
-- whether to run virt-customize with verbose flagmodify_image_vc_trace
-- whether to run virt-customize with trace flagmodify_image_vc_root_password
-- password for the root account of the image (useful for baremetal envs)
Example Usage
---
- name: |
Run a script inside an image via virt-customize without extracting anything
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_script: "{{ working_dir }}/undercloud_convert.sh"
roles:
- modify-image
- name: Run a script inside an image and extract the log from the script
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_script: "{{ working_dir }}/undercloud_convert.sh"
modify_image_extract_list:
- /tmp/builder.log
roles:
- modify-image
- name: Run a script inside an image that needs to have lots of resources
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_script: "{{ working_dir }}/undercloud_convert.sh"
modify_image_vc_cpu: 8
modify_image_vc_ram: 16384
roles:
- modify-image
- name: Run a script inside an image with virt-customize in verbose mode
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_script: "{{ working_dir }}/undercloud_convert.sh"
modify_image_verbose: true
roles:
- modify-image
- name: Upload files to image
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_image_upload_files:
- src: /tmp/file_to_upload.tar.gz
dest: /home/user/renamed_file.tar.gz
- src: /home/local_user/file
dest: /home/image_user/
roles:
- modify-image
- name: Upload files to image and run script
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/undercloud.qcow2"
modify_image_upload_files:
- src: /tmp/file_to_upload.tar.gz
dest: /home/user/renamed_file.tar.gz
- src: /home/local_user/file
dest: /tmp/
modify_script: "{{ working_dir }}/undercloud_convert.sh"
roles:
- modify-image
- name: Install packages in the image
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/overcloud-full.qcow2"
modify_image_install_packages:
- 'package_to_be_installed_1'
- 'package_to_be_installed_2'
- 'package_to_be_installed_3'
include_role:
name: modify-image
- name: Upload an RPM file and install it in the image
hosts: virthost
vars:
image_to_modify: "{{ working_dir }}/overcloud-full.qcow2"
modify_image_upload_files:
- src: "/tmp/rpm_to_be_uploaded.rpm"
dest: /root/rpm_to_be_installed.rpm
modify_image_install_packages:
- '/root/rpm_to_be_installed.rpm'
include_role:
name: modify-image
License
Apache