mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge pull request #12618 from AdThrive/devel
Added an option to use the private network IP address for DigitalOcean dynamic inventory
This commit is contained in:
commit
2c24fbbd6a
2 changed files with 10 additions and 2 deletions
|
@ -22,3 +22,7 @@ cache_path = /tmp
|
||||||
# seconds, a new API call will be made, and the cache file will be updated.
|
# seconds, a new API call will be made, and the cache file will be updated.
|
||||||
#
|
#
|
||||||
cache_max_age = 300
|
cache_max_age = 300
|
||||||
|
|
||||||
|
# Use the private network IP address instead of the public when available.
|
||||||
|
#
|
||||||
|
use_private_network = False
|
||||||
|
|
|
@ -167,6 +167,7 @@ class DigitalOceanInventory(object):
|
||||||
# Define defaults
|
# Define defaults
|
||||||
self.cache_path = '.'
|
self.cache_path = '.'
|
||||||
self.cache_max_age = 0
|
self.cache_max_age = 0
|
||||||
|
self.use_private_network = False
|
||||||
|
|
||||||
# Read settings, environment variables, and CLI arguments
|
# Read settings, environment variables, and CLI arguments
|
||||||
self.read_settings()
|
self.read_settings()
|
||||||
|
@ -256,6 +257,9 @@ or environment variables (DO_API_TOKEN)''')
|
||||||
if config.has_option('digital_ocean', 'cache_max_age'):
|
if config.has_option('digital_ocean', 'cache_max_age'):
|
||||||
self.cache_max_age = config.getint('digital_ocean', 'cache_max_age')
|
self.cache_max_age = config.getint('digital_ocean', 'cache_max_age')
|
||||||
|
|
||||||
|
# Private IP Address
|
||||||
|
if config.has_option('digital_ocean', 'use_private_network'):
|
||||||
|
self.use_private_network = config.get('digital_ocean', 'use_private_network')
|
||||||
|
|
||||||
def read_environment(self):
|
def read_environment(self):
|
||||||
''' Reads the settings from environment variables '''
|
''' Reads the settings from environment variables '''
|
||||||
|
@ -345,8 +349,8 @@ or environment variables (DO_API_TOKEN)''')
|
||||||
|
|
||||||
# add all droplets by id and name
|
# add all droplets by id and name
|
||||||
for droplet in self.data['droplets']:
|
for droplet in self.data['droplets']:
|
||||||
#when using private_networking, the API reports the private one in "ip_address", which is useless. We need the public one for Ansible to work
|
#when using private_networking, the API reports the private one in "ip_address".
|
||||||
if 'private_networking' in droplet['features']:
|
if 'private_networking' in droplet['features'] and not self.use_private_network:
|
||||||
for net in droplet['networks']['v4']:
|
for net in droplet['networks']['v4']:
|
||||||
if net['type']=='public':
|
if net['type']=='public':
|
||||||
dest=net['ip_address']
|
dest=net['ip_address']
|
||||||
|
|
Loading…
Add table
Reference in a new issue