Ghost install failing on Google Cloud with open failed: connect failed

Resolved: Was a Firewall issue (of course)

You can create these firewall rules in the Google Cloud Platform Console. To do this, follow these steps:

  1. Go to the Firewall Rules tab.
  2. Click the Create firewall rule button.
  3. In the Name field, enter a name for the firewall rule.
  4. In the Direction field, select Egress.
  5. In the Targets field, select the Instance tag option and enter the tag name for your Compute Engine instance.
  6. In the Source filters field, select the IP ranges option and enter the following CIDR ranges:
  • 0.0.0.0/0
  1. In the Protocols and ports field, select the TCP option and enter the following ports:
  • 2525
  • 80
  • 443
  • 22
  • 3389
  1. Click the Create button

original post below in case anyone else is stymied.

Tonight, I’ve tried installing ghost on Google cloud VMs (in two different regions.) Followed this guide: How to install & setup Ghost on Ubuntu 16.04, 18.04, 20.04 or 22.04

Keep getting network issues. I’ve had no issues downloading apt get updates, installing mysql, nginx, npm. Anyone else having network issues?

gblog:/var/www/ghost$ ghost install

:heavy_check_mark: Checking system Node.js version - found v16.20.2
:heavy_check_mark: Checking current folder permissions
:heavy_check_mark: Checking memory availability
:heavy_check_mark: Checking free space
:heavy_check_mark: Checking for latest Ghost version
:heavy_check_mark: Setting up install directory

☴ Downloading and installing Ghost v5.59.3 > Installing dependencies > [4/5] Linking dependencies…channel 3: open failed: connect failed: open failed
channel 7: open failed: connect failed: open failed
channel 6: open failed: connect failed: open failed
channel 7: open failed: connect failed: open failed

ran a trace and tried running ghost install:
gblog:/var/www/ghost$ strace -e trace=file ghost install
execve(“/usr/bin/ghost”, [“ghost”, “install”], 0x7ffc83db05b8 /* 16 vars /) = 0
access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=19599, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libc.so.6”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=2216304, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/locale-archive”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=3048928, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/share/locale/locale.alias”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=2996, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_IDENTIFICATION”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_IDENTIFICATION”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=258, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache”, O_RDONLY) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=27002, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_MEASUREMENT”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_MEASUREMENT”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=23, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_TELEPHONE”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_TELEPHONE”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=47, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_ADDRESS”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_ADDRESS”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=127, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_NAME”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_NAME”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=62, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_PAPER”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_PAPER”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=34, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_MESSAGES”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_MESSAGES”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFDIR|0755, st_size=4096, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_MESSAGES/SYS_LC_MESSAGES”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=48, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_MONETARY”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_MONETARY”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=270, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_COLLATE”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_COLLATE”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=1406, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_TIME”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_TIME”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=3360, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_NUMERIC”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_NUMERIC”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=50, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/usr/lib/locale/C.UTF-8/LC_CTYPE”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/usr/lib/locale/C.utf8/LC_CTYPE”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=353616, …}, AT_EMPTY_PATH) = 0
execve(“/home/service_account/.npm-global/bin/node”, [“node”, “/usr/bin/ghost”, “install”], 0x7ffd2e791150 /
16 vars /) = -1 ENOENT (No such file or directory)
execve(“/usr/local/sbin/node”, [“node”, “/usr/bin/ghost”, “install”], 0x7ffd2e791150 /
16 vars /) = -1 ENOENT (No such file or directory)
execve(“/usr/local/bin/node”, [“node”, “/usr/bin/ghost”, “install”], 0x7ffd2e791150 /
16 vars /) = -1 ENOENT (No such file or directory)
execve(“/usr/sbin/node”, [“node”, “/usr/bin/ghost”, “install”], 0x7ffd2e791150 /
16 vars /) = -1 ENOENT (No such file or directory)
execve(“/usr/bin/node”, [“node”, “/usr/bin/ghost”, “install”], 0x7ffd2e791150 /
16 vars */) = 0
access(“/etc/ld.so.preload”, R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/etc/ld.so.cache”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=19599, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libdl.so.2”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=14432, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libstdc++.so.6”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=2260296, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libm.so.6”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=940560, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libgcc_s.so.1”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=125488, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libpthread.so.0”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=21448, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libc.so.6”, O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=2216304, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/etc/ssl/openssl.cnf”, O_RDONLY) = 3
newfstatat(3, “”, {st_mode=S_IFREG|0644, st_size=12419, …}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, “/sys/fs/cgroup/memory/memory.limit_in_bytes”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, “/proc/meminfo”, O_RDONLY|O_CLOEXEC) = 17
readlink(“/proc/self/exe”, “/usr/bin/node”, 8191) = 13
channel 19: open failed: connect failed: open failed
channel 3: open failed: connect failed: open failed
channel 9: open failed: connect failed: open failed
channel 13: open failed: connect failed: open failed
channel 13: open failed: connect failed: open failed
channel 14: open failed: connect failed: open failed
channel 16: open failed: connect failed: open failed
channel 9: open failed: connect failed: open failed
channel 12: open failed: connect failed: open failed
channel 11: open failed: connect failed: open failed
channel 13: open failed: connect failed: open failed
channel 14: open failed: connect failed: open failed
channel 11: open failed: connect failed: open failed
channel 11: open failed: connect failed: open failed
channel 12: open failed: connect failed: open failed
channel 15: open failed: connect failed: open failed
channel 16: open failed: connect failed: open failed
channel 14: open failed: connect failed: open failed
channel 4: open failed: connect failed: open failed
channel 14: open failed: connect failed: open failed
channel 8: open failed: connect failed: open failed
channel 8: open failed: connect failed: open failed
channel 12: open failed: connect failed: open failed
channel 10: open failed: connect failed: open failed
channel 3: open failed: connect failed: open failed
channel 11: open failed: connect failed: open failed
channel 10: open failed: connect failed: open failed
channel 11: open failed: connect failed: open failed
statx(AT_FDCWD, “/usr/bin/ghost”, AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=359, …}) = 0

It turns out the firewall was setup correctly. The issue was RAM.
A free tier google cloud micro instance is not beefy enough for Ghost.
Upgrading the VM from 1GB to 2GB made the issue go away.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.