openstack-ansible-ops/skydive/buildTraefik.yml
Kevin Carter cfa103dab7 Update delegated setup hosts to support IP delegation
The option `skydive_service_setup_host` allows a user to define a
setup host target which could, or could not, be in the provided
inventory. Additionally a setup target host could also be simply
an IP reference. This change ensures that the playbooks and roles
respect the different setup host delegation node types by creating
in memory host entries and gathering facts on the dynamic
information when the target is not in inventory, is not in the
skydive_all group, or simply an IP.

Change-Id: I532abd7171ba9077759640e4bf18b9b517264426
Signed-off-by: Kevin Carter <kevin@cloudnull.com>
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2019-01-24 05:27:56 +00:00

79 lines
2.1 KiB
YAML

---
# Copyright 2019, 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: Setup localhost
hosts: localhost
connection: local
tags:
- always
- name: Gather facts
hosts: traefik_all
gather_facts: true
tags:
- always
- name: Classify traefik build servers
hosts: traefik_build_nodes
serial: 1
tasks:
- name: Group repo servers by architecture and os version
group_by:
key: traefik_build_nodes_{{ ansible_architecture }}
tags:
- always
- name: Prepare group of master build servers
hosts: localhost
tasks:
- name: Prepare group of master build servers
add_host:
name: "{{ groups[item][0] }}"
groups: traefik_build_nodes_masters
with_items: "{{ groups | select('match', '^traefik_build_nodes_') | list }}"
changed_when: false
tags:
- always
- name: Make traefik
hosts: traefik_build_nodes_masters
become: yes
vars:
traefik_build_version: HEAD
traefik_build_path: "/opt/traefik-build/{{ traefik_build_version }}"
traefik_build_go_path: "{{ traefik_build_path }}/go"
traefik_build_project_path: "{{ traefik_build_go_path }}/src"
roles:
- role: make_traefik
post_tasks:
- name: Find traefik binaries
find:
paths: "{{ traefik_build_project_path }}/github.com/containous/traefik"
recurse: no
patterns: "traefik"
register: files_to_copy
- name: Fetch traefik binaries
fetch:
src: "{{ item.path }}"
dest: "/tmp/traefik/{{ ansible_architecture }}/{{ item.path | basename }}"
flat: true
with_items: "{{ files_to_copy.files }}"
tags:
- traefik-make