openstack-ansible-lxc_hosts/tasks/lxc_cache_create.yml
Jesse Pretorius d3200c4267 Allow variant and extra options to be passed to the cache creation
Currently there is no way to use a variant other than 'default'
without having to override the entire template download options
variable.

This adds a variable to allow the override of the default variant
and another to allow the deployer to add extra options. Examples
include turning off verification, flushing the cache, etc.

This patch provides the option to change it to something
else. This is helpful when pre-building a different default
variant that you wish to use in your own deployments instead
of being forced to rely on the current default.

Change-Id: Id31bdfa34e0ce117d7b64ea9234653ccdf6ac4c6
2017-03-01 11:03:43 +00:00

70 lines
2.5 KiB
YAML

---
# Copyright 2016, Rackspace US, Inc.
#
# 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.
- name: Remove existing cache archive
file:
path: "{{ lxc_container_cache_path }}/{{ lxc_cache_map.distro }}/{{ lxc_cache_map.release }}/{{ lxc_cache_map.arch }}/{{ lxc_cache_default_variant }}/rootfs.tar.xz"
state: "absent"
tags:
- lxc-cache
- lxc-image-cache-create
# This is using a shell command because the ansible archive module does not
# provide for the options needed to properly create an LXC image archive.
- name: Create lxc image
shell: |
tar -Opc -C /var/lib/lxc/LXC_NAME/rootfs . | {{ lxc_xz_bin }} -{{ lxc_image_compression_ratio }} -c - > rootfs.tar.xz
args:
chdir: "{{ lxc_container_cache_path }}/{{ lxc_cache_map.distro }}/{{ lxc_cache_map.release }}/{{ lxc_cache_map.arch }}/{{ lxc_cache_default_variant }}/"
notify: Destroy base container
tags:
- skip_ansible_lint
- lxc-cache
- lxc-image-cache-create
- name: Create base container to use for overlayfs containers
lxc_container:
name: "{{ lxc_container_base_name }}"
template: "download"
state: stopped
backing_store: "dir"
template_options: "{{ lxc_cache_download_template_options }}"
register: cache_download
retries: 3
delay: 10
until: cache_download|success
environment: "{{ lxc_cache_environment }}"
when:
- lxc_container_backing_store is defined
- lxc_container_backing_store == 'overlayfs'
- name: Create base container to use for LVM-backed copy-on-write containers
lxc_container:
name: "{{ lxc_container_base_name }}"
template: "download"
state: stopped
backing_store: "lvm"
template_options: "{{ lxc_cache_download_template_options }}"
register: cache_download
retries: 3
delay: 10
until: cache_download|success
environment: "{{ lxc_cache_environment }}"
when:
- lxc_container_backing_store is defined
- lxc_container_backing_store == 'lvm'
- lxc_container_backing_method is defined
- lxc_container_backing_method == 'copy-on-write'