infra-ansible/roles/generate_infra_dynamic_groups/tasks/main.yml

53 lines
2.8 KiB
YAML

---
- name: Get Puppetmaster service definition from infra config
set_fact: puppetmaster_service={{ services | selectattr('name', 'equalto', 'puppetmaster') | list }}
- block:
- name: Get Puppetmaster server name
set_fact: puppetmaster_name={{ puppetmaster_service[0]['hosts'][0] }}
- name: Get Puppetmaster server UUID from dynamic inventory
set_fact: puppetmaster_uuid={{ groups[puppetmaster_name][0] }}
- name: Get Puppetmaster server IP
set_fact: puppetmaster_ip={{ hostvars[puppetmaster_uuid]['openstack']['public_v4'] }}
- name: Add "{{ puppetmaster_name }}" to infra and puppetmaster group and set inventory IP
add_host: name={{ puppetmaster_name }} ansible_ssh_host={{ puppetmaster_ip }} groups=infra,puppetmaster
when: puppetmaster_service
- name: Get Gerrit service definition from infra config
set_fact: gerrit_service={{ services | selectattr('name', 'equalto', 'gerrit') | list }}
- block:
- name: Get Gerrit server name from infra config
set_fact: gerrit_name={{ gerrit_service[0]['hosts'][0] }}
- name: Get Gerrit server UUID from dynamic inventory
set_fact: gerrit_uuid={{ groups[gerrit_name][0] }}
- name: Get Gerrit server IP
set_fact: gerrit_ip={{ hostvars[gerrit_uuid]['openstack']['public_v4'] }}
- name: Add "{{ gerrit_name }}" to infra and gerrit groups and set inventory IP
add_host: name={{ gerrit_name }} ansible_ssh_host={{ gerrit_ip }} groups=infra,gerrit
when: gerrit_service
- name: Get Zuul service definition from infra config
set_fact: zuul_service={{ services | selectattr('name', 'equalto', 'zuul') | list }}
- block:
- name: Get Zuul server name from infra config
set_fact: zuul_name={{ zuul_service[0]['hosts'][0] }}
- name: Get Zuul server UUID from dynamic inventory
set_fact: zuul_uuid={{ groups[zuul_name][0] }}
- name: Get Zuul server IP
set_fact: zuul_ip={{ hostvars[zuul_uuid]['openstack']['public_v4'] }}
- name: Add "{{ zuul_name }}" to infra and zuul groups and set inventory IP
add_host: name={{ zuul_name }} ansible_ssh_host={{ zuul_ip }} groups=infra,zuul
when: zuul_service
- name: Get Jenkins service definition from infra config
set_fact: jenkins_service={{ services | selectattr('name', 'equalto', 'jenkins') | list }}
- block:
- name: Get Jenkins server name from infra config
set_fact: jenkins_name={{ jenkins_service[0]['hosts'][0] }}
- name: Get Jenkins server UUID from dynamic inventory
set_fact: jenkins_uuid={{ groups[jenkins_name][0] }}
- name: Get Jenkins server IP
set_fact: jenkins_ip={{ hostvars[jenkins_uuid]['openstack']['public_v4'] }}
- name: Add "{{ jenkins_name }}" to infra and jenkins groups and set inventory IP
add_host: name={{ jenkins_name }} ansible_ssh_host={{ jenkins_ip }} groups=infra,jenkins
when: jenkins_service