Про установку Screaming Frog SEO Spider (Лягушки) в Гугл Облаке на Debian (с Xfce) и подключение к Google Cloud из-под Винды с помощью TightVNC.
1. Преамбула
Инструкция основана на этой (сейчас страница недоступна, но когда-то была). Чтобы работать по инструкции, желателен опыт работы с командной строкой, с Линуксом.
В любой момент инструкция может местами либо полностью потерять актуальность. Либо не сработать. В таком случае – сорян, отправляю самостоятельно искать более лучшую/подходящую.
Да, по стоимости ничего не скажу – проверять самостоятельно (если что, прайсы здесь). Слишком зависит от нужд парсинга, и, соответственно, времени использования машины.
2. Аккаунт на Облаке
Здесь нужно сделать аккаунт. Понадобятся данные платёжной карты, и будет списание-возврат в районе 100 руб., если не ошибаюсь. Не знаю, работают ли сейчас виртуальные карты Ёмани (виноват, Юмани) и Киви, летом 2017-го я зарегистрировался с виртуалкой Киви.
Когда регистрировался была какая-то бонус-программа для буржуев, и тогда получилось закосить под оного (с заморскими адресом и айпи), получив ~220 фунтов на год использования (которые так и не открутил). Правда, последующие попытки аналогичных регистраций (для продления халявы) успехом не увенчались.
Вообщем, аккаунт это было целое дело. Помню, сталкивался и с тем, что на аккаунте был недоступен нормальный функционал, пока какие-то манипуляции не провести (уже и не помню, как разрешил). Вообщем, в этом деле я не помощник.
3. Проект на Облаке
После создания аккаунта. В верхнем меню:
Всплывашка:
Перейти с дашборда проекта здесь:
В поисковую строку вбить compute, в результатах поиска кликнуть здесь:
Включаем:
4. Создание виртуальной машины
Далее в меню выбираем это:
Система сразу предлагает создать виртуальную машину, соглашаемся:
В разделе Machine configuration выбираем e2-highmem-2:
Однако, вполне достаточно и первого поколения, поэтому E2 меняем на N1:
Далее, выбираем что-то подходящее из линейки highmem, например, n1-highmem-2:
Если не устраивают предустановки, можно выбрать тип машины Custom, и выставить там нужные параметры (внимание на чекбокс Extend memory):
При кастомизации рекомендую оставлять серию N1, два vCPU и отказаться от GPU, наращивать только память – Лягушка жрёт память, а прочих тех. параметров машины вполне хватает для комфортной работы.
Boot disk по умолчанию выставлен Debian GNU/Linux 10 (buster), оставляем. Но нажимаем на кнопку Change и выбираем стандартный вид диска:
Размер диска – на собственное усмотрение, учитывая, какие сайты планируется парсить (сколько места съедят проекты Лягушки). Операционная система, вместе с установленной Лягушкой занимают до 5 ГБ, вроде бы.
Проставляем чекбоксы для разрешения веб-трафика (не знаю, правда, зачем – наверное, чтобы можно было пользоваться браузером из виртуальной машины, хотя он вероятно и без этих разрешений будет работать):
На вкладке Management есть важный элемент Preemptibility:
Если выставить в положение On (включено), то цена за машину будет существенно меньше, но тогда она будет произвольно падать (якобы из-за перераспределения ресурсов) и работать максимум 24 часа до очередного падения. Я почти всегда включаю, чтобы экономить (периодически ставить скан Лягушки на паузу и сохраняться), но иногда падения машины задалбывают, и для парсинга огромных сайтов их бывает удобно избегать, чтобы не тратить время на долгие повторные открытия огромных проектов Лягушки.
5. Установка по 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
Вот так примерно выглядит процесс в терминале:
Далее:
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 &
Для чего проставить # в начале лишних строк (чтобы оставить директивы, на всякий). Вот что примерно должно получиться:
Опять 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:
Создать новое правило:
Указываем так (диапазон IP «0.0.0.0/0», порты «5900, 5901, 5902», всё без кавычек):
Нажимаем кнопку “create” (создать) внизу страницы.
В интерфейсе фаервола готовое правило выглядит так:
7. Подключение к машине
Скачиваем и устанавливаем TightVNC (только клиент, сервер не нужен).
Запускаем, вбиваем в поле Remote Host айпи (вместо XX.XXX.XXX.XXX – айпи настроенной машины) с портом:
XX.XXX.XXX.XXX::5901
IP виден в панели Compute Engine (вместо instance-2 имя машины, которое было задано):
Нажимаем connect (соединение) в окне TightVNC. Если подключение установится, то TightVNC выдаст запрос на указание пароля, указываем, подключаемся.
Визуальная оболочка Xfce при первом запуске предложит установить оформление, выбираем всё по умолчанию. Должна появиться кнопка Applications в верхней панели, в выпадашке Лягушка находится здесь:
8. Настройки Лягушки
Далее всё как на Винде – запускаем Screaming Frog, выставляем нужные настройки (в частности, память на максимум), и го парсить.
9. Что ещё полезного
Возможно рассмотрю, частично или полностью, если будет достаточный интерес к теме:
- Кратковременное усиление машины – если она не тянет сканирование Лягушкой какого-то жирного сайта, то с помощью механизма снапшотов можно сделать образ системы и накатить на новую машину с более крутыми характеристиками;
- Скачивание файлов с машины с помощью FTP-клиента WinSCP, настроив на нём SSH к Google Cloud и проведя нехитрые манипуляции в настройках Облака (либо там даже ничего не надо настраивать, не помню);
- Установка статичного IP машины, чтобы в TightVNC каждый раз не вбивать IP;
- Ограничение доступа к машине по айпи (ну тут достаточно просто) – бывает, на порты VNC ломятся какие-то черти и/или боты, из-за чего невозможно подключиться к машине (когда превышается лимит попыток подключения);
- У буржуев есть какие-то спец. скрипты, которые мне не интересны (очень врядли буду рассматривать), но тоже могут быть любопытны в разрезе темы, поэтому залинковал.