--- # 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 when: install_method == "source" - include: common-tasks/set-pip-vars.yml when: install_method == "source" roles: - role: "openstack_hosts" is_container: true cache_timeout: 0 vars_files: - defaults/repo_packages/openstack_services.yml - "defaults/{{ install_method }}_install.yml" environment: "{{ deployment_environment_variables | default({}) }}" tags: - nspawn-containers-create