openstack-ansible/playbooks/containers-nspawn-create.yml
Kevin Carter 90f1ed79e4 Set cache_timeout when creating nspawn containers
Nspawn containers, when first created, do not have any valid cache and
that causes the playbooks to fail on the first run when the package
"ubuntu-cloud-keyring" is installed on the ubuntu platform. This change
sets the cache timeout to 0 when the openstack_hosts role is executed
within a container during the container create process which will ensure
the cache is updated without fail.

Change-Id: I22299785192c691dbb1262ee6c9873a3c7c91315
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-06-28 04:32:27 +00:00

79 lines
2.6 KiB
YAML

---
# Copyright 2017, 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: Gather nspawn container host facts
hosts: "{{ nspawn_host_group | default('nspawn_hosts') }}"
gather_facts: true
- name: Set nspawn containers group
hosts: "{{ container_group | default('all_containers') }}"
gather_facts: false
tasks:
- name: Add hosts to dynamic inventory group
group_by:
key: nspawn_containers
parents: all_nspawn_containers
when:
- container_tech == 'nspawn'
tags:
- always
- nspawn-containers-create
- name: Create container(s)
hosts: all_nspawn_containers
gather_facts: false
user: root
roles:
- role: "nspawn_container_create"
post_tasks:
- name: Wait for container connectivity
wait_for_connection:
connect_timeout: "{{ lxc_container_wait_params.connect_timeout | default(omit) }}"
delay: "{{ lxc_container_wait_params.delay | default(omit) }}"
sleep: "{{ lxc_container_wait_params.sleep | default(omit) }}"
timeout: "{{ lxc_container_wait_params.timeout | default(omit) }}"
# When using gather_facts with smart gathering,
# the facts aren't fully updated unless they
# are old. Using the setup module in a task
# does a more thorough collection.
# Given we've just created the container, it is
# best that we do a full collection of facts -
# otherwise we end up with a stale set which
# has stuff like the hostname = localhost.
- name: Gather facts for new container(s)
setup:
gather_subset: "network,hardware,virtual"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- nspawn-containers-create
- name: Configure containers default software
hosts: all_nspawn_containers
gather_facts: true
user: root
pre_tasks:
- include: common-tasks/package-cache-proxy.yml
- include: common-tasks/set-pip-vars.yml
roles:
- role: "openstack_hosts"
is_container: true
cache_timeout: 0
vars_files:
- defaults/repo_packages/openstack_services.yml
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- nspawn-containers-create