Облака — ещё дешевле 2. Ответ-продолжение

в 13:09, , рубрики: Песочница, метки: ,

Вдоволь наигравшись с DigitalOcean, используя информацию в статье «Облака — ещё дешевле», прежде всего хочу поблагодарить tangro за качественный материал и поделиться с сообществом своими наработками.

Содержание

Итак, допустим, что у нас есть образ и droplet на DigitalOcean.

Чтобы не изменять конфиг PPTP сервера после каждого включения

Добавим в загрузку скрипт, который будет обновлять IP адрес в файле настроек PPTP и iptables.

/etc/init.d/pptpsd

#!/bin/bash

ip=`ifconfig eth0 | grep 'inet addr' | awk {'print $2'} | sed s/.*://`

start() {

cat > /etc/network/if-pre-up.d/iptables <<END2
#!/bin/sh
ip=`ifconfig eth0 | grep 'inet addr' | awk {'print $2'} | sed s/.*://`

cat > /etc/iptables.conf <<END
# Completed on Sun Jan 25 17:08:16 2015
# Generated by iptables-save v1.4.21 on Sun Jan 25 17:08:16 2015
*nat
:PREROUTING ACCEPT [2:314]
:INPUT ACCEPT [2:314]
:OUTPUT ACCEPT [8:580]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j SNAT --to-source $ip
COMMIT
END

iptables-restore < /etc/iptables.conf
END2

	chmod +x /etc/network/if-pre-up.d/iptables
/etc/network/if-pre-up.d/iptables

        # setting up pptpd.conf
		echo "option /etc/ppp/pptpd-options" > /etc/pptpd.conf
		echo "logwtmp" >> /etc/pptpd.conf
		echo "localip $ip" >> /etc/pptpd.conf
		echo "remoteip 10.1.0.1-100" >> /etc/pptpd.conf

		/etc/init.d/pptpd restart
}

stop() {
echo "stop"
}

status() {
echo "stat"
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                start
                ;;
        status)
                status
                ;;
        *)
                echo "Usage: {start|stop|restart}"
                exit 1
                ;;
esac
exit $?

Далее сделаем скрипт исполняемым файлом и добавим в автозагрузку:

chmod +x /etc/init.d/pptpsd
sudo update-rc.d pptpsd defaults

Тут много лишнего кода, и метод, наверное, не самый лучший. Но оно работает.
Не забываем обновить image!

Решение возможных проблем при настройке PPTP на Ubuntu

Дополнительные настройки PPTP для Ubuntu

Ubuntu

Облака — ещё дешевле 2. Ответ-продолжение - 1

Решение возможных проблем при настройке PPTP на роутере

Роутер

Удалить в файле /etc/ppp/pptpd-options все строки, кроме:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

И обновить image, чтобы потом не удивляться, почему настройки не сохраняются.
В настройках роутера выбрать «PPTP/Russia-PPTP» (все производители пишут немного по своему).

Чтобы не заниматься развертыванием/удалением droplet вручную

Ставим NodeJS и клонируем вот этот репозитарий к себе.
В файле config.json пишем имя droplet, имя образа и ваш ключ API (брать тут).
После этого:

npm install
node ./index.js

Эта «поделка» создаст droplet с указанным именем из указанного image, спросив только регион из списка доступных для данного образа регионов.

В новые регионы, извините, image переносить придется самостоятельно. Тут уж только вам решать.

Если droplet с таким именем существует — он будет удален.

После того, как скрипт удалит droplet, он скорее всего ничего не напишет.
После того, как создаст droplet, скрипт, выведет IP адрес нового droplet.
Droplet начнет нормально работать (приблизительно) через 2 минуты после окончания работы скрипта.

Данным скриптом можно автоматически управлять любым droplet, созданным из любого image, нет никакой привязки именно к PPTP.


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js