diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | README_GCE.md | 14 | ||||
| -rw-r--r-- | playbooks/gce/openshift-master/launch.yml | 9 | ||||
| -rw-r--r-- | playbooks/gce/openshift-minion/launch.yml | 9 | ||||
| -rw-r--r-- | playbooks/gce/os3-master/config.yml | 41 | ||||
| -rw-r--r-- | playbooks/gce/os3-master/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/os3-master/terminate.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/os3-master/vars.yml | 0 | ||||
| -rw-r--r-- | playbooks/gce/os3-minion/config.yml | 43 | ||||
| -rw-r--r-- | playbooks/gce/os3-minion/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/os3-minion/terminate.yml | 40 | ||||
| -rw-r--r-- | playbooks/gce/os3-minion/vars.yml | 0 | ||||
| -rw-r--r-- | playbooks/gce/os3-registry/config.yml | 17 | ||||
| -rw-r--r-- | playbooks/gce/os3-registry/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/os3-registry/vars.yml | 0 | ||||
| -rw-r--r-- | playbooks/gce/os3-router/config.yml | 17 | ||||
| -rw-r--r-- | playbooks/gce/os3-router/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/os3-router/vars.yml | 0 | 
18 files changed, 27 insertions, 355 deletions
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 --- a/playbooks/gce/os3-master/vars.yml +++ /dev/null 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 --- a/playbooks/gce/os3-minion/vars.yml +++ /dev/null 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 --- a/playbooks/gce/os3-registry/vars.yml +++ /dev/null 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 --- a/playbooks/gce/os3-router/vars.yml +++ /dev/null  | 
