Я использую старую машину в качестве веб-сервера для размещения статического сайта, созданного с помощью кода (сайт обслуживает документацию HTML, JS, PDF-файлы и изображения). Старая машина вместе с ПК разработки находятся в домашней сети и подключены к одному модему.
Мы будем благодарны за общие советы, которые касаются приведенных ниже вопросов:
1. Как можно развернуть приведенный ниже сценарий bash на старый компьютер в моей сети?
2. Делать любые iptables
правила надо создать? (особенно по #3)
3. Как можно расширить сценарий в будущем для использования в производственной среде и / или разрешить доступ к сайту за пределами домашней сети?
#! /bin/bash
# deploy.sh
# Note: This script must be run as root or sudo, assumes the user
# $WEBSERVER is created, and that thttpd is installed.
DEVELOP_ENV="/home/me/www" # localhost www dir
STAGING_ENV="half_broken_server/www" # target host www dir to deploy to
WEBSERVER="thttpd" # webserver user
function usage {
printf "deploy [options...] [STAGING|DEVELOP]\n"
}
if [[ "$1" == "STAGING" ]]; then
# prompt before deploying to staging
read -p "Deploy to staging server?" -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Abort"
exit 1
fi
echo "TODO: Ask StackExchange for help with this part"
elif [[ "$1" == "DEVELOP" ]]; then
if [ -d dist ]; then
# make www directory if it does not exist
if [ ! -d `dirname $DEV_ENV` ]; then
mkdir -p $DEVELOP_ENV
fi
# copy all files to be served from dist
cp -rf dist/* $DEVELOP_ENV
fi
# grant read-only perms to local network users
chmod -R 744 $DEVELOP_ENV
# restart the thttpd webserver process (if it is running)
killall thttpd
$WEBSERVER -u $WEBSERVER -d $DEVELOP_ENV
echo "Deployment sucessful!"
else
usage
fi
Сценарий bash копирует файлы из каталога с именем dist
одному из DEVELOP
или STAGING
среды, так что в локальной сети контент будет обслуживаться из этого каталога и доступен в myuser@hostname
или просто hostname/
на /etc/host
config.
дополнительные детали
Обслуживаемые файлы полностью генерируются кодом (HTML
/CSS
/JS
) из C
, Lua
и Bash
, и Make
и постоянно меняются во время сборки
Веб-сервер thttpd, работающая на базовой установке Debian Wheezy
Предпочтительно: стандартный Unix
коммунальные услуги (например, scp
, rsync
) по сравнению с другими средами развертывания (например, Fabric
, Chef
, Vagrant
) или стандартные библиотеки с одного из упомянутых выше языков.
Веб-сервер предназначен для личной работы над проектами и не предполагается, что он будет использоваться другими