From 317d20d2cd7847ac295e63015c540a882f77964e Mon Sep 17 00:00:00 2001 From: Thomas Wiest Date: Thu, 30 Oct 2014 16:40:52 -0400 Subject: cleaned up unused GCE host types, changed back to using gce.ini, and added a better ssh detection on launch. --- .gitignore | 2 +- README_GCE.md | 14 +++++----- playbooks/gce/openshift-master/launch.yml | 9 +++++++ playbooks/gce/openshift-minion/launch.yml | 9 +++++++ playbooks/gce/os3-master/config.yml | 41 ----------------------------- playbooks/gce/os3-master/launch.yml | 38 --------------------------- playbooks/gce/os3-master/terminate.yml | 38 --------------------------- playbooks/gce/os3-master/vars.yml | 0 playbooks/gce/os3-minion/config.yml | 43 ------------------------------- playbooks/gce/os3-minion/launch.yml | 38 --------------------------- playbooks/gce/os3-minion/terminate.yml | 40 ---------------------------- playbooks/gce/os3-minion/vars.yml | 0 playbooks/gce/os3-registry/config.yml | 17 ------------ playbooks/gce/os3-registry/launch.yml | 38 --------------------------- playbooks/gce/os3-registry/vars.yml | 0 playbooks/gce/os3-router/config.yml | 17 ------------ playbooks/gce/os3-router/launch.yml | 38 --------------------------- playbooks/gce/os3-router/vars.yml | 0 18 files changed, 27 insertions(+), 355 deletions(-) delete mode 100644 playbooks/gce/os3-master/config.yml delete mode 100644 playbooks/gce/os3-master/launch.yml delete mode 100644 playbooks/gce/os3-master/terminate.yml delete mode 100644 playbooks/gce/os3-master/vars.yml delete mode 100644 playbooks/gce/os3-minion/config.yml delete mode 100644 playbooks/gce/os3-minion/launch.yml delete mode 100644 playbooks/gce/os3-minion/terminate.yml delete mode 100644 playbooks/gce/os3-minion/vars.yml delete mode 100644 playbooks/gce/os3-registry/config.yml delete mode 100644 playbooks/gce/os3-registry/launch.yml delete mode 100644 playbooks/gce/os3-registry/vars.yml delete mode 100644 playbooks/gce/os3-router/config.yml delete mode 100644 playbooks/gce/os3-router/launch.yml delete mode 100644 playbooks/gce/os3-router/vars.yml diff --git a/.gitignore b/.gitignore index d94cd3718..03112b30e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,4 @@ .sass-cache .rvmrc .DS_Store -secrets.py +gce.ini diff --git a/README_GCE.md b/README_GCE.md index bac3f58b5..88f9f3a7c 100644 --- a/README_GCE.md +++ b/README_GCE.md @@ -34,18 +34,20 @@ Convert a GCE service key into a pem (for ansible) 1. Once this is done, put the original service key file (projectname-ef83bd90f261.p12) somewhere safe, or delete it (your call, I don not know what else we will use it for, and we can always regen it if needed). -Create a secrets.py file for GCE +Create a gce.ini file for GCE -------------------------------- -1. vi ~/.gce/secrets.py +1. vi ~/.gce/gce.ini 1. make the contents look like this: ``` - GCE_PARAMS = ('long...@developer.gserviceaccount.com', '/full/path/to/projectname_priv_key.pem') - GCE_KEYWORD_PARAMS = {'project': 'my_project_id'} +[gce] +gce_service_account_email_address = long...@developer.gserviceaccount.com +gce_service_account_pem_file_path = /full/path/to/projectname_priv_key.pem +gce_project_id = my_project_id ``` -1. Setup a sym link so that gce.py will pick it up (must be in same dir as gce.py) +1. Setup a sym link so that gce.py will pick it up (link must be in same dir as gce.py) ``` cd openshift-online-ansible/inventory/gce - ln -s ~/.gce/secrets.py secrets.py + ln -s ~/.gce/gce.ini gce.ini ``` diff --git a/playbooks/gce/openshift-master/launch.yml b/playbooks/gce/openshift-master/launch.yml index 0a3ac3fdd..f2800b061 100644 --- a/playbooks/gce/openshift-master/launch.yml +++ b/playbooks/gce/openshift-master/launch.yml @@ -34,5 +34,14 @@ - debug: var=gce + - name: Wait for root user setup + command: "ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null root@{{ item.public_ip }} echo root user is setup" + register: result + until: result.rc == 0 + retries: 20 + delay: 10 + with_items: gce.instance_data + + # Apply the configs, separate so that just the configs can be run by themselves - include: config.yml diff --git a/playbooks/gce/openshift-minion/launch.yml b/playbooks/gce/openshift-minion/launch.yml index 0a3ac3fdd..f2800b061 100644 --- a/playbooks/gce/openshift-minion/launch.yml +++ b/playbooks/gce/openshift-minion/launch.yml @@ -34,5 +34,14 @@ - debug: var=gce + - name: Wait for root user setup + command: "ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null root@{{ item.public_ip }} echo root user is setup" + register: result + until: result.rc == 0 + retries: 20 + delay: 10 + with_items: gce.instance_data + + # Apply the configs, separate so that just the configs can be run by themselves - include: config.yml diff --git a/playbooks/gce/os3-master/config.yml b/playbooks/gce/os3-master/config.yml deleted file mode 100644 index 0d44ada5a..000000000 --- a/playbooks/gce/os3-master/config.yml +++ /dev/null @@ -1,41 +0,0 @@ -- name: "populate oo_hosts_to_config host group if needed" - hosts: localhost - gather_facts: no - tasks: - - name: Evaluate oo_host_group_exp if it's set - add_host: "name={{ item }} groups=oo_hosts_to_config" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined - -- name: "Gather facts for minions in {{ oo_env }}" - hosts: "tag_env-host-type-{{ oo_env }}-os3-minion" - connection: ssh - user: root - -- name: "Set OO sepcific facts on localhost (for later use)" - hosts: localhost - gather_facts: no - tasks: - - name: Setting oo_minion_ips fact on localhost - set_fact: - oo_minion_ips: "{{ hostvars - | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-os3-minion']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" - when: groups['tag_env-host-type-' + oo_env + '-os3-minion'] is defined - -- name: "Configure instances" - hosts: oo_hosts_to_config - connection: ssh - user: root - vars_files: - - vars.yml - roles: - - ../../../roles/base_os - - ../../../roles/repos - - ../../../roles/etcd - - { - role: ../../../roles/kubernetes_apiserver, - oo_minion_ips: "{{ hostvars['localhost'].oo_minion_ips | default(['']) }}" - } - - ../../../roles/kubernetes_controller_manager - - ../../../roles/pods diff --git a/playbooks/gce/os3-master/launch.yml b/playbooks/gce/os3-master/launch.yml deleted file mode 100644 index 2fe105377..000000000 --- a/playbooks/gce/os3-master/launch.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -- name: Launch instance(s) - hosts: localhost - connection: local - gather_facts: no - - vars: - inst_names: "{{ oo_new_inst_names }}" - machine_type: n1-standard-1 - image: libra-rhel7 - - vars_files: - - vars.yml - - tasks: - - name: Launch instances - gce: - instance_names: "{{ inst_names }}" - machine_type: "{{ machine_type }}" - image: "{{ image }}" - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - tags: "{{ oo_new_inst_tags }}" - register: gce - - - name: Add new instances public IPs to oo_hosts_to_config - add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_hosts_to_config" - with_items: gce.instance_data - - - name: Wait for ssh - wait_for: "port=22 host={{ item.public_ip }}" - with_items: gce.instance_data - - - debug: var=gce - -# Apply the configs, seprate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/os3-master/terminate.yml b/playbooks/gce/os3-master/terminate.yml deleted file mode 100644 index 7895cf016..000000000 --- a/playbooks/gce/os3-master/terminate.yml +++ /dev/null @@ -1,38 +0,0 @@ -- name: "populate oo_hosts_to_terminate host group if needed" - hosts: localhost - gather_facts: no - tasks: - - debug: var=oo_host_group_exp - - - 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 - gce: - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - state: 'absent' - 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 }}" - zone: "{{ gce.zone }}" - state: absent - with_items: gce.instance_names diff --git a/playbooks/gce/os3-master/vars.yml b/playbooks/gce/os3-master/vars.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/playbooks/gce/os3-minion/config.yml b/playbooks/gce/os3-minion/config.yml deleted file mode 100644 index 6ac051d4b..000000000 --- a/playbooks/gce/os3-minion/config.yml +++ /dev/null @@ -1,43 +0,0 @@ -- name: "populate oo_hosts_to_config host group if needed" - hosts: localhost - gather_facts: no - tasks: - - name: Evaluate oo_host_group_exp - add_host: "name={{ item }} groups=oo_hosts_to_config" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined - -- name: "Gather facts for masters in {{ oo_env }}" - hosts: "tag_env-host-type-{{ oo_env }}-os3-master" - connection: ssh - user: root - -- name: "Set OO sepcific facts on localhost (for later use)" - hosts: localhost - gather_facts: no - tasks: - - name: Setting oo_master_ips fact on localhost - set_fact: - oo_master_ips: "{{ hostvars - | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-os3-master']) - | oo_collect(attribute='ansible_eth0.ipv4.address') }}" - when: groups['tag_env-host-type-' + oo_env + '-os3-master'] is defined - -- name: "Configure instances" - hosts: oo_hosts_to_config - connection: ssh - user: root - vars_files: - - vars.yml - roles: - - ../../../roles/base_os - - ../../../roles/repos - - ../../../roles/docker - - { - role: ../../../roles/kubernetes_kubelet, - oo_master_ips: "{{ hostvars['localhost'].oo_master_ips | default(['']) }}" - } - - { - role: ../../../roles/kubernetes_proxy, - oo_master_ips: "{{ hostvars['localhost'].oo_master_ips | default(['']) }}" - } diff --git a/playbooks/gce/os3-minion/launch.yml b/playbooks/gce/os3-minion/launch.yml deleted file mode 100644 index 2fe105377..000000000 --- a/playbooks/gce/os3-minion/launch.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -- name: Launch instance(s) - hosts: localhost - connection: local - gather_facts: no - - vars: - inst_names: "{{ oo_new_inst_names }}" - machine_type: n1-standard-1 - image: libra-rhel7 - - vars_files: - - vars.yml - - tasks: - - name: Launch instances - gce: - instance_names: "{{ inst_names }}" - machine_type: "{{ machine_type }}" - image: "{{ image }}" - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - tags: "{{ oo_new_inst_tags }}" - register: gce - - - name: Add new instances public IPs to oo_hosts_to_config - add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_hosts_to_config" - with_items: gce.instance_data - - - name: Wait for ssh - wait_for: "port=22 host={{ item.public_ip }}" - with_items: gce.instance_data - - - debug: var=gce - -# Apply the configs, seprate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/os3-minion/terminate.yml b/playbooks/gce/os3-minion/terminate.yml deleted file mode 100644 index 0c7a2f55e..000000000 --- a/playbooks/gce/os3-minion/terminate.yml +++ /dev/null @@ -1,40 +0,0 @@ -- name: "populate oo_hosts_to_terminate host group if needed" - hosts: localhost - gather_facts: no - tasks: - - debug: var=oo_host_group_exp - - - 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 minion instances - gce: - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - state: 'absent' - 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 }}" - zone: "{{ gce.zone }}" - state: absent - with_items: gce.instance_names - diff --git a/playbooks/gce/os3-minion/vars.yml b/playbooks/gce/os3-minion/vars.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/playbooks/gce/os3-registry/config.yml b/playbooks/gce/os3-registry/config.yml deleted file mode 100644 index 8103faa5f..000000000 --- a/playbooks/gce/os3-registry/config.yml +++ /dev/null @@ -1,17 +0,0 @@ -- name: "populate oo_hosts_to_config host group if needed" - hosts: localhost - gather_facts: no - tasks: - - name: Evaluate oo_host_group_exp - add_host: "name={{ item }} groups=oo_hosts_to_config" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined - -- name: "Configure instances" - hosts: oo_hosts_to_config - connection: ssh - user: root - vars_files: - - vars.yml - roles: - - ../../../roles/base_os diff --git a/playbooks/gce/os3-registry/launch.yml b/playbooks/gce/os3-registry/launch.yml deleted file mode 100644 index 2fe105377..000000000 --- a/playbooks/gce/os3-registry/launch.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -- name: Launch instance(s) - hosts: localhost - connection: local - gather_facts: no - - vars: - inst_names: "{{ oo_new_inst_names }}" - machine_type: n1-standard-1 - image: libra-rhel7 - - vars_files: - - vars.yml - - tasks: - - name: Launch instances - gce: - instance_names: "{{ inst_names }}" - machine_type: "{{ machine_type }}" - image: "{{ image }}" - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - tags: "{{ oo_new_inst_tags }}" - register: gce - - - name: Add new instances public IPs to oo_hosts_to_config - add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_hosts_to_config" - with_items: gce.instance_data - - - name: Wait for ssh - wait_for: "port=22 host={{ item.public_ip }}" - with_items: gce.instance_data - - - debug: var=gce - -# Apply the configs, seprate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/os3-registry/vars.yml b/playbooks/gce/os3-registry/vars.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/playbooks/gce/os3-router/config.yml b/playbooks/gce/os3-router/config.yml deleted file mode 100644 index 8103faa5f..000000000 --- a/playbooks/gce/os3-router/config.yml +++ /dev/null @@ -1,17 +0,0 @@ -- name: "populate oo_hosts_to_config host group if needed" - hosts: localhost - gather_facts: no - tasks: - - name: Evaluate oo_host_group_exp - add_host: "name={{ item }} groups=oo_hosts_to_config" - with_items: "{{ oo_host_group_exp | default('') }}" - when: oo_host_group_exp is defined - -- name: "Configure instances" - hosts: oo_hosts_to_config - connection: ssh - user: root - vars_files: - - vars.yml - roles: - - ../../../roles/base_os diff --git a/playbooks/gce/os3-router/launch.yml b/playbooks/gce/os3-router/launch.yml deleted file mode 100644 index 2fe105377..000000000 --- a/playbooks/gce/os3-router/launch.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -- name: Launch instance(s) - hosts: localhost - connection: local - gather_facts: no - - vars: - inst_names: "{{ oo_new_inst_names }}" - machine_type: n1-standard-1 - image: libra-rhel7 - - vars_files: - - vars.yml - - tasks: - - name: Launch instances - gce: - instance_names: "{{ inst_names }}" - machine_type: "{{ machine_type }}" - image: "{{ image }}" - service_account_email: "{{ gce_service_account_email }}" - pem_file: "{{ gce_pem_file }}" - project_id: "{{ gce_project_id }}" - tags: "{{ oo_new_inst_tags }}" - register: gce - - - name: Add new instances public IPs to oo_hosts_to_config - add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_hosts_to_config" - with_items: gce.instance_data - - - name: Wait for ssh - wait_for: "port=22 host={{ item.public_ip }}" - with_items: gce.instance_data - - - debug: var=gce - -# Apply the configs, seprate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/os3-router/vars.yml b/playbooks/gce/os3-router/vars.yml deleted file mode 100644 index e69de29bb..000000000 -- cgit v1.2.3