Screaming Frog SEO Spider на Google Облаке

Техническое SEO Лягушка

Про установку Screaming Frog SEO Spider (Лягушки) в Гугл Облаке на Debian (с Xfce) и подключение к Google Cloud из-под Винды с помощью TightVNC.

1. Преамбула

Инструкция основана на этой (сейчас страница недоступна, но когда-то была). Чтобы работать по инструкции, желателен опыт работы с командной строкой, с Линуксом.

В любой момент инструкция может местами либо полностью потерять актуальность. Либо не сработать. В таком случае – сорян, отправляю самостоятельно искать более лучшую/подходящую.

Да, по стоимости ничего не скажу – проверять самостоятельно (если что, прайсы здесь). Слишком зависит от нужд парсинга, и, соответственно, времени использования машины.


2. Аккаунт на Облаке

Здесь нужно сделать аккаунт. Понадобятся данные платёжной карты, и будет списание-возврат в районе 100 руб., если не ошибаюсь. Не знаю, работают ли сейчас виртуальные карты Ёмани (виноват, Юмани) и Киви, летом 2017-го я зарегистрировался с виртуалкой Киви.

Когда регистрировался была какая-то бонус-программа для буржуев, и тогда получилось закосить под оного (с заморскими адресом и айпи), получив ~220 фунтов на год использования (которые так и не открутил). Правда, последующие попытки аналогичных регистраций (для продления халявы) успехом не увенчались.

Вообщем, аккаунт это было целое дело. Помню, сталкивался и с тем, что на аккаунте был недоступен нормальный функционал, пока какие-то манипуляции не провести (уже и не помню, как разрешил). Вообщем, в этом деле я не помощник.


3. Проект на Облаке

После создания аккаунта. В верхнем меню:

Создать новый проект на Google Cloud

Всплывашка:

Модальное окно проектов Гугол клауд

Перейти с дашборда проекта здесь:

Управление API в Гугл облаке

В поисковую строку вбить compute, в результатах поиска кликнуть здесь:

Поиск Google Compute Engine среди API

Включаем:

Включение Google Compute Engine в настройках облака

4. Создание виртуальной машины

Далее в меню выбираем это:

Переход по меню в раздел Google Compute Engine

Система сразу предлагает создать виртуальную машину, соглашаемся:

Создание новой виртуальной машины
Здесь и далее, если какие-то настройки не упоминаются, значит оставить их по умолчанию

В разделе Machine configuration выбираем e2-highmem-2:

Предустановка e2-highmem-2

Однако, вполне достаточно и первого поколения, поэтому E2 меняем на N1:

Выбор N1

Далее, выбираем что-то подходящее из линейки highmem, например, n1-highmem-2:

Презет n1-highmem-2

Если не устраивают предустановки, можно выбрать тип машины Custom, и выставить там нужные параметры (внимание на чекбокс Extend memory):

Кастомная настройка параметров виртуальной машины

При кастомизации рекомендую оставлять серию N1, два vCPU и отказаться от GPU, наращивать только память – Лягушка жрёт память, а прочих тех. параметров машины вполне хватает для комфортной работы.

Boot disk по умолчанию выставлен Debian GNU/Linux 10 (buster), оставляем. Но нажимаем на кнопку Change и выбираем стандартный вид диска:

Standard persistent disk

Размер диска – на собственное усмотрение, учитывая, какие сайты планируется парсить (сколько места съедят проекты Лягушки). Операционная система, вместе с установленной Лягушкой занимают до 5 ГБ, вроде бы.

Проставляем чекбоксы для разрешения веб-трафика (не знаю, правда, зачем – наверное, чтобы можно было пользоваться браузером из виртуальной машины, хотя он вероятно и без этих разрешений будет работать):

Разрешение веб-трафика

На вкладке Management есть важный элемент Preemptibility:

Опция Preemptibility

Если выставить в положение On (включено), то цена за машину будет существенно меньше, но тогда она будет произвольно падать (якобы из-за перераспределения ресурсов) и работать максимум 24 часа до очередного падения. Я почти всегда включаю, чтобы экономить (периодически ставить скан Лягушки на паузу и сохраняться), но иногда падения машины задалбывают, и для парсинга огромных сайтов их бывает удобно избегать, чтобы не тратить время на долгие повторные открытия огромных проектов Лягушки.


5. Установка по SSH

Все команды выполняются последовательно. Если указано несколько к ряду, то это значит, что следующая должна вбиваться в терминал только по выполнению предыдущей команды и возврата управления пользователю

Открываем консоль:

Открыть терминал SSH

После соединения появится окно терминала (консоли).

Вбиваем (подтверждая где нужно вводом y и затем enter):

sudo -s
apt-get update
apt-get -V upgrade

Это для обновления компонентов, чтобы работать на софте последних версий.


5.1. Основное

Далее:

apt-get install tightvncserver xfce4 xfce4-goodies xdg-utils software-properties-common
apt-get install autocutsel

Затем добавляем пользователя, указав (и запомнив) пароль в нужной раскладке (это придётся сделать дважды, можно разные пароли, но с одним меньше мороки):

adduser vnc
su vnc
vncpasswd
vncserver
exit

Вот так примерно выглядит процесс в терминале:

Настройка VNC через терминал

Далее:

nano /etc/init.d/vncserver

Копипастим это (для задания нужного разрешения экрана изменить 1366х768 на требуемое значение):


#!/bin/bash
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start:  $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description:  Enable service provided by daemon.
### END INIT INFO
PATH="$PATH:/usr/bin/"
export USER="vnc"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1366x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0

Далее ctrl + x для выхода, вбиваем y и потом enter для подтверждения записи и имени файла.

Затем:

nano /home/vnc/.vnc/xstartup

Приводим файл к такому рабочему виду:


#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
autocutsel -fork
startXfce4 &

Для чего проставить # в начале лишних строк (чтобы оставить директивы, на всякий). Вот что примерно должно получиться:

Содержимое скрипта автозагрузки VNC

Опять ctrl + x для выхода и сохранения изменений.

Далее:

chown -R vnc. /home/vnc/.vnc && chmod +x /home/vnc/.vnc/xstartup
sed -i 's/allowed_users.*/allowed_users=anybody/g' /etc/X11/Xwrapper.config
chmod +x /etc/init.d/vncserver

Перегружаем машину:

reboot

Окно терминала закрываем, ждём когда машина перезапустится и опять запускаем терминал, клацнув на кнопку SSH в интерфейсе Google Cloud. Далее:

sudo -s
update-rc.d vncserver defaults
service vncserver start

5.2. Браузер, шрифты, wget

Если нужен браузер (а он может понадобиться для обмена данными с машиной через Гуглдокс), то:

apt-get install firefox-esr

Затем:

apt-get install wget
wget http://ftp.ru.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8_all.deb
dpkg -i ttf-mscorefonts-installer_3.8_all.deb

На всякий:

apt-get -f install
apt-get clean

5.3. Java

На текущий момент используется инструкция отсюда, однако и сама инструкция периодически обновляется, и версия Явы повышается.

echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu focal main" | tee /etc/apt/sources.list.d/linuxuprising-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A
apt-get update

Установка Явы (вылезет окно с текстом лицензии, надо со всем согласиться и принять):

apt-get install oracle-java15-installer

Проверяем, что Ява поставилась (на экране должно показаться что-то вменяемое, свидетельствующее о наличии Java):

java -version

5.4. Установка Screaming Frog

Вместо 14.2 вбиваем нужную версию:

wget https://download.screamingfrog.co.uk/products/seo-spider/screamingfrogseospider_14.2_all.deb
dpkg -i screamingfrogseospider_14.2_all.deb

На всякий:

apt-get -f install
apt-get clean

6. Правило фаервола

Переходим в настройки firewall:

Переход в настройки фаервола для Google клауд

Создать новое правило:

Создать новое правило firewall'а

Указываем так (диапазон IP «0.0.0.0/0», порты «5900, 5901, 5902», всё без кавычек):

Настройки правила Firewall для VNC

Нажимаем кнопку “create” (создать) внизу страницы.

В интерфейсе фаервола готовое правило выглядит так:

Готовое правило для VNC

7. Подключение к машине

Скачиваем и устанавливаем TightVNC (только клиент, сервер не нужен).

Запускаем, вбиваем в поле Remote Host айпи (вместо XX.XXX.XXX.XXX – айпи настроенной машины) с портом:

XX.XXX.XXX.XXX::5901
Клиент TightVNC, подключение

IP виден в панели Compute Engine (вместо instance-2 имя машины, которое было задано):

Где посмотреть IP виртуальной машины

Нажимаем connect (соединение) в окне TightVNC. Если подключение установится, то TightVNC выдаст запрос на указание пароля, указываем, подключаемся.

Визуальная оболочка Xfce при первом запуске предложит установить оформление, выбираем всё по умолчанию. Должна появиться кнопка Applications в верхней панели, в выпадашке Лягушка находится здесь:

X desktop Xfce

8. Настройки Лягушки

Далее всё как на Винде – запускаем Screaming Frog, выставляем нужные настройки (в частности, память на максимум), и го парсить.


9. Что ещё полезного

Возможно рассмотрю, частично или полностью, если будет достаточный интерес к теме:

  • Кратковременное усиление машины – если она не тянет сканирование Лягушкой какого-то жирного сайта, то с помощью механизма снапшотов можно сделать образ системы и накатить на новую машину с более крутыми характеристиками;
  • Скачивание файлов с машины с помощью FTP-клиента WinSCP, настроив на нём SSH к Google Cloud и проведя нехитрые манипуляции в настройках Облака (либо там даже ничего не надо настраивать, не помню);
  • Установка статичного IP машины, чтобы в TightVNC каждый раз не вбивать IP;
  • Ограничение доступа к машине по айпи (ну тут достаточно просто) – бывает, на порты VNC ломятся какие-то черти и/или боты, из-за чего невозможно подключиться к машине (когда превышается лимит попыток подключения);
  • У буржуев есть какие-то спец. скрипты, которые мне не интересны (очень врядли буду рассматривать), но тоже могут быть любопытны в разрезе темы, поэтому залинковал.

Использованные картинки: 1