You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.4 KiB
YAML
141 lines
3.4 KiB
YAML
---
|
|
|
|
### tags:
|
|
### kube_install
|
|
### awx_config
|
|
|
|
- name: "Install pip3 for {{ inventory_hostname }}"
|
|
apt:
|
|
name: python3-pip
|
|
state: present
|
|
become: True
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Install kubernetes over pip3 for {{ inventory_hostname }}"
|
|
pip:
|
|
name: kubernetes
|
|
state: present
|
|
become: True
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Install and setup kubernetes (single node, master-only cluster) for {{ inventory_hostname }}"
|
|
include_role:
|
|
name: ansible-role-kubernetes
|
|
vars:
|
|
kubernetes_version: "{{ awx_kubernetes_version }}"
|
|
kubernetes_allow_pods_on_master: true
|
|
# kubernetes_kubelet_extra_args: "--bind-address 0.0.0.0"
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Download awx {{ awx_operator_version }} to kubernetes template for {{ inventory_hostname }}"
|
|
get_url:
|
|
url: "{{ awx_operator_url }}"
|
|
dest: /tmp/awx-operator.yaml
|
|
mode: '0664'
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Apply awx {{ awx_operator_version }} to kubernetes {{ inventory_hostname }}"
|
|
kubernetes.core.k8s:
|
|
state: present
|
|
src: /tmp/awx-operator.yaml
|
|
namespace: default
|
|
wait: yes
|
|
wait_timeout: 300
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Ensure that postgres volume directory exists for {{ inventory_hostname }}"
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: 'root'
|
|
group: 'root'
|
|
loop:
|
|
- "{{ kubernetes_awx_postgres_volume_path }}"
|
|
- "{{ kubernetes_awx_project_volume_path }}"
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Copy deployment template for {{ inventory_hostname }}"
|
|
template:
|
|
src: awx-deployment.yml.j2
|
|
dest: /tmp/awx-deployment.yml
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Create a awx k8s namespace for {{ inventory_hostname }}"
|
|
kubernetes.core.k8s:
|
|
name: "{{ kubernetes_awx_namespace }}"
|
|
api_version: v1
|
|
kind: Namespace
|
|
state: present
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Apply awx deployment for {{ inventory_hostname }}"
|
|
kubernetes.core.k8s:
|
|
state: present
|
|
src: /tmp/awx-deployment.yml
|
|
namespace: "{{ kubernetes_awx_namespace }}"
|
|
wait: yes
|
|
wait_timeout: 300
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Cleanup for {{ inventory_hostname }}"
|
|
file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
loop:
|
|
- /tmp/awx-operator.yaml
|
|
- /tmp/awx-deployment.yml
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Wait for awx service {{ inventory_hostname }}"
|
|
uri:
|
|
url: "http://{{ stage_server_ip }}:{{ kubernetes_awx_service_port }}"
|
|
status_code: 200
|
|
validate_certs: False
|
|
register: result
|
|
until: result.status == 200
|
|
retries: 60
|
|
delay: 20
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Search for all pods labeled app.kubernetes.io/name=awx {{ inventory_hostname }}"
|
|
kubernetes.core.k8s_info:
|
|
kind: Pod
|
|
namespace: "{{ kubernetes_awx_namespace }}"
|
|
label_selectors:
|
|
- app.kubernetes.io/name=awx
|
|
register: pod_list
|
|
tags:
|
|
- kube_install
|
|
|
|
- name: "Wait for awx-task db-migration {{ inventory_hostname }}"
|
|
kubernetes.core.k8s_exec:
|
|
namespace: "{{ kubernetes_awx_namespace }}"
|
|
pod: "{{ pod_list.resources[0].metadata.name }}"
|
|
container: awx-task
|
|
command: /usr/local/bin/wait-for-migrations
|
|
tags:
|
|
- kube_install
|
|
|
|
- include_tasks: awx-config.yml
|
|
vars:
|
|
awx_base_url: "http://{{ stage_server_ip }}"
|
|
awx_rest_api_access_user: "{{ awx_admin_username }}"
|
|
awx_rest_api_access_pw: "{{ awx_admin_password }}"
|
|
awx_project_path: "{{ kubernetes_awx_project_volume_path }}"
|
|
tags:
|
|
- awx_config
|