9d10db61d0
Due to differences in the way the containers are created, the package cache must be forcefully updated after creation. If this is not done then apt thinks that it's up to date and fails package installs. We also ensure that the quota is rescanned to ensure that it is up to date. The playbook arrangement is also updated to standardise to the same pattern as the others. Depends-On: https://review.openstack.org/593033 Change-Id: I44ea902b0785bdeec4565e926105d24fae18500f Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
120 lines
3.5 KiB
YAML
120 lines
3.5 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
|
|
tags:
|
|
- always
|
|
- nspawn-containers-create
|
|
tasks:
|
|
- name: Add hosts to dynamic inventory group
|
|
group_by:
|
|
key: nspawn_containers
|
|
parents: all_nspawn_containers
|
|
when:
|
|
- container_tech == 'nspawn'
|
|
|
|
|
|
- name: Create container(s)
|
|
hosts: all_nspawn_containers
|
|
gather_facts: false
|
|
user: root
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- nspawn-containers-create
|
|
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) }}"
|
|
|
|
|
|
- name: Rescan storage quotas
|
|
hosts: "{{ nspawn_host_group | default('nspawn_hosts') }}"
|
|
gather_facts: false
|
|
tags:
|
|
- nspawn-containers-create
|
|
tasks:
|
|
- name: Rescan quotas
|
|
command: "btrfs quota rescan -w /var/lib/machines"
|
|
changed_when: false
|
|
|
|
|
|
- name: Configure containers default software
|
|
hosts: all_nspawn_containers
|
|
gather_facts: true
|
|
user: root
|
|
vars_files:
|
|
- defaults/repo_packages/openstack_services.yml
|
|
- "defaults/{{ install_method }}_install.yml"
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- nspawn-containers-create
|
|
pre_tasks:
|
|
- name: Update package cache (apt)
|
|
package:
|
|
update_cache: yes
|
|
force_apt_get: yes
|
|
force: yes
|
|
register: cache_update
|
|
until: cache_update is success
|
|
retries: 5
|
|
delay: 15
|
|
when:
|
|
- ansible_pkg_mgr == 'apt'
|
|
|
|
- name: Update package cache (zypper)
|
|
zypper_repository:
|
|
repo: '*'
|
|
runrefresh: yes
|
|
register: cache_update
|
|
until: cache_update is success
|
|
retries: 5
|
|
delay: 15
|
|
when:
|
|
- ansible_pkg_mgr == 'zypper'
|
|
|
|
# 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"
|
|
|
|
- include: common-tasks/package-cache-proxy.yml
|
|
when: install_method == "source"
|
|
|
|
- include: common-tasks/set-pip-vars.yml
|
|
when: install_method == "source"
|
|
roles:
|
|
- role: "openstack_hosts"
|
|
is_container: true
|
|
|