diff options
Diffstat (limited to 'playbooks/gce')
| -rw-r--r-- | playbooks/gce/origin-master/config.yml | 39 | ||||
| -rw-r--r-- | playbooks/gce/origin-master/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/origin-master/terminate.yml | 39 | ||||
| -rw-r--r-- | playbooks/gce/origin-master/vars.yml | 0 | ||||
| -rw-r--r-- | playbooks/gce/origin-minion/config.yml | 39 | ||||
| -rw-r--r-- | playbooks/gce/origin-minion/launch.yml | 38 | ||||
| -rw-r--r-- | playbooks/gce/origin-minion/terminate.yml | 39 | ||||
| -rw-r--r-- | playbooks/gce/origin-minion/vars.yml | 0 | ||||
| -rw-r--r-- | playbooks/gce/os3-master/terminate.yml | 21 | 
9 files changed, 242 insertions, 11 deletions
diff --git a/playbooks/gce/origin-master/config.yml b/playbooks/gce/origin-master/config.yml new file mode 100644 index 000000000..681f804cc --- /dev/null +++ b/playbooks/gce/origin-master/config.yml @@ -0,0 +1,39 @@ +- 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 }}-openshift-minion" +  connection: ssh +  user: root + +- name: "Set Origin specific 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 + '-openshift-minion']) +            | oo_collect(attribute='ansible_eth0.ipv4.address') }}" +      when: groups['tag_env-host-type-' + oo_env + '-openshift-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 +    - { +        role: ../../../roles/openshift_master, +        oo_minion_ips: "{{ hostvars['localhost'].oo_minion_ips | default(['']) }}" +      } +    - ../../../roles/pods diff --git a/playbooks/gce/origin-master/launch.yml b/playbooks/gce/origin-master/launch.yml new file mode 100644 index 000000000..0a3ac3fdd --- /dev/null +++ b/playbooks/gce/origin-master/launch.yml @@ -0,0 +1,38 @@ +--- +- 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, separate so that just the configs can be run by themselves +- include: config.yml diff --git a/playbooks/gce/origin-master/terminate.yml b/playbooks/gce/origin-master/terminate.yml new file mode 100644 index 000000000..b6a1b38e4 --- /dev/null +++ b/playbooks/gce/origin-master/terminate.yml @@ -0,0 +1,39 @@ +- 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 }}" +#        state: deleted +#      with_items: gce.instance_names + diff --git a/playbooks/gce/origin-master/vars.yml b/playbooks/gce/origin-master/vars.yml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/playbooks/gce/origin-master/vars.yml diff --git a/playbooks/gce/origin-minion/config.yml b/playbooks/gce/origin-minion/config.yml new file mode 100644 index 000000000..0a92d41c7 --- /dev/null +++ b/playbooks/gce/origin-minion/config.yml @@ -0,0 +1,39 @@ +- 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 }}-openshift-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 + '-openshift-master']) +            | oo_collect(attribute='ansible_eth0.ipv4.address') }}" +      when: groups['tag_env-host-type-' + oo_env + '-openshift-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/openshift_minion, +        oo_master_ips: "{{ hostvars['localhost'].oo_master_ips | default(['']) }}" +      } diff --git a/playbooks/gce/origin-minion/launch.yml b/playbooks/gce/origin-minion/launch.yml new file mode 100644 index 000000000..0a3ac3fdd --- /dev/null +++ b/playbooks/gce/origin-minion/launch.yml @@ -0,0 +1,38 @@ +--- +- 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, separate so that just the configs can be run by themselves +- include: config.yml diff --git a/playbooks/gce/origin-minion/terminate.yml b/playbooks/gce/origin-minion/terminate.yml new file mode 100644 index 000000000..d31f175e1 --- /dev/null +++ b/playbooks/gce/origin-minion/terminate.yml @@ -0,0 +1,39 @@ +- 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 }}" +#        state: deleted +#      with_items: gce.instance_names + diff --git a/playbooks/gce/origin-minion/vars.yml b/playbooks/gce/origin-minion/vars.yml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/playbooks/gce/origin-minion/vars.yml diff --git a/playbooks/gce/os3-master/terminate.yml b/playbooks/gce/os3-master/terminate.yml index b6a1b38e4..7895cf016 100644 --- a/playbooks/gce/os3-master/terminate.yml +++ b/playbooks/gce/os3-master/terminate.yml @@ -11,7 +11,6 @@      - debug: msg="{{ groups['oo_hosts_to_terminate'] }}" -  - name: Terminate instances    hosts: localhost    connection: local @@ -25,15 +24,15 @@          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 +    - 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  | 
