
This change updates the lxc-host setup role to build the lxc cache using the download template based on default images found here:[0]. These images are upsteam builds from the greater LXC/D community. This update adds support for Ubuntu 14.04, 16.04 and RHEL/CentOS 7 container types and the cache will be generated from the host Operating system. [0] - https://images.linuxcontainers.org/ Change-Id: Ie13be2322d28178760481c59805101d6aeef4f36 Co-Authored-By: Jesse Pretorius <jesse.pretorius@rackspace.co.uk> Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
120 lines
3.7 KiB
YAML
120 lines
3.7 KiB
YAML
---
|
|
# Copyright 2015, 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: Copy files from deployment host to the container cache
|
|
copy:
|
|
src: "{{ item.src }}"
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs{{ item.dest }}"
|
|
owner: "{{ item.owner | default('root') }}"
|
|
group: "{{ item.group | default('root') }}"
|
|
mode: "{{ item.mode | default('644') }}"
|
|
with_items: lxc_container_cache_files
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-copy-files
|
|
|
|
- name: Cached image preparation script
|
|
copy:
|
|
content: |
|
|
#!/usr/bin/env bash
|
|
set -x
|
|
{{ lxc_cache_map.cache_base_commands }}
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs/usr/local/bin/cache-prep-commands.sh"
|
|
mode: "0755"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
# This task runs several commands against the cached image to speed up the
|
|
# lxc_container_create playbook.
|
|
- name: Prepare cached image setup commands
|
|
command: "chroot /var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs /usr/local/bin/cache-prep-commands.sh"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Create repos in the cached container
|
|
copy:
|
|
content: "{{ item.value }}"
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs{{ item.key }}"
|
|
with_dict: lxc_cache_map.repos
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Copy cached image preparation package script into the target
|
|
copy:
|
|
content: |
|
|
#!/usr/bin/env bash
|
|
set -x
|
|
{{ lxc_cache_install_command }} {{ lxc_cache_map.cache_packages | join(' ') }}
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs/usr/local/bin/cache-package-prep-commands.sh"
|
|
mode: "0755"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Prepare cached image with packages
|
|
command: "chroot /var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs /usr/local/bin/cache-package-prep-commands.sh"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Cached image post-preparation package script
|
|
copy:
|
|
content: |
|
|
#!/usr/bin/env bash
|
|
set -x
|
|
{{ lxc_cache_map.cache_post_commands }}
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs/usr/local/bin/cache-post-prep-commands.sh"
|
|
mode: "0755"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Post-prepare cached image setup commands
|
|
command: "chroot /var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs /usr/local/bin/cache-post-prep-commands.sh"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Adjust sshd configuration in container
|
|
lineinfile:
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs/etc/ssh/sshd_config"
|
|
regexp: "{{ item.regexp }}"
|
|
line: "{{ item.line }}"
|
|
state: present
|
|
with_items: lxc_cache_sshd_configuration
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Obtain the deploy system's ssh public key
|
|
set_fact:
|
|
lxc_container_ssh_key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
|
|
when: lxc_container_ssh_key is not defined
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Deploy ssh public key into the cached image
|
|
lineinfile:
|
|
dest: "/var/lib/lxc/cache-{{ lxc_cache_map.distro }}/rootfs/root/.ssh/authorized_keys"
|
|
line: "{{ lxc_container_ssh_key }}"
|
|
create: true
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|