Quero executar comandos do Amazon Linux como parte do pipeline do gitlab.
Então, tentando usar a imagem do docker como executor,amazonlinux:mais recente
Então, conectei-me ao contêiner docker e executei o comando abaixo.
yum -yq install aws-cli
Ele instalou o aws-cli
Em seguida, configurei o 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
Em seguida, executei o comando abaixo para verificar a identidade, mas obtive um erro porque aws-cli-plugin-bolt não estava lá.
aws sts get-caller-identity
Em seguida, executei python pip install para o mesmo e obtive erro de descontinuação do python 2.7 e módulo não encontrado.
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
Então mudei o python para python 3 como versão padrão usando os comandos abaixo e a referênciapágina.
amazon-linux-extras enable python3.8
yum install python3.8
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
E então instalei o parafuso usando pip3.
yum install python3-pip
pip3 install awscli-plugin-bolt
Mesmo assim, o comando abaixo ainda procura python 2 e falha.
aws sts get-caller-identity
Então, excluí aquele container e criei um novo e nesse primeiro passo, alterei a versão 3 do python como padrão.
Mas desta vez, a instalação do próprio aws-cli falhou.
bash-4.2# yum -yq install aws-cli
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
Por favor, sugira como acessar os comandos do aws cli a partir da imagem do docker amazonlinux.
Parece que está funcionando se eu mudar a imagem para
image:
name: amazon/aws-cli
entrypoint: [""]
Para que não haja necessidade de instalar o aws cli sozinho. Mas vem com 3.7 por padrão, como mudar isso como parte da imagem. E a questão principal, no gitlab a imagem acima está funcionando, com docker run não consegui usar a imagem diretamente. Apenas comandos aws individuais estão aceitando e fechando o contêiner imediatamente