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:
Franck Cuny 2014-09-28 20:18:39 -07:00
parent 0354d19f73
commit cc6f10b6ac

View file

@ -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.