I want to run amazon linux commands as part of gitlab pipeline.
So, trying to use docker image as runner, amazonlinux:latest
So, connected to docker container and ran below command.
yum -yq install aws-cli
It installed aws-cli
Then, configured aws cli.
aws configure set region $AWS_REGION
aws configure set aws_access_key_id $AWS_ACCESS_KEY
aws configure set aws_secret_access_key $AWS_SECRET_KEY
aws configure set plugins.bolt awscli-plugin-bolt
Then ran below command to check identity, but got error as aws-cli-plugin-bolt not there.
aws sts get-caller-identity
Then ran python pip install for the same and got python 2.7 deprecation error and module not found.
pip install awscli-plugin-bolt
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip install --user` instead.
ERROR: Could not find a version that satisfies the requirement awscli-plugin-bolt (from versions: none)
ERROR: No matching distribution found for awscli-plugin-bolt
So changed the python to python 3 as default version using below commands and the reference page.
amazon-linux-extras enable python3.8
yum install python3.8
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
And then installed the bolt pluging using pip3.
yum install python3-pip
pip3 install awscli-plugin-bolt
But still, below command still looks for python 2 and failing.
aws sts get-caller-identity
So, deleted that container and created a new one and in that as first step, changed the python version 3 as default one.
But this time, yum installation of aws-cli itself failing.
bash-4.2# yum -yq install aws-cli
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
Please suggest how to access aws cli commands from the amazonlinux docker image.
It seems it is working if I change the image to
image:
name: amazon/aws-cli
entrypoint: [""]
So that no need to install aws cli on my own.
But it is coming with 3.7 by default, how to change that as part of image.
And major question, in gitlab above image is working, with docker run I wasn't able to use the image directly. Only individual aws commands it is accepting and closing the container immediately