diff options
| author | Matt Woodson <mwoodson@gmail.com> | 2016-01-11 11:00:40 -0500 | 
|---|---|---|
| committer | Matt Woodson <mwoodson@gmail.com> | 2016-01-11 11:00:40 -0500 | 
| commit | 0bbfef4e1951db1f19135e532f78fe12cab6d4fc (patch) | |
| tree | c01a390c68d29bd8b6b7a29db794b594bfa11216 /roles/openshift_master/tasks | |
| parent | c607f1ba93be5e9f16723074ff97ffd27b025f8c (diff) | |
| parent | 2dc56faff5812ba436bffd2fcd3ec2ac57780286 (diff) | |
Merge pull request #1155 from mwoodson/host_monitoring
merging master into prod
Diffstat (limited to 'roles/openshift_master/tasks')
| -rw-r--r-- | roles/openshift_master/tasks/main.yml | 88 | 
1 files changed, 77 insertions, 11 deletions
| diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml index 43647cc49..397122631 100644 --- a/roles/openshift_master/tasks/main.yml +++ b/roles/openshift_master/tasks/main.yml @@ -9,7 +9,6 @@        Invalid OAuth grant method: {{ openshift_master_oauth_grant_method }}    when: openshift_master_oauth_grant_method is defined and openshift_master_oauth_grant_method not in openshift_master_valid_grant_methods -  # HA Variable Validation  - fail:      msg: "openshift_master_cluster_method must be set to either 'native' or 'pacemaker' for multi-master installations" @@ -20,6 +19,9 @@  - fail:      msg: "openshift_master_cluster_password must be set for multi-master installations"    when: openshift_master_ha | bool and openshift_master_cluster_method == "pacemaker" and (openshift_master_cluster_password is not defined or not openshift_master_cluster_password) +- fail: +    msg: "Pacemaker based HA is not supported at this time when used with containerized installs" +  when: openshift_master_ha | bool and openshift_master_cluster_method == "pacemaker" and openshift.common.is_containerized | bool  - name: Set master facts    openshift_facts: @@ -38,6 +40,8 @@        console_url: "{{ openshift_master_console_url | default(None) }}"        console_use_ssl: "{{ openshift_master_console_use_ssl | default(None) }}"        public_console_url: "{{ openshift_master_public_console_url | default(None) }}" +      logging_public_url: "{{ openshift_master_logging_public_url | default(None) }}" +      metrics_public_url: "{{ openshift_master_metrics_public_url | default(None) }}"        etcd_hosts: "{{ openshift_master_etcd_hosts | default(None)}}"        etcd_port: "{{ openshift_master_etcd_port | default(None) }}"        etcd_use_ssl: "{{ openshift_master_etcd_use_ssl | default(None) }}" @@ -50,9 +54,9 @@        portal_net: "{{ openshift_master_portal_net | default(None) }}"        session_max_seconds: "{{ openshift_master_session_max_seconds | default(None) }}"        session_name: "{{ openshift_master_session_name | default(None) }}" +      session_secrets_file: "{{ openshift_master_session_secrets_file | default(None) }}"        session_auth_secrets: "{{ openshift_master_session_auth_secrets | default(None) }}"        session_encryption_secrets: "{{ openshift_master_session_encryption_secrets | default(None) }}" -      session_secrets_file: "{{ openshift_master_session_secrets_file | default(None) }}"        access_token_max_seconds: "{{ openshift_master_access_token_max_seconds | default(None) }}"        auth_token_max_seconds: "{{ openshift_master_auth_token_max_seconds | default(None) }}"        identity_providers: "{{ openshift_master_identity_providers | default(None) }}" @@ -76,9 +80,52 @@        disabled_features: "{{ osm_disabled_features | default(None) }}"        master_count: "{{ openshift_master_count | default(None) }}"        controller_lease_ttl: "{{ osm_controller_lease_ttl | default(None) }}" +      master_image: "{{ osm_image | default(None) }}"  - name: Install Master package    action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}-master{{ openshift_version  }} state=present" +  when: not openshift.common.is_containerized | bool + +- name: Get docker images +  command: docker images +  changed_when: false +  when: openshift.common.is_containerized | bool +  register: docker_images + +- name: Pull master image +  command: > +    docker pull {{ openshift.master.master_image }} +  when: openshift.common.is_containerized | bool and openshift.master.master_image not in docker_images.stdout +   +- name: Wait for master image +  command: > +      docker images +  register: docker_images +  until: openshift.master.master_image in docker_images.stdout +  retries: 30 +  delay: 10 +  changed_when: false +  when: openshift.common.is_containerized | bool + +- name: Install Master docker service file +  template: +    dest: "/etc/systemd/system/{{ openshift.common.service_type }}-master.service" +    src: master.docker.service.j2 +  register: install_result +  when: openshift.common.is_containerized | bool and not openshift_master_ha | bool +   +- name: Create openshift.common.data_dir +  file:  +    path: "{{ openshift.common.data_dir }}" +    state: directory +    mode: 0755 +    owner: root +    group: root +  when: openshift.common.is_containerized | bool + +- name: Reload systemd units +  command: systemctl daemon-reload +  when: openshift.common.is_containerized | bool and install_result | changed  - name: Re-gather package dependent master facts    openshift_facts: @@ -111,7 +158,8 @@  - name: Install httpd-tools if needed    action: "{{ ansible_pkg_mgr }} name=httpd-tools state=present" -  when: (item.kind == 'HTPasswdPasswordIdentityProvider') +  when: (item.kind == 'HTPasswdPasswordIdentityProvider') and +        not openshift.common.is_atomic | bool    with_items: openshift.master.identity_providers  - name: Ensure htpasswd directory exists @@ -130,16 +178,27 @@    when: item.kind == 'HTPasswdPasswordIdentityProvider'    with_items: openshift.master.identity_providers +- name: Init HA Service Info +  set_fact: +    ha_suffix: "" +    ha_svcdir: "/usr/lib/systemd/system" + +- name: Set HA Service Info for containerized installs +  set_fact: +    ha_suffix: ".docker" +    ha_svcdir: "/etc/systemd/system" +  when: openshift.common.is_containerized | bool +  # workaround for missing systemd unit files for controllers/api  - name: Create the api service file    template: -    src: atomic-openshift-master-api.service.j2 -    dest: /usr/lib/systemd/system/{{ openshift.common.service_type }}-master-api.service +    src: atomic-openshift-master-api{{ ha_suffix }}.service.j2 +    dest: "{{ ha_svcdir }}/{{ openshift.common.service_type }}-master-api.service"    when: openshift_master_ha | bool and openshift_master_cluster_method == "native"  - name: Create the controllers service file    template: -    src: atomic-openshift-master-controllers.service.j2 -    dest: /usr/lib/systemd/system/{{ openshift.common.service_type }}-master-controllers.service +    src: atomic-openshift-master-controllers{{ ha_suffix }}.service.j2 +    dest: "{{ ha_svcdir }}/{{ openshift.common.service_type }}-master-controllers.service"    when: openshift_master_ha | bool and openshift_master_cluster_method == "native"  - name: Create the api env file    template: @@ -161,7 +220,7 @@    template:      dest: "{{ openshift.master.session_secrets_file }}"      src: sessionSecretsFile.yaml.v1.j2 -    force: no +  when: openshift.master.session_auth_secrets is defined and openshift.master.session_encryption_secrets is defined    notify:    - restart master    - restart master api @@ -227,8 +286,12 @@    when: not openshift_master_ha | bool    register: start_result +- name: Stop and disable non HA master when running HA +  service: name={{ openshift.common.service_type }}-master enabled=no state=stopped +  when: openshift_master_ha | bool +  - set_fact: -    master_service_status_changed: start_result | changed +    master_service_status_changed: "{{ start_result | changed }}"    when: not openshift_master_ha | bool  - name: Start and enable master api @@ -237,7 +300,7 @@    register: start_result  - set_fact: -    master_api_service_status_changed: start_result | changed +    master_api_service_status_changed: "{{ start_result | changed }}"    when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'  - name: Start and enable master controller @@ -246,17 +309,19 @@    register: start_result  - set_fact: -    master_controllers_service_status_changed: start_result | changed +    master_controllers_service_status_changed: "{{ start_result | changed }}"    when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'  - name: Install cluster packages    action: "{{ ansible_pkg_mgr }} name=pcs state=present"    when: openshift_master_ha | bool and openshift.master.cluster_method == 'pacemaker' +    and not openshift.common.is_containerized | bool    register: install_result  - name: Start and enable cluster service    service: name=pcsd enabled=yes state=started    when: openshift_master_ha | bool and openshift.master.cluster_method == 'pacemaker' +    and not openshift.common.is_containerized | bool  - name: Set the cluster user password    shell: echo {{ openshift_master_cluster_password | quote }} | passwd --stdin hacluster @@ -264,6 +329,7 @@  - name: Lookup default group for ansible_ssh_user    command: "/usr/bin/id -g {{ ansible_ssh_user }}" +  changed_when: false    register: _ansible_ssh_user_gid  - name: Create the client config dir(s) | 
