--- - name: Creates RKE directory on nodes file: path: "{{ rke_node_directory }}" state: directory - name: Create RKE directory file: path: "{{ rke_directory }}" state: directory delegate_to: localhost run_once: true - name: Check if RKE cluster state file exists stat: path: "{{ rke_node_directory }}/{{ rke_cluster_name }}.rkestate" register: cluster_state_result - name: Check if RKE kubeconfig file exists stat: path: "{{ rke_node_directory }}/kube_config_{{ rke_cluster_name }}.yaml" register: kube_config_result - name: Copy RKE cluster state back to local if it already exists fetch: src: "{{ rke_node_directory }}/{{ rke_cluster_name }}.rkestate" dest: "{{ rke_directory }}/{{ rke_cluster_name }}.rkestate" when: cluster_state_result.stat.exists == True - name: Copy RKE kube config if it already exists fetch: src: "{{ rke_node_directory }}/kube_config_{{ rke_cluster_name }}.yaml" dest: "{{ rke_directory }}/kube_config_{{ rke_cluster_name }}.yaml" when: kube_config_result.stat.exists == True - name: Create RKE Configs directory file: path: "{{ rke_directory }}/configs" state: directory delegate_to: localhost run_once: true - name: Install RKE get_url: dest: "{{ rke_directory }}/rke" url: https://github.com/rancher/rke/releases/download/v{{ rke_version }}/rke_linux-amd64 delegate_to: localhost run_once: true - name: Make RKE executable file: dest: "{{ rke_directory }}/rke" mode: +x delegate_to: localhost run_once: true - name: Put RKE cluster config in place template: src: ../templates/rke-cluster-deployment.yaml.j2 dest: "{{ rke_directory }}/rke-cluster-deployment.yaml" delegate_to: localhost run_once: true - name: Put RKE configs in place template: src: ../templates/rke-configs/{{ item }}.j2 dest: "{{ rke_directory }}/configs/{{ item }}" with_items: - nfs-client-deployment.yaml - nfs-client-rbac.yaml - nfs-client-storageclass.yaml - alertmanager-pvc.yaml - alertmanager-configmap.yaml - alertmanager-deployment.yaml - alertmanager-service.yaml - kube-state-metrics-deployment.yaml - kube-state-metrics-service.yaml - kube-state-metrics-rbac.yaml - node-exporter.yaml - prometheus-configmap.yaml - prometheus-rbac.yaml - prometheus-statefulset.yaml - prometheus-service.yaml - monitoring-ingress.yaml delegate_to: localhost run_once: true - name: Run RKE shell: > bash -c "{{ rke_directory }}/rke up --config {{ rke_directory }}/rke-cluster-deployment.yaml" delegate_to: localhost run_once: true - name: Copy RKE kube config back to nodes after RKE run copy: src: "{{ rke_directory }}/kube_config_{{ rke_cluster_name }}.yaml" dest: "{{ rke_node_directory }}/kube_config_{{ rke_cluster_name }}.yaml" - name: Copy RKE cluster state back to nodes after RKE run copy: src: "{{ rke_directory }}/{{ rke_cluster_name }}.rkestate" dest: "{{ rke_node_directory }}/{{ rke_cluster_name }}.rkestate"