# Automated HPE Ezmeral Container Platform deployment
Usage of Ansible playbooks to deploy the HPE Ezmeral Container Platform is automated and eliminates manual intervention. Ansible playbooks provides the following functionalities for the installation user to deploy HPE Ezmeral Container Platform.
Install the controller nodes
Add gateway nodes or gateway HA
Install EPIC worker nodes
Enable controller HA
Add or remove hosts on the Kubernetes cluster
Create, update and delete Kubernetes cluster
Create and manage tenants
PREREQUISITES
Any Ansible Linux machine with Ansible 2.9.x and python 3.x.
Minimum five (5) nodes with SLES 15 SP2 (can be VMs or BareMetal) are required for HEPCP Deployment. One node for controller, one node for gateway, one master and two worker nodes.
Playbooks are used to download the tools (epicctl, kubectl, kubectl-hpecp-plugin and jq). The corresponding binary files (epicctl - kubectl - kubectl-hpecp plugin and jq) should be placed in /usr/local/bin.
Obtain the URL of the HPE Ezmeral Container Platform bundle (using s3 bucket).
Figure 14: Workflow diagram for automated HPE Ezmeral Container Platform deployment
# Automated Deployment
Update the values in vars.yml and hosts inventory file according to your environment.
Use following command to edit vars.yml file. The vars.yml file contains the configuration environment variables and host inventory includes the host ip addresses.
> cd $BASE_DIR/hcp_epicctl_deployment
> ansible-vault edit group_vars/all/vars.yml
HPECP can be deployed by running site.yml or by running individual playbooks. Each playbook description can be found further in this document.
- To build complete setup:
> ansible-playbook -i hosts site.yml --ask-vault-pass
- In case if user want to deploy through individual playbooks. Sequence of playbooks to be followed are:
> ansible-playbook -i hosts playbooks/download-tools.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/controller.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/gateway.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/epic-workers.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/controller-ha.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/k8s-hosts.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/k8s-cluster.yml --ask-vault-pass
> ansible-playbook -i hosts playbooks/k8s-tenant.yml --ask-vault-pass
# Playbooks Details:
- site.yml
This playbook contains the script to build complete setup.
- download-tools.yml
This playbook contains the script to download required tools epictl, kubectl, kubectl-hpecp plugin and jq
- controller.yml
This playbook contains the script to deploy controller and configuring the controller based on the configuration details provided in the vars.yml file.
- gateway.yml
This playbook contains the script to add gateways. User can add multiple gateways by providing ip and host information in vars.yml file and provide ip details in hosts inventory file.
- epic-workers.yml
This playbook contains the script to add epic worker nodes. Provide epic worker details in vars.yml and in hosts inventory file.
- controller-ha.yml
This playbook contains the script to enable controller ha. Users need to provide virtual ip with FQDN in vars.yml file to configure controller ha and provide ip details in hosts file. Please make sure virtual ip details present in DNS entries.
Users need to run playbooks/epic-workers.yml playbook first to add required epic worker nodes. And then run playbooks/controller-ha.yml playbook.
- k8s-hosts.yml
This playbook contains the script to add k8 nodes and Data Fabric nodes. Provide k8 nodes information in vars.yml and hosts file.
- k8s-cluster.yml
This playbook contains the script to create kubernetes compute cluster and Data Fabric cluster. Provide cluster details in vars.yml
- k8s-tenant.yml
This playbook contains the script to create tenant. Provide tenant details in vars.yml.
# Uninstall Information:
If user wants to uninstall HPE Ezmeral Container Platform and start a fresh installation, use the following playbook.
ansible-playbook -i hosts playbooks/uninstall-bds.yml --ask-vault-pass
# Other Playbooks:
- Run the following command to disable controller ha.
ansible-playbook -i hosts playbooks/disable-controller-ha.yml --ask-vault-pass
- Run the following command to delete epic workers.
ansible-playbook -i hosts playbooks/epic-workers-delete.yml --ask-vault-pass
- Run the following command to delete k8 nodes.
ansible-playbook -i hosts playbooks/k8s-delete-hosts.yml --ask-vault-pass
- Run the following command to update tenant.
ansible-playbook -i hosts playbooks/k8s-update-tenant.yml --ask-vault-pass
- Run the following command to delete the tenant.
ansible-playbook -i hosts playbooks/k8s-delete-tenant.yml --ask-vault-pass
- Run the following command to delete the cluster
ansible-playbook -i hosts playbooks/k8s-cluster-delete.yml --ask-vault-pass