diff --git a/playbooks/common-plays/generate-lxc-container-hosts.yml b/playbooks/common-plays/generate-lxc-container-hosts.yml new file mode 100644 index 0000000000..15a9c70125 --- /dev/null +++ b/playbooks/common-plays/generate-lxc-container-hosts.yml @@ -0,0 +1,34 @@ +--- +# Copyright 2016, 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 container host list + hosts: localhost + connection: local + gather_facts: false + tasks: + - set_fact: + _container_hosts: > + {%- for item in groups['all_containers'] -%} + {%- if hostvars[item]['physical_host'] | default(false) != item -%} + {{ hostvars[item]['physical_host'] }}{% if not loop.last %},{% endif %} + {%- endif -%} + {%- endfor -%} + - set_fact: + _known_container_hosts: "{{ _container_hosts | replace('\n', '') }}" + - name: Create dynamic lxc_host group + add_host: + hostname: "{{ item }}" + groups: "known_container_hosts" + with_items: "{{ _known_container_hosts.split(',') | unique }}" diff --git a/playbooks/lxc-hosts-setup.yml b/playbooks/lxc-hosts-setup.yml index 66c77b8724..bda779f942 100644 --- a/playbooks/lxc-hosts-setup.yml +++ b/playbooks/lxc-hosts-setup.yml @@ -13,19 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +- include: common-plays/generate-lxc-container-hosts.yml + - name: Basic lxc host setup - hosts: > - {{ lxc_host_group | - default(' - shared-infra_hosts - :os-infra_hosts - :repo-infra_hosts - :identity_hosts - :storage-infra_hosts - :log_hosts - :network_hosts - ') - }} + hosts: known_container_hosts gather_facts: "{{ gather_facts | default(True) }}" max_fail_percentage: 20 user: root