64b3a43b94
Ubuntu 14/16.04 uses links /etc/resolv.conf to /run/resolvconf/resolv.conf. This results in a failure of rsync to copy the contents of the lxc host's resolv.conf contents into the container template, and only recreates the link. This commit adds the necessary files from /run/resolvconf to the container template to allow for proper domain resolution during template modification. The sync command from the tasks/lxc_cache_preparation.yml file now ensures a source exists prior to running the sync. This is needed because of differences in the gate vs what is seen in production. Additionally the item variables in the sync command have been quoted they can not be escaped. Change-Id: I58c9a81306922f9e587e1ed3a7a2693c64bfec3c
109 lines
3.1 KiB
YAML
109 lines
3.1 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: Generate apt keys from LXC host for the container cache
|
|
shell: apt-key exportall > /root/repo.keys
|
|
changed_when: False
|
|
when:
|
|
- ansible_pkg_mgr == 'apt'
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-apt-keys
|
|
|
|
# TODO(evrardjp): replace this with a copy with remote_src: True
|
|
# when ansible2.0 will be supported
|
|
- name: Rsyncing files from the LXC host to the container cache
|
|
shell: |
|
|
if [[ -e "{{ item }}" ]]; then
|
|
rsync -av "{{ item }}" "/var/lib/lxc/LXC_NAME/rootfs{{ item }}"
|
|
fi
|
|
args:
|
|
executable: "/bin/bash"
|
|
with_items: "{{ lxc_cache_map.copy_from_host }}"
|
|
tags:
|
|
- lxc-cache
|
|
- skip_ansible_lint
|
|
|
|
- name: Copy files from deployment host to the container cache
|
|
copy:
|
|
src: "{{ item.src }}"
|
|
dest: "/var/lib/lxc/LXC_NAME/rootfs{{ item.dest | default(item.src) }}"
|
|
owner: "{{ item.owner | default('root') }}"
|
|
group: "{{ item.group | default('root') }}"
|
|
mode: "{{ item.mode | default('0644') }}"
|
|
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_prep_commands }}
|
|
dest: "/var/lib/lxc/LXC_NAME/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/LXC_NAME/rootfs /usr/local/bin/cache-prep-commands.sh"
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Adjust sshd configuration in container
|
|
lineinfile:
|
|
dest: "/var/lib/lxc/LXC_NAME/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/LXC_NAME/rootfs/root/.ssh/authorized_keys"
|
|
line: "{{ lxc_container_ssh_key }}"
|
|
create: true
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-update
|
|
|
|
- name: Remove generated apt keys from LXC host
|
|
file:
|
|
path: /root/repo.keys
|
|
state: absent
|
|
when:
|
|
- ansible_pkg_mgr == 'apt'
|
|
changed_when: False
|
|
tags:
|
|
- lxc-cache
|
|
- lxc-cache-apt-keys
|