Use credentials_file for GCE module auth config

pull/18777/head
Vic Iglesias 9 years ago committed by Matt Clay
parent 7ad225eedd
commit 612d9c3e92

@ -76,10 +76,15 @@ options:
pem_file: pem_file:
version_added: 1.5.1 version_added: 1.5.1
description: description:
- path to the pem file associated with the service account email - (deprecated) path to the pem file associated with the service account email
required: false required: false
default: null default: null
aliases: [] credentials_file:
version_added: 2.1.0
description:
- path to the JSON file associated with the service account email
default: null
required: false
project_id: project_id:
version_added: 1.5.1 version_added: 1.5.1
description: description:
@ -158,7 +163,7 @@ options:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "apache-libcloud >= 0.13.3" - "apache-libcloud >= 0.17.0"
notes: notes:
- Either I(name) or I(instance_names) is required. - Either I(name) or I(instance_names) is required.
author: "Eric Johnson (@erjohnso) <erjohnso@google.com>" author: "Eric Johnson (@erjohnso) <erjohnso@google.com>"
@ -191,14 +196,13 @@ EXAMPLES = '''
image: debian-6 image: debian-6
zone: us-central1-a zone: us-central1-a
service_account_email: unique-email@developer.gserviceaccount.com service_account_email: unique-email@developer.gserviceaccount.com
pem_file: /path/to/pem_file credentials_file: /path/to/json_file
project_id: project-id project_id: project-id
tasks: tasks:
- name: Launch instances - name: Launch instances
local_action: gce instance_names={{names}} machine_type={{machine_type}} local_action: gce instance_names={{names}} machine_type={{machine_type}}
image={{image}} zone={{zone}} image={{image}} zone={{zone}} service_account_email={{ service_account_email }}
service_account_email={{ service_account_email }} credentials_file={{ credentials_file }} project_id={{ project_id }}
pem_file={{ pem_file }} project_id={{ project_id }}
register: gce register: gce
- name: Wait for SSH to come up - name: Wait for SSH to come up
local_action: wait_for host={{item.public_ip}} port=22 delay=10 local_action: wait_for host={{item.public_ip}} port=22 delay=10
@ -470,34 +474,35 @@ def terminate_instances(module, gce, instance_names, zone_name):
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec=dict( argument_spec = dict(
image=dict(default='debian-7'), image = dict(default='debian-7'),
instance_names=dict(), instance_names = dict(),
machine_type=dict(default='n1-standard-1'), machine_type = dict(default='n1-standard-1'),
metadata=dict(), metadata = dict(),
name=dict(), name = dict(),
network=dict(default='default'), network = dict(default='default'),
persistent_boot_disk=dict(type='bool', default=False), persistent_boot_disk = dict(type='bool', default=False),
disks=dict(type='list'), disks = dict(type='list'),
state=dict(choices=['active', 'present', 'absent', 'deleted'], state = dict(choices=['active', 'present', 'absent', 'deleted'],
default='present'), default='present'),
tags=dict(type='list'), tags = dict(type='list'),
zone=dict(default='us-central1-a'), zone = dict(default='us-central1-a'),
service_account_email=dict(), service_account_email = dict(),
service_account_permissions=dict(type='list'), service_account_permissions = dict(type='list'),
pem_file=dict(), pem_file = dict(),
project_id=dict(), credentials_file = dict(),
ip_forward=dict(type='bool', default=False), project_id = dict(),
external_ip=dict(choices=['ephemeral', 'none'], ip_forward = dict(type='bool', default=False),
default='ephemeral'), external_ip = dict(choices=['ephemeral', 'none'],
disk_auto_delete=dict(type='bool', default=True), default='ephemeral'),
disk_auto_delete = dict(type='bool', default=True),
) )
) )
if not HAS_PYTHON26: if not HAS_PYTHON26:
module.fail_json(msg="GCE module requires python's 'ast' module, python v2.6+") module.fail_json(msg="GCE module requires python's 'ast' module, python v2.6+")
if not HAS_LIBCLOUD: if not HAS_LIBCLOUD:
module.fail_json(msg='libcloud with GCE support (0.13.3+) required for this module') module.fail_json(msg='libcloud with GCE support (0.17.0+) required for this module')
gce = gce_connect(module) gce = gce_connect(module)

@ -119,10 +119,16 @@ options:
pem_file: pem_file:
version_added: "1.6" version_added: "1.6"
description: description:
- path to the pem file associated with the service account email - (deprecated) path to the pem file associated with the service account email
required: false required: false
default: null default: null
aliases: [] aliases: []
credentials_file:
version_added: 2.1.0
description:
- path to the JSON file associated with the service account email
default: null
required: false
project_id: project_id:
version_added: "1.6" version_added: "1.6"
description: description:
@ -133,7 +139,7 @@ options:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "apache-libcloud >= 0.13.3" - "apache-libcloud >= 0.17.0"
author: "Eric Johnson (@erjohnso) <erjohnso@google.com>" author: "Eric Johnson (@erjohnso) <erjohnso@google.com>"
''' '''
@ -182,6 +188,7 @@ def main():
state = dict(default='present'), state = dict(default='present'),
service_account_email = dict(), service_account_email = dict(),
pem_file = dict(), pem_file = dict(),
credentials_file = dict(),
project_id = dict(), project_id = dict(),
) )
) )

@ -91,7 +91,14 @@ options:
pem_file: pem_file:
version_added: "1.6" version_added: "1.6"
description: description:
- path to the pem file associated with the service account email - (deprecated) path to the pem file associated with the service account email
required: false
default: null
aliases: []
credentials_file:
version_added: "2.1.0"
description:
- path to the JSON file associated with the service account email
required: false required: false
default: null default: null
aliases: [] aliases: []
@ -105,7 +112,7 @@ options:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "apache-libcloud >= 0.13.3" - "apache-libcloud >= 0.17.0"
author: "Eric Johnson (@erjohnso) <erjohnso@google.com>" author: "Eric Johnson (@erjohnso) <erjohnso@google.com>"
''' '''
@ -178,12 +185,13 @@ def main():
state = dict(default='present'), state = dict(default='present'),
service_account_email = dict(), service_account_email = dict(),
pem_file = dict(), pem_file = dict(),
credentials_file = dict(),
project_id = dict(), project_id = dict(),
) )
) )
if not HAS_LIBCLOUD: if not HAS_LIBCLOUD:
module.exit_json(msg='libcloud with GCE support (0.13.3+) required for this module') module.exit_json(msg='libcloud with GCE support (0.17.0+) required for this module')
gce = gce_connect(module) gce = gce_connect(module)

@ -97,7 +97,14 @@ options:
pem_file: pem_file:
version_added: "1.6" version_added: "1.6"
description: description:
- path to the pem file associated with the service account email - (deprecated) path to the pem file associated with the service account email
required: false
default: null
aliases: []
credentials_file:
version_added: "2.1.0"
description:
- path to the JSON file associated with the service account email
required: false required: false
default: null default: null
aliases: [] aliases: []
@ -119,7 +126,7 @@ options:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "apache-libcloud >= 0.13.3" - "apache-libcloud >= 0.17.0"
author: "Eric Johnson (@erjohnso) <erjohnso@google.com>" author: "Eric Johnson (@erjohnso) <erjohnso@google.com>"
''' '''
@ -158,11 +165,12 @@ def main():
zone = dict(default='us-central1-b'), zone = dict(default='us-central1-b'),
service_account_email = dict(), service_account_email = dict(),
pem_file = dict(), pem_file = dict(),
credentials_file = dict(),
project_id = dict(), project_id = dict(),
) )
) )
if not HAS_LIBCLOUD: if not HAS_LIBCLOUD:
module.fail_json(msg='libcloud with GCE support (0.13.3+) is required for this module') module.fail_json(msg='libcloud with GCE support (0.17.0+) is required for this module')
gce = gce_connect(module) gce = gce_connect(module)

Loading…
Cancel
Save