openstack-ansible/playbooks/containers-nspawn-create.yml
Jesse Pretorius f4e74ea714 Ensure facts are updated for new containers
When the new containers are built, we currently only collect
a minimal amount of facts afterwards. This patch ensures that
a broader set of facts are updated to ensure that we have the
updated distribution information, networking and storage facts.

We do this for both types of containers to ensure consistency
in the approach.

Related-Bug: 1765438
Change-Id: I620e35d0942a6d4a55e05ae441d0e6ee2e4a67c4
2018-05-11 18:02:54 +00:00

78 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
vars_files:
- defaults/repo_packages/openstack_services.yml
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- nspawn-containers-create