我正在使用一台旧机器作为网络服务器来托管一个静态代码生成的网站(该网站提供 HTML 文档、JS、PDF 和图像)。这台旧机器和开发 PC 都位于家庭网络上,并连接到单个调制解调器。
如果您能提供以下问题的一般建议,我们将不胜感激:
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
配置进行访问。
额外细节
所提供的文件完全由代码生成(
HTML
/CSS
/JS
)C
,Lua
并且Bash
,Make
并且在构建过程中不断变化网络服务器是thttpd,在基础安装上运行
Debian Wheezy
首选:标准
Unix
实用程序(例如scp
, ) ,rsync
而不是其他部署框架(例如Fabric
,,)或上述语言之一的标准库Chef
Vagrant
该网络服务器仅用于个人项目工作,不希望其他人使用