Google Cloud VM 启动脚本无法安装 pip3

Google Cloud VM startup script fails to install pip3

我想将启动脚本传递到我在 GCP 中的免费 f1-micro 实例 VM。我指定的命令如下:

gcloud compute instances create dora-scanner --zone=us-central1-a --machine-type=f1-micro --metadata-from-file startup-script=./startup-script-dora.sh

而且启动脚本内容很简单 - 我正在安装 pip3 来下载 Python 3 个我想使用的库。

#! /bin/bash
apt-get update

# install pip3
apt-get install python3-pip

# install requests and beautifulsoup4
pip3 install requests
pip3 install bs4

但是,当我尝试在 Python3 中加载库时,一旦我通过 ssh 进入实例,就会出现错误,表明启动脚本不起作用。所以我环顾四周,并被引导到控制台的日志,它看起来像这样:

Jun 28 00:33:54 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:33:54 GCEMetadataScripts: startup-script: Get:7 http://security.debian.org/debian-security buster/updates/main Sources [128 kB]
Jun 28 00:33:54 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:33:54 GCEMetadataScripts: startup-script: Get:8 http://security.debian.org/debian-security buster/updates/main amd64 Packages [204 kB]
Jun 28 00:33:54 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:33:54 GCEMetadataScripts: startup-script: Get:9 http://security.debian.org/debian-security buster/updates/main Translation-en [110 kB]
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script: Err:10 http://deb.debian.org/debian buster InRelease
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script:   Could not connect to prod.debian.map.fastly.net:80 (151.101.184.204), connection timed out Could not connect to deb.debian.org:80 (199.232.78.133), connection timed out
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script: Err:11 http://deb.debian.org/debian buster-updates InRelease
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script:   Unable to connect to deb.debian.org:http:
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script: Err:12 http://deb.debian.org/debian buster-backports InRelease
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script:   Unable to connect to deb.debian.org:http:
Jun 28 00:34:47 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:47 GCEMetadataScripts: startup-script: Fetched 637 kB in 1min 1s (10.5 kB/s)
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: Reading package lists...
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: W: Failed to fetch http://deb.debian.org/debian/dists/buster/InRelease  Could not connect to prod.debian.map.fastly.net:80 (151.101.184.204), connection timed out Could not connect to deb.debian.org:80 (199.232.78.133), connection timed out
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: W: Failed to fetch http://deb.debian.org/debian/dists/buster-updates/InRelease  Unable to connect to deb.debian.org:http:
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: W: Failed to fetch http://deb.debian.org/debian/dists/buster-backports/InRelease  Unable to connect to deb.debian.org:http:
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: W: Some index files failed to download. They have been ignored, or old ones used instead.
Jun 28 00:34:48 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:48 GCEMetadataScripts: startup-script: Reading package lists...
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: Building dependency tree...
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: Reading state information...
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: The following additional packages will be installed:
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-8
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   dh-python dpkg-dev fakeroot g++ g++-8 gcc gcc-8 gir1.2-glib-2.0
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libdpkg-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-8-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libgdbm-compat4 libgirepository-1.0-1 libgomp1 libisl19 libitm1
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libmpx2 libperl5.28
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libpython3-dev libpython3.7 libpython3.7-dev libquadmath0 libstdc++-8-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libtsan0 libubsan1 linux-libc-dev make manpages manpages-dev patch perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   perl-modules-5.28 python-pip-whl python3-asn1crypto python3-cffi-backend
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-crypto python3-cryptography python3-dev python3-distutils
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-entrypoints python3-gi python3-keyring python3-keyrings.alt
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-lib2to3 python3-pkg-resources python3-secretstorage
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-setuptools python3-six python3-wheel python3-xdg python3.7-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: Suggested packages:
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   binutils-doc cpp-doc gcc-8-locales debian-keyring g++-multilib
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   g++-8-multilib gcc-8-doc libstdc++6-8-dbg gcc-multilib autoconf automake
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libtool flex bison gdb gcc-doc gcc-8-multilib libgcc1-dbg libgomp1-dbg
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libitm1-dbg libatomic1-dbg libasan5-dbg liblsan0-dbg libtsan0-dbg
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libubsan1-dbg libmpx2-dbg libquadmath0-dbg glibc-doc git bzr libstdc++-8-doc
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   make-doc ed diffutils-doc perl-doc libterm-readline-gnu-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   | libterm-readline-perl-perl libb-debug-perl liblocale-codes-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python-crypto-doc python-cryptography-doc python3-cryptography-vectors
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python-secretstorage-doc python-setuptools-doc
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: The following NEW packages will be installed:
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-8
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   dh-python dpkg-dev fakeroot g++ g++-8 gcc gcc-8 gir1.2-glib-2.0
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libdpkg-perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-8-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libgdbm-compat4 libgirepository-1.0-1 libgomp1 libisl19 libitm1
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libmpx2 libperl5.28
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libpython3-dev libpython3.7 libpython3.7-dev libquadmath0 libstdc++-8-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   libtsan0 libubsan1 linux-libc-dev make manpages manpages-dev patch perl
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   perl-modules-5.28 python-pip-whl python3-asn1crypto python3-cffi-backend
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-crypto python3-cryptography python3-dev python3-distutils
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-entrypoints python3-gi python3-keyring python3-keyrings.alt
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-lib2to3 python3-pip python3-pkg-resources python3-secretstorage
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script:   python3-setuptools python3-six python3-wheel python3-xdg python3.7-dev
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: 0 upgraded, 73 newly installed, 0 to remove and 2 not upgraded.
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: Need to get 112 MB of archives.
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: After this operation, 337 MB of additional disk space will be used.
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: Do you want to continue? [Y/n] Abort.
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: /tmp/metadata-scripts972471264/startup-script: line 8: pip3: command not found
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script: /tmp/metadata-scripts972471264/startup-script: line 9: pip3: command not found
Jun 28 00:34:49 dora-scanner GCEMetadataScripts[397]: 2020/06/28 00:34:49 GCEMetadataScripts: startup-script exit status 127
  1. 我想寻求帮助,了解如何绕过 pip3 安装的 (yes/no)
  2. 为什么我会收到连接错误(无法连接到 prod.debian.map.fastly.net:80)?

这是我第一次使用 GCP,非常感谢任何指导!

如果没有 -y arg 安装任何 apt 包,它将 运行 以交互模式显示提示。

Do you want to continue? [Y/n] Abort.

在您的启动脚本命令中,安装 pip 处于交互模式,如果它没有将 y 作为输入,则它不会安装 pip 包。

# install pip3
apt-get install python3-pip

解决方案

替换开始脚本行

# install pip3
apt-get install python3-pip

# install pip3
apt-get install -y python3-pip