cfa103dab7
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>
79 lines
2.1 KiB
YAML
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
|