ArticlesAscender

Ascender EKS Install Fails Because the AWS CLI Is Not Found

ascendereksawskubernetesinstallationtroubleshooting

Stephen Simpson
Senior Customer Support Engineer

Aug 04, 2026

Introduction

When installing Ascender on Amazon EKS using the ascender-install script, the cluster setup is driven through Ansible. Unlike a local RKE2 or K3s install, the EKS path shells out to the AWS CLI to create and query AWS resources (IAM policies, the load balancer, EBS storage). If the AWS CLI is not present where the installer expects it, the run fails partway through. This article covers that failure and its prerequisites. It applies to the ctrliq/ascender-install EKS installation path.

Problem

When installing on EKS (k8s_platform set to eks), the installer fails on the task that looks up the load balancer IAM policy:

TASK [k8s_setup : Query for AWSLoadBalancerControllerIAMPolicy policy ARN]
fatal: [ascender_host]: FAILED! => {"changed": false,
"cmd": "aws iam list-policies --query 'Policies[?PolicyName==`AWSLoadBalancerControllerIAMPolicy`].Arn' --output yaml",
"msg": "[Errno 2] No such file or directory: b'aws': b'aws'", "rc": 2}

The [Errno 2] No such file or directory: b'aws' message means Ansible could not find the aws executable when it tried to run it. Either the AWS CLI is not installed, or it is installed somewhere the installer does not look.

Symptoms

  • The install fails at TASK [k8s_setup : Query for AWSLoadBalancerControllerIAMPolicy policy ARN] with [Errno 2] No such file or directory: b'aws'.
  • aws --version returns command not found, or aws is installed but not on the installer's PATH.

Resolution

Install the AWS CLI so it is on the installer's PATH, configure credentials, then re-run the install.

First check whether the CLI is present:

aws --version

If that returns command not found, install the AWS CLI v2 following the AWS CLI Linux install instructions. The EKS install also needs the unzip package for that installer:

sudo dnf install unzip -y

The installer runs aws from PATH and prepends /usr/local/bin to it, which is where the AWS CLI v2 installer places the binary by default, so a standard install works with no extra step. If aws --version works in your shell but the install still cannot find it, the installer is running with a different PATH than your interactive shell. Put the binary in /usr/local/bin, which the installer always adds to its PATH, for example with a symlink:

sudo ln -sf "$(command -v aws)" /usr/local/bin/aws

Configure the CLI with an IAM user that has programmatic access (an access key and secret) and permission to create and manage an EKS cluster:

aws configure
aws sts get-caller-identity   # confirm the active identity

Re-run the installer from the repository root once the CLI is in place:

./setup.sh

Notes

  • EKS requires more than a local install. A local RKE2 or K3s install never touches AWS, so it does not need the AWS CLI. The EKS installer uses aws and eksctl to provision and configure cluster resources, which is why these prerequisites apply only to the EKS path. eksctl itself does not need to be installed beforehand; the installer sets it up.
  • The install host must be Enterprise Linux 9 for EKS, not EL8. Confirm with cat /etc/os-release.
  • The IAM user needs specific permissions to create the cluster and its policies (EKS, EC2, CloudFormation, IAM, and others). The full list, along with a helper playbook to apply them, is in the Ascender EKS installation guide.

Root Cause

The k8s_setup role runs aws iam list-policies to find or create the AWSLoadBalancerControllerIAMPolicy the cluster needs for external load balancers. Ansible executes aws as a command and resolves it through PATH. The installer prepends /usr/local/bin (the default AWS CLI v2 location) to PATH, so if aws is installed there, or anywhere else on PATH, the task runs. When aws is not installed, or lives in a directory that is not on PATH, the command module returns [Errno 2] No such file or directory and the play fails.

Ascender EKS installation guide
Update the Ascender Execution Environment on Kubernetes