Update the GCE guide with a working configuration.
Also remove a few whitespaces, improve the bash script and fix a typo.
This commit is contained in:
parent
0354d19f73
commit
cc6f10b6ac
1 changed files with 13 additions and 10 deletions
|
@ -136,15 +136,15 @@ For the following use case, let's use this small shell script as a wrapper.
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
PLAYBOOK="$1"
|
PLAYBOOK="$1"
|
||||||
|
|
||||||
if [ -z $PLAYBOOK ]; then
|
if [[ -z $PLAYBOOK ]]; then
|
||||||
echo "You need to pass a playback as argument to this script."
|
echo "You need to pass a playbook as argument to this script."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export SSL_CERT_FILE=$(pwd)/cacert.cer
|
export SSL_CERT_FILE=$(pwd)/cacert.cer
|
||||||
export ANSIBLE_HOST_KEY_CHECKING=False
|
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||||
|
|
||||||
if [ ! -f "$SSL_CERT_FILE" ]; then
|
if [[ ! -f "$SSL_CERT_FILE" ]]; then
|
||||||
curl -O http://curl.haxx.se/ca/cacert.pem
|
curl -O http://curl.haxx.se/ca/cacert.pem
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -175,11 +175,11 @@ A playbook would looks like this:
|
||||||
tasks:
|
tasks:
|
||||||
- name: Launch instances
|
- name: Launch instances
|
||||||
gce:
|
gce:
|
||||||
instance_names: dev
|
instance_names: dev
|
||||||
machine_type: "{{ machine_type }}"
|
machine_type: "{{ machine_type }}"
|
||||||
image: "{{ image }}"
|
image: "{{ image }}"
|
||||||
service_account_email: "{{ service_account_email }}"
|
service_account_email: "{{ service_account_email }}"
|
||||||
pem_file: "{{ pem_file }}"
|
pem_file: "{{ pem_file }}"
|
||||||
project_id: "{{ project_id }}"
|
project_id: "{{ project_id }}"
|
||||||
tags: webserver
|
tags: webserver
|
||||||
register: gce
|
register: gce
|
||||||
|
@ -188,15 +188,18 @@ A playbook would looks like this:
|
||||||
wait_for: host={{ item.public_ip }} port=22 delay=10 timeout=60
|
wait_for: host={{ item.public_ip }} port=22 delay=10 timeout=60
|
||||||
with_items: gce.instance_data
|
with_items: gce.instance_data
|
||||||
|
|
||||||
- name: add_host hostname={{ item.public_ip }} groupname=new_instances
|
- name: Add host to groupname
|
||||||
|
add_host: hostname={{ item.public_ip }} groupname=new_instances
|
||||||
|
with_items: gce.instance_data
|
||||||
|
|
||||||
- name: Manage new instances
|
- name: Manage new instances
|
||||||
hosts: new_instances
|
hosts: new_instances
|
||||||
connection: ssh
|
connection: ssh
|
||||||
|
sudo: True
|
||||||
roles:
|
roles:
|
||||||
- base_configuration
|
- base_configuration
|
||||||
- production_server
|
- production_server
|
||||||
|
|
||||||
Note that use of the "add_host" module above creates a temporary, in-memory group. This means that a play in the same playbook can then manage machines
|
Note that use of the "add_host" module above creates a temporary, in-memory group. This means that a play in the same playbook can then manage machines
|
||||||
in the 'new_instances' group, if so desired. Any sort of arbitrary configuration is possible at this point.
|
in the 'new_instances' group, if so desired. Any sort of arbitrary configuration is possible at this point.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue