|
|
|
---
|
|
|
|
- name: Get the default ipv4 address
|
|
|
|
set_fact:
|
|
|
|
besu_default_ip: >-
|
|
|
|
{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] if
|
|
|
|
hostvars[inventory_hostname]['ansible_default_ipv4']['address'] is
|
|
|
|
defined else '127.0.0.1' }}
|
|
|
|
besu_aws_public_ip: ""
|
|
|
|
besu_gcp_public_ip: ""
|
|
|
|
besu_azure_public_ip: ""
|
|
|
|
|
|
|
|
- name: Check if running on AWS
|
|
|
|
uri:
|
|
|
|
url: http://169.254.169.254/latest/meta-data/public-ipv4
|
|
|
|
method: GET
|
|
|
|
return_content: yes
|
|
|
|
status_code: 200
|
|
|
|
register: aws_public_ip_output
|
|
|
|
ignore_errors: True
|
|
|
|
|
|
|
|
- name: Set the host ip if we are in AWS
|
|
|
|
set_fact:
|
|
|
|
besu_host_ip: "{{ aws_public_ip_output.content }}"
|
|
|
|
when: aws_public_ip_output.status == 200
|
|
|
|
|
|
|
|
- name: Check if running on Azure
|
|
|
|
uri:
|
|
|
|
url: http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text
|
|
|
|
method: GET
|
|
|
|
headers:
|
|
|
|
Metadata: true
|
|
|
|
return_content: yes
|
|
|
|
status_code: 200
|
|
|
|
register: azure_public_ip_output
|
|
|
|
ignore_errors: True
|
|
|
|
when: ( aws_public_ip_output.status != 200 )
|
|
|
|
|
|
|
|
- name: Set the host ip if we are in Azure
|
|
|
|
set_fact:
|
|
|
|
besu_host_ip: "{{ azure_public_ip_output.content }}"
|
|
|
|
when: ( aws_public_ip_output.status != 200 ) and
|
|
|
|
( azure_public_ip_output.status == 200 )
|
|
|
|
|
|
|
|
- name: Check if running on GCP
|
|
|
|
uri:
|
|
|
|
url: http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
|
|
|
|
method: GET
|
|
|
|
headers:
|
|
|
|
Metadata-Flavor: Google
|
|
|
|
return_content: yes
|
|
|
|
status_code: 200
|
|
|
|
register: gcp_public_ip_output
|
|
|
|
ignore_errors: True
|
|
|
|
when: ( aws_public_ip_output.status != 200 ) and
|
|
|
|
( azure_public_ip_output.status != 200 )
|
|
|
|
|
|
|
|
- name: Set the host ip if we are in GCP
|
|
|
|
set_fact:
|
|
|
|
besu_host_ip: "{{ gcp_public_ip_output.content }}"
|
|
|
|
when: ( aws_public_ip_output.status != 200 ) and
|
|
|
|
( azure_public_ip_output.status != 200 ) and
|
|
|
|
( gcp_public_ip_output == 200 )
|
|
|
|
|
|
|
|
- name: Fallback to the ansible default ip
|
|
|
|
set_fact:
|
|
|
|
besu_host_ip: "{{ besu_default_ip }}"
|
|
|
|
when: ( aws_public_ip_output.status != 200 ) and
|
|
|
|
( azure_public_ip_output.status != 200 ) and
|
|
|
|
( gcp_public_ip_output != 200 )
|