对于以下命令:
virtualenv --system-site-packages `pwd`/.test
# load virtual environment
source `pwd`/.test/bin/activate
# install required python modules
# for some reason argparse is not included with credstash install but required at runtime :(
#PYPI_REPO=http://${PYPI_DNS}/aes/release/+simple/
#PYPI_DNS is internal company DNS
pip install pip --upgrade -i ${PYPI_REPO} --quiet
pip install argparse==1.4.0 -i ${PYPI_REPO} --trusted-host ${PYPI_DNS} --quiet
pip install credstash==1.14.0 -i ${PYPI_REPO} --trusted-host ${PYPI_DNS} --quiet
这有时是成功的。
但是有时它会在安装 argparse 时失败:
找不到满足 argparse==1.4.0 要求的版本(来自版本:)没有找到 argparse==1.4.0 的匹配分布
然后在其他时候,它将无法安装 credstash:
找不到满足要求 boto3>=1.1.1 的版本(来自 credstash==1.14.0)(来自版本:)没有找到 boto3>=1.1.1 的匹配分布(来自 credstash==1.14.0)
我找不到失败和成功的原因。
请注意,上面的命令来自一个 xxx.sh 文件,该文件作为 EC2 UserData 脚本的一部分运行 - 它在 EC2 启动期间几乎可以运行 90%。
但是,当我在 EC2 实例上进行 SSH 连接时,手动运行 xxx.sh(安装 credstash 后 sh 运行 ansible playbook - 因此手动运行是测试 playbook 的更快方法)时,它的工作时间为 10% - 错误在我上面提到的 2 条错误消息之间切换。我不是python开发人员,所以它可能是我想念的东西,如果你能指出我正确的方向吗?