AWS CLI를 Amazon Linux 2에 설치하는 스크립트가 있습니다(실제로 다양한 배포판이 있지만 저는 AL2를 사용하고 있습니다). 거의 모든 구성 요소가 설치된 것으로 보이지만 이미지를 캡처한 후 AWS 작업 공간에 배포하면 모든 구성 요소가 유지되지는 않습니다.
배포 후 모든 사용자(도메인 사용자 포함)가 모든 모듈을 사용할 수 있도록 하려면 어떻게 해야 합니까?
다음은 이 스크립트가 수행하는 작업에 대한 몇 가지 그림입니다.
다음은 도메인 사용자를 사용하여 AWS Workspaces에 이미지를 배포할 때 발생하는 오류입니다.
답변1
설치된 Python 모듈을 전역적으로 설치하려고 하지만 스크립트가 이를 수행하지 않습니다. 실제로 스크립트는 pip
스크립트를 실행하는 사용자에 대해서만 모듈을 설치하도록 명시적으로 지시합니다.
python3 -m pip install --user boto3
스크립트를 실행하거나 사용자로 root
사용하는 경우 sudo
이러한 모듈은 해당 사용자에게만 설치되며 root
시스템의 다른 사람은 액세스할 수 없습니다.
나중에 스크립트가 실행됩니다.
python3 -m pipx install aws-sso-util
pipx
내가 읽은 바에 따르면 aws-sso-util
격리된 환경에 설치되어 있습니다. 이는 최종 오류를 더 잘 설명합니다. /usr/local/bin/awssso
전 세계적으로 사용할 수 있지만 사용자용 모듈 만 설치 pipx
했습니다 . 사용자 없이 스크립트를 실행하면 스크립트 를 실행하는 사용자가 제대로 작동할 수 있습니다.boto3
root
sudo
root
awssso
전역 Python 모듈을 얻는 한 가지 방법은 사용자를 사용하여 전역 위치에 새 가상 sudo
환경을 만드는 것입니다 root
.
sudo python3 -m venv /opt/aws-venv
이 사용자 세션의 나머지 부분에 대해 환경을 활성화합니다.
source /opt/aws-venv/bin/activate
가상 환경에 필요한 패키지를 설치합니다.
sudo /opt/aws-venv/bin/pip install lxml defusedxml boto3 botocore boto inquirerpy python-dateutil ensurepath aws-sso-util
이 새로운 가상 환경은 모든 사용자가 사용할 수 있어야 하며 다음을 통해 활성화할 수 있습니다.source /opt/aws-venv/bin/activate