From bc5cd79739f24767120e48ee1fd8680b20e7367b Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Mon, 29 Sep 2014 15:12:27 -0700 Subject: terminate playbook --- cluster.sh | 22 ++++++++----------- playbooks/gce/os3-master/terminate.yml | 37 +++++++++++++++++++++++++------- playbooks/gce/os3-minion/terminate.yml | 39 ++++++++++++++++++++++++++-------- 3 files changed, 68 insertions(+), 30 deletions(-) diff --git a/cluster.sh b/cluster.sh index cd8ba2d87..50fbe66eb 100755 --- a/cluster.sh +++ b/cluster.sh @@ -8,6 +8,7 @@ PROVIDER=gce function usage { cat 1>&2 <<-EOT ${0} : [create|destroy|update|list] {GCE environment tag} + Supported environment tags: $(grep 'SUPPORTED_ENVS.*=' ./cloud.rb) EOT @@ -23,7 +24,7 @@ function create_cluser { ./cloud.rb "${PROVIDER}" launch -e "${ENV}" --type=os3-master done update_cluster - echo -n "\nCreated ${MASTERS} masters and ${MINIONS} minions using ${PROVIDER} provider\n" + echo -e "\nCreated ${MASTERS} masters and ${MINIONS} minions using ${PROVIDER} provider\n" } function update_cluster { @@ -37,23 +38,18 @@ function update_cluster { } function terminate_cluster { - for (( i = 0; i < $MINIONS; i ++ )); do - ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-minion - done - - for (( i = 0; i < $MASTERS; i ++ )); do - ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-master - done + #./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-master + ./cloud.rb "${PROVIDER}" terminate -e "${ENV}" --type=os3-minion } -[ -f ./cloud.rb ] || (echo 1 > 2 'Cannot find ./cloud.rb' && exit 1) +[ -f ./cloud.rb ] || (echo 1>&2 'Cannot find ./cloud.rb' && exit 1) while getopts ':p:m:n:' flag; do case "${flag}" in p) PROVIDER="${OPTARG}" ;; m) MASTERS="${OPTARG}" ;; n) MINIONS="${OPTARG}" ;; - *) echo -n 2>&1 "unsupported option $OPTARG\n" + *) echo -e 2>&1 "unsupported option $OPTARG\n" usage exit 1 ;; esac @@ -64,15 +60,15 @@ shift $((OPTIND-1)) case "${1}" in 'create') - [ -z "${2:-''}" ] && (usage; exit 1) + [ -z "${2:-}" ] && (usage; exit 1) ENV="${2}" create_cluser ;; 'update') - [ -z "${2:-''}" ] && (usage; exit 1) + [ -z "${2:-}" ] && (usage; exit 1) ENV="${2}" update_cluster ;; 'terminate') - [ -z "${2:-''}" ] && (usage; exit 1) + [ -z "${2:-}" ] && (usage; exit 1) ENV="${2}" terminate_cluster ;; 'list') ./cloud.rb "${PROVIDER}" list ;; diff --git a/playbooks/gce/os3-master/terminate.yml b/playbooks/gce/os3-master/terminate.yml index 8a618ecb8..b6a1b38e4 100644 --- a/playbooks/gce/os3-master/terminate.yml +++ b/playbooks/gce/os3-master/terminate.yml @@ -2,17 +2,38 @@ hosts: localhost gather_facts: no tasks: - - name: Evaluate oo_host_group_exp if it's set - add_host: "name={{ item }} groups=oo_hosts_to_terminate" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined + - debug: var=oo_host_group_exp -- name: "Terminate instances" + - name: Evaluate oo_host_group_exp if it's set + add_host: "name={{ item }} groups=oo_hosts_to_terminate" + with_items: "{{ oo_host_group_exp | default('') }}" + when: oo_host_group_exp is defined + + - debug: msg="{{ groups['oo_hosts_to_terminate'] }}" + + +- name: Terminate instances hosts: localhost connection: local tasks: - name: Terminate master instances - local_action: - module: gce + gce: + service_account_email: "{{ gce_service_account_email }}" + pem_file: "{{ gce_pem_file }}" + project_id: "{{ gce_project_id }}" state: 'absent' - instance_names: "{{ oo_hosts_to_terminate }}" + instance_names: "{{ groups['oo_hosts_to_terminate'] }}" + disks: "{{ groups['oo_hosts_to_terminate'] }}" + register: gce + + - debug: var=gce + +# - name: Remove disks of instances +# gce_pd: +# service_account_email: "{{ gce_service_account_email }}" +# pem_file: "{{ gce_pem_file }}" +# project_id: "{{ gce_project_id }}" +# name: "{{ item }}" +# state: deleted +# with_items: gce.instance_names + diff --git a/playbooks/gce/os3-minion/terminate.yml b/playbooks/gce/os3-minion/terminate.yml index 8a618ecb8..d31f175e1 100644 --- a/playbooks/gce/os3-minion/terminate.yml +++ b/playbooks/gce/os3-minion/terminate.yml @@ -2,17 +2,38 @@ hosts: localhost gather_facts: no tasks: - - name: Evaluate oo_host_group_exp if it's set - add_host: "name={{ item }} groups=oo_hosts_to_terminate" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined + - debug: var=oo_host_group_exp -- name: "Terminate instances" + - name: Evaluate oo_host_group_exp if it's set + add_host: "name={{ item }} groups=oo_hosts_to_terminate" + with_items: "{{ oo_host_group_exp | default('') }}" + when: oo_host_group_exp is defined + + - debug: msg="{{ groups['oo_hosts_to_terminate'] }}" + + +- name: Terminate instances hosts: localhost connection: local tasks: - - name: Terminate master instances - local_action: - module: gce + - name: Terminate minion instances + gce: + service_account_email: "{{ gce_service_account_email }}" + pem_file: "{{ gce_pem_file }}" + project_id: "{{ gce_project_id }}" state: 'absent' - instance_names: "{{ oo_hosts_to_terminate }}" + instance_names: "{{ groups['oo_hosts_to_terminate'] }}" + disks: "{{ groups['oo_hosts_to_terminate'] }}" + register: gce + + - debug: var=gce + +# - name: Remove disks of instances +# gce_pd: +# service_account_email: "{{ gce_service_account_email }}" +# pem_file: "{{ gce_pem_file }}" +# project_id: "{{ gce_project_id }}" +# name: "{{ item }}" +# state: deleted +# with_items: gce.instance_names + -- cgit v1.2.3