I'd like to pass a startup-script to my free f1-micro instance VM in GCP. The command that I'm specifying is the following:
gcloud compute instances create dora-scanner --zone=us-central1-a --machine-type=f1-micro --metadata-from-file startup-script=./startup-script-dora.sh
And the startup script contents are simple - I'm installing pip3 to download Python 3 libraries that I'd like to use.
#! /bin/bash
apt-get update
# install pip3
apt-get install python3-pip
# install requests and beautifulsoup4
pip3 install requests
pip3 install bs4
But I get an error when I try to load the library in Python3 once I ssh into the instance indicating that the startup-script did not work. So I looked around on and was directed towards the logs from the console and it looks like this:
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
This is my first time using GCP so any guidance is greatly appreciated!
When any apt package is installed without -y
arg, it will run in interactive mode with prompt.
Do you want to continue? [Y/n] Abort.
In your startup script command to install pip
is in interactive mode and if it doesn't get y
as input then it won't install pip
package.
# install pip3
apt-get install python3-pip
Solution
Replace start-script line
# install pip3
apt-get install python3-pip
with
# install pip3
apt-get install -y python3-pip