From 37b3fa73f6ae19e1d1df8cde353ae83c655751a1 Mon Sep 17 00:00:00 2001 From: denofiend Date: Tue, 5 Nov 2013 19:01:41 +0800 Subject: [PATCH] first commit. first commit. --- .gitattributes | 22 + .gitignore | 215 +++++++ .idea/.name | 1 + .idea/compiler.xml | 23 + .idea/copyright/profiles_settings.xml | 5 + .idea/encodings.xml | 20 + .idea/misc.xml | 8 + .idea/modules.xml | 9 + .idea/rebar.xml | 7 + .idea/scopes/scope_settings.xml | 5 + .idea/uiDesigner.xml | 125 ++++ .idea/vcs.xml | 8 + .idea/workspace.xml | 794 ++++++++++++++++++++++++++ README.md | 1 + deploy.iml | 18 + makefile | 35 ++ rebar | Bin 0 -> 152135 bytes rebar.cmd | 4 + rebar.config | 5 + rebuild.sh | 9 + rel/files/app.config | 36 ++ rel/files/deploy | 155 +++++ rel/files/env.sh | 229 ++++++++ rel/files/erl | 34 ++ rel/files/nodetool | 138 +++++ rel/files/vm.args | 29 + rel/reltool.config | 35 ++ rel/vars.config | 31 + src/deploy.app.src | 20 + src/deploy.erl | 255 +++++++++ src/deploy_sup.erl | 64 +++ 31 files changed, 2340 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/rebar.xml create mode 100644 .idea/scopes/scope_settings.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 README.md create mode 100644 deploy.iml create mode 100644 makefile create mode 100644 rebar create mode 100644 rebar.cmd create mode 100644 rebar.config create mode 100644 rebuild.sh create mode 100644 rel/files/app.config create mode 100644 rel/files/deploy create mode 100644 rel/files/env.sh create mode 100644 rel/files/erl create mode 100644 rel/files/nodetool create mode 100644 rel/files/vm.args create mode 100644 rel/reltool.config create mode 100644 rel/vars.config create mode 100644 src/deploy.app.src create mode 100644 src/deploy.erl create mode 100644 src/deploy_sup.erl diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..3c6742f --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +deploy \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..217af47 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..3572571 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..22a5539 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..926bdd3 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f756e81 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.idea/rebar.xml b/.idea/rebar.xml new file mode 100644 index 0000000..c5a2371 --- /dev/null +++ b/.idea/rebar.xml @@ -0,0 +1,7 @@ + + + + C:\Users\zhaoxu-b\Documents\GitHub\deploy\rebar.cmd + + + diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..3b00020 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..9d32e50 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..dc9b534 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,794 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Abstraction issues + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + + + 1383121281756 + 1383121281756 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Erlang (deploy)|Erlang + + + + + + + + + + + + + + + Erlang R15B03 + + + + + + + + deploy + + + + + + + + 1.6 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..b695be8 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Hot Upgrade Erlang Clusters, scp directory, file to clusters.( all in config file) \ No newline at end of file diff --git a/deploy.iml b/deploy.iml new file mode 100644 index 0000000..ef121a4 --- /dev/null +++ b/deploy.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/makefile b/makefile new file mode 100644 index 0000000..4ea3be7 --- /dev/null +++ b/makefile @@ -0,0 +1,35 @@ +.PHONY: rel deps + +PREFIX:=../ +DEST:=$(PREFIX)$(PROJECT) + +REBAR=./rebar + +all: + @$(REBAR) get-deps compile + +edoc: + @$(REBAR) doc + +test: + @rm -rf .eunit + @mkdir -p .eunit + @$(REBAR) skip_deps=true eunit + +rel: + @$(REBAR) generate +clean: + @$(REBAR) clean +clean_rel: + @rm -rf rel/deploy + +clean_all: + @$(REBAR) clean + @rm -rf rel/deploy + +build_plt: + @$(REBAR) build-plt + +dialyzer: + @$(REBAR) dialyze + diff --git a/rebar b/rebar new file mode 100644 index 0000000000000000000000000000000000000000..49cb508d024a1f13cf220e1f75f6f2a470be9751 GIT binary patch literal 152135 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∾yY`c5Jm?~Qd$1orxlnyK*-VeL+wI@1>+nvL_ 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�CuJXIHR9E zyZeL(T!-*KO}f32os*fpk&d&2^`kcDE41VF8fcQ*0rLeKg8xcR<&WSTOpPop9|gr$ zy2%FsEpR(fpuc93s`@dIlfI#u{o{=}H8Q?*KcKCCKwH16ey9Es)W2QW#~aIsm-XJ~ z@MQQA*uVR1A5;CqJCyEGIZKbB{&Si;W= zz<~X|&;C!Z0A0BMN~Zt5@~=LB9;)zfR~|4n;Cl~`Rk(jU_J3dgPo%rSL(Ibv`Fjj9 z{6Avf%kUozFn)XpdKi~|4_ZU`J?LNdL)ycr>U)|a;{VY8E5`aE=V3VEJ*N%jx18Sz z^)MXp9wvwSKd}2iyMKZMABy%cQ16}wf%XU5?}U38Tz8L4{R8gbP`ii1Jq&2Or@5j3 zUO1h9!rLCw9tLvV(}pm9L;EMJ>mli3Fws3J7V8hB-zn{3SkOHV2m3d;e}aS_3idGC z=bjYyC(`c(dl;v4k0ZhPy&1 + ;; + + stop) + # Wait for the node to completely stop... + case `uname -s` in + Linux|Darwin|FreeBSD|DragonFly|NetBSD|OpenBSD) + # PID COMMAND + PID=`ps ax -o pid= -o command=|\ + grep "$RUNNER_BASE_DIR/.*/[b]eam"|awk '{print $1}'` + ;; + SunOS) + # PID COMMAND + PID=`ps -ef -o pid= -o args=|\ + grep "$RUNNER_BASE_DIR/.*/[b]eam"|awk '{print $1}'` + ;; + CYGWIN*) + # UID PID PPID TTY STIME COMMAND + PID=`ps -efW|grep "$RUNNER_BASE_DIR/.*/[b]eam"|awk '{print $2}'` + ;; + esac + $NODETOOL stop + while `kill -0 $PID 2>/dev/null`; + do + sleep 1 + done + ;; + + restart) + ## Restart the VM without exiting the process + $NODETOOL restart + ;; + + reboot) + ## Restart the VM completely (uses heart to restart it) + $NODETOOL reboot + ;; + + ping) + ## See if the VM is alive + $NODETOOL ping + ;; + + attach) + # Make sure a node IS running + RES=`$NODETOOL ping` + if [ "$RES" != "pong" ]; then + echo "Node is not running!" + exit 1 + fi + + shift + $ERTS_PATH/to_erl $PIPE_DIR + ;; + + console|console_clean) + # .boot file typically just $SCRIPT (ie, the app name) + # however, for debugging, sometimes start_clean.boot is useful: + case "$1" in + console) BOOTFILE=$SCRIPT ;; + console_clean) BOOTFILE=start_clean ;; + esac + # Setup beam-required vars + ROOTDIR=$RUNNER_BASE_DIR + BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin + EMU=beam + PROGNAME=`echo $0 | sed 's/.*\\///'` + CMD="$BINDIR/erlexec -boot $RUNNER_BASE_DIR/releases/$APP_VSN/$BOOTFILE -embedded -config $RUNNER_ETC_DIR/app.config -args_file $RUNNER_ETC_DIR/vm.args -- ${1+"$@"}" + export EMU + export ROOTDIR + export BINDIR + export PROGNAME + + # Dump environment info for logging purposes + echo "Exec: $CMD" + echo "Root: $ROOTDIR" + + # Log the startup + logger -t "$SCRIPT[$$]" "Starting up" + + # Start the VM + exec $CMD + ;; + + *) + echo "Usage: $SCRIPT {start|stop|restart|reboot|ping|console|attach}" + exit 1 + ;; +esac + +exit 0 diff --git a/rel/files/env.sh b/rel/files/env.sh new file mode 100644 index 0000000..28a6799 --- /dev/null +++ b/rel/files/env.sh @@ -0,0 +1,229 @@ +#!/bin/sh +# -*- tab-width:4;indent-tabs-mode:nil -*- +# ex: ts=4 sw=4 et + +# installed by node_package (github.com/basho/node_package) + +# /bin/sh on Solaris is not a POSIX compatible shell, but /usr/bin/ksh is. +if [ `uname -s` = 'SunOS' -a "${POSIX_SHELL}" != "true" ]; then + POSIX_SHELL="true" + export POSIX_SHELL + # To support 'whoami' add /usr/ucb to path + PATH=/usr/ucb:$PATH + export PATH + exec /usr/bin/ksh $0 "$@" +fi +unset POSIX_SHELL # clear it so if we invoke other scripts, they run as ksh as well + +RUNNER_SCRIPT_DIR={{runner_script_dir}} +RUNNER_SCRIPT=${0##*/} + +RUNNER_BASE_DIR={{runner_base_dir}} +RUNNER_ETC_DIR={{runner_etc_dir}} +RUNNER_LOG_DIR={{runner_log_dir}} +RUNNER_LIB_DIR={{runner_lib_dir}} +RUNNER_PATCH_DIR={{runner_patch_dir}} +PIPE_DIR={{pipe_dir}} +RUNNER_USER={{runner_user}} +APP_VERSION={{app_version}} + +# Variables needed to support creation of .pid files +# PID directory and pid file name of this app +# ex: /var/run/riak & /var/run/riak/riak.pid +RUN_DIR="/var/run" # for now hard coded unless we find a platform that differs +PID_DIR=$RUN_DIR/$RUNNER_SCRIPT +PID_FILE=$PID_DIR/$RUNNER_SCRIPT.pid + +# Threshold where users will be warned of low ulimit file settings +# default it if it is not set +ULIMIT_WARN={{runner_ulimit_warn}} +if [ -z "$ULIMIT_WARN" ]; then + ULIMIT_WARN=4096 +fi + +# Registered process to wait for to consider start a success +WAIT_FOR_PROCESS={{runner_wait_process}} + +WHOAMI=$(whoami) + +# Echo to stderr on errors +echoerr() { echo "$@" 1>&2; } + +# Extract the target node name from node.args +NAME_ARG=`egrep '^\-s?name' $RUNNER_ETC_DIR/vm.args` +if [ -z "$NAME_ARG" ]; then + echoerr "vm.args needs to have either -name or -sname parameter." + exit 1 +fi + +# Learn how to specify node name for connection from remote nodes +echo "$NAME_ARG" | grep '^-sname' > /dev/null 2>&1 +if [ "X$?" = "X0" ]; then + NAME_PARAM="-sname" + NAME_HOST="" +else + NAME_PARAM="-name" + echo "$NAME_ARG" | grep '@.*' > /dev/null 2>&1 + if [ "X$?" = "X0" ]; then + NAME_HOST=`echo "${NAME_ARG}" | sed -e 's/.*\(@.*\)$/\1/'` + else + NAME_HOST="" + fi +fi + +# Extract the target cookie +COOKIE_ARG=`grep '^\-setcookie' $RUNNER_ETC_DIR/vm.args` +if [ -z "$COOKIE_ARG" ]; then + echoerr "vm.args needs to have a -setcookie parameter." + exit 1 +fi + +# Parse out release and erts info +START_ERL=`cat $RUNNER_BASE_DIR/releases/start_erl.data` +ERTS_VSN=${START_ERL% *} +APP_VSN=${START_ERL#* } + +# Add ERTS bin dir to our path +ERTS_PATH=$RUNNER_BASE_DIR/erts-$ERTS_VSN/bin + +# Setup command to control the node +NODETOOL="$ERTS_PATH/escript $ERTS_PATH/nodetool $NAME_ARG $COOKIE_ARG" +NODETOOL_LITE="$ERTS_PATH/escript $ERTS_PATH/nodetool" + +# Ping node without stealing stdin +ping_node() { + $NODETOOL ping < /dev/null +} + +# Attempts to create a pid directory like /var/run/APPNAME and then +# changes the permissions on that directory so the $RUNNER_USER can +# read/write/delete .pid files during startup/shutdown +create_pid_dir() { + # Validate RUNNER_USER is set and they have permissions to write to /var/run + # Don't continue if we've already sudo'd to RUNNER_USER + if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then + if [ -w $RUN_DIR ]; then + mkdir -p $PID_DIR + ES=$? + if [ "$ES" -ne 0 ]; then + return 1 + else + # Change permissions on $PID_DIR + chown $RUNNER_USER $PID_DIR + ES=$? + if [ "$ES" -ne 0 ]; then + return 1 + else + return 0 + fi + fi + else + # If we don't have permissions, fail + return 1 + fi + fi + + # If RUNNER_USER is not set this is probably a test setup (devrel) and does + # not need a .pid file, so do not return error + return 0 +} + +# Attempt to create a pid file for the process +# This function assumes the process is already up and running and can +# respond to a getpid call. It also assumes that two processes +# with the same name will not be run on the machine +# Do not print any error messages as failure to create a pid file because +# pid files are strictly optional +# This function should really only be called in a "start" function +# you have been warned +create_pid_file() { + # Validate a pid directory even exists + if [ -w $PID_DIR ]; then + # Grab the proper pid from getpid + get_pid + ES=$? + if [ "$ES" -ne 0 ]; then + return $ES + else + # Remove pid file if it already exists since we do not + # plan for multiple identical runners on a single machine + rm -f $PID_FILE + echo $PID > $PID_FILE + return 0 + fi + else + return 1 + fi +} + +# Function to su into correct user +check_user() { + # Validate that the user running the script is the owner of the + # RUN_DIR. + if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then + type sudo > /dev/null 2>&1 + if [ "$?" -ne 0 ]; then + echoerr "sudo doesn't appear to be installed and your EUID isn't $RUNNER_USER" 1>&2 + exit 1 + fi + exec sudo -H -u $RUNNER_USER -i $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT $@ + fi +} + +# Function to validate the node is down +node_down_check() { + MUTE=`ping_node 2> /dev/null` + if [ "$?" -eq 0 ]; then + echoerr "Node is already running!" + exit 1 + fi +} + +# Function to validate the node is up +node_up_check() { + MUTE=`ping_node 2> /dev/null` + if [ "$?" -ne 0 ]; then + echoerr "Node is not running!" + exit 1 + fi +} + +# Function to check if the config file is valid +check_config() { + MUTE=`$NODETOOL_LITE chkconfig $RUNNER_ETC_DIR/app.config` + if [ "$?" -ne 0 ]; then + echoerr "Error reading $RUNNER_ETC_DIR/app.config" + exit 1 + fi + echo "config is OK" +} + +# Function to check if ulimit is properly set +check_ulimit() { + + # don't fail if this is unset + if [ ! -z "$ULIMIT_WARN" ]; then + ULIMIT_F=`ulimit -n` + if [ "$ULIMIT_F" -lt $ULIMIT_WARN ]; then + echo "!!!!" + echo "!!!! WARNING: ulimit -n is ${ULIMIT_F}; ${ULIMIT_WARN} is the recommended minimum." + echo "!!!!" + fi + fi +} + +# Set the PID global variable, return 1 on error +get_pid() { + PID=`$NODETOOL getpid < /dev/null` + if [ "$?" -ne 0 ]; then + echo "Node is not running!" + return 1 + fi + + # don't allow empty or init pid's + if [ -z $PID ] || [ "$PID" -le 1 ]; then + return 1 + fi + + return 0 +} diff --git a/rel/files/erl b/rel/files/erl new file mode 100644 index 0000000..e500626 --- /dev/null +++ b/rel/files/erl @@ -0,0 +1,34 @@ +#!/bin/bash + +## This script replaces the default "erl" in erts-VSN/bin. This is necessary +## as escript depends on erl and in turn, erl depends on having access to a +## bootscript (start.boot). Note that this script is ONLY invoked as a side-effect +## of running escript -- the embedded node bypasses erl and uses erlexec directly +## (as it should). +## +## Note that this script makes the assumption that there is a start_clean.boot +## file available in $ROOTDIR/release/VSN. + +# Determine the abspath of where this script is executing from. +ERTS_BIN_DIR=$(cd ${0%/*} && pwd) + +# Now determine the root directory -- this script runs from erts-VSN/bin, +# so we simply need to strip off two dirs from the end of the ERTS_BIN_DIR +# path. +ROOTDIR=${ERTS_BIN_DIR%/*/*} + +# Parse out release and erts info +START_ERL=`cat $ROOTDIR/releases/start_erl.data` +ERTS_VSN=${START_ERL% *} +APP_VSN=${START_ERL#* } + +BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin +EMU=beam +PROGNAME=`echo $0 | sed 's/.*\\///'` +CMD="$BINDIR/erlexec" +export EMU +export ROOTDIR +export BINDIR +export PROGNAME + +exec $CMD -boot $ROOTDIR/releases/$APP_VSN/start_clean ${1+"$@"} \ No newline at end of file diff --git a/rel/files/nodetool b/rel/files/nodetool new file mode 100644 index 0000000..eb08fa4 --- /dev/null +++ b/rel/files/nodetool @@ -0,0 +1,138 @@ +%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- +%% ex: ft=erlang ts=4 sw=4 et +%% ------------------------------------------------------------------- +%% +%% nodetool: Helper Script for interacting with live nodes +%% +%% ------------------------------------------------------------------- + +main(Args) -> + ok = start_epmd(), + %% Extract the args + {RestArgs, TargetNode} = process_args(Args, [], undefined), + + %% See if the node is currently running -- if it's not, we'll bail + case {net_kernel:hidden_connect_node(TargetNode), net_adm:ping(TargetNode)} of + {true, pong} -> + ok; + {_, pang} -> + io:format("Node ~p not responding to pings.\n", [TargetNode]), + halt(1) + end, + + case RestArgs of + ["ping"] -> + %% If we got this far, the node already responsed to a ping, so just dump + %% a "pong" + io:format("pong\n"); + ["stop"] -> + io:format("~p\n", [rpc:call(TargetNode, init, stop, [], 60000)]); + ["restart"] -> + io:format("~p\n", [rpc:call(TargetNode, init, restart, [], 60000)]); + ["reboot"] -> + io:format("~p\n", [rpc:call(TargetNode, init, reboot, [], 60000)]); + ["rpc", Module, Function | RpcArgs] -> + case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), + [RpcArgs], 60000) of + ok -> + ok; + {badrpc, Reason} -> + io:format("RPC to ~p failed: ~p\n", [TargetNode, Reason]), + halt(1); + _ -> + halt(1) + end; + ["rpcterms", Module, Function, ArgsAsString] -> + case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), + consult(ArgsAsString), 60000) of + {badrpc, Reason} -> + io:format("RPC to ~p failed: ~p\n", [TargetNode, Reason]), + halt(1); + Other -> + io:format("~p\n", [Other]) + end; + Other -> + io:format("Other: ~p\n", [Other]), + io:format("Usage: nodetool {ping|stop|restart|reboot}\n") + end, + net_kernel:stop(). + +process_args([], Acc, TargetNode) -> + {lists:reverse(Acc), TargetNode}; +process_args(["-setcookie", Cookie | Rest], Acc, TargetNode) -> + erlang:set_cookie(node(), list_to_atom(Cookie)), + process_args(Rest, Acc, TargetNode); +process_args(["-name", TargetName | Rest], Acc, _) -> + ThisNode = append_node_suffix(TargetName, "_maint_"), + {ok, _} = net_kernel:start([ThisNode, longnames]), + process_args(Rest, Acc, nodename(TargetName)); +process_args(["-sname", TargetName | Rest], Acc, _) -> + ThisNode = append_node_suffix(TargetName, "_maint_"), + {ok, _} = net_kernel:start([ThisNode, shortnames]), + process_args(Rest, Acc, nodename(TargetName)); +process_args([Arg | Rest], Acc, Opts) -> + process_args(Rest, [Arg | Acc], Opts). + + +start_epmd() -> + [] = os:cmd(epmd_path() ++ " -daemon"), + ok. + +epmd_path() -> + ErtsBinDir = filename:dirname(escript:script_name()), + Name = "epmd", + case os:find_executable(Name, ErtsBinDir) of + false -> + case os:find_executable(Name) of + false -> + io:format("Could not find epmd.~n"), + halt(1); + GlobalEpmd -> + GlobalEpmd + end; + Epmd -> + Epmd + end. + + +nodename(Name) -> + case string:tokens(Name, "@") of + [_Node, _Host] -> + list_to_atom(Name); + [Node] -> + [_, Host] = string:tokens(atom_to_list(node()), "@"), + list_to_atom(lists:concat([Node, "@", Host])) + end. + +append_node_suffix(Name, Suffix) -> + case string:tokens(Name, "@") of + [Node, Host] -> + list_to_atom(lists:concat([Node, Suffix, os:getpid(), "@", Host])); + [Node] -> + list_to_atom(lists:concat([Node, Suffix, os:getpid()])) + end. + + +%% +%% Given a string or binary, parse it into a list of terms, ala file:consult/0 +%% +consult(Str) when is_list(Str) -> + consult([], Str, []); +consult(Bin) when is_binary(Bin)-> + consult([], binary_to_list(Bin), []). + +consult(Cont, Str, Acc) -> + case erl_scan:tokens(Cont, Str, 0) of + {done, Result, Remaining} -> + case Result of + {ok, Tokens, _} -> + {ok, Term} = erl_parse:parse_term(Tokens), + consult([], Remaining, [Term | Acc]); + {eof, _Other} -> + lists:reverse(Acc); + {error, Info, _} -> + {error, Info} + end; + {more, Cont1} -> + consult(Cont1, eof, Acc) + end. diff --git a/rel/files/vm.args b/rel/files/vm.args new file mode 100644 index 0000000..c3f7193 --- /dev/null +++ b/rel/files/vm.args @@ -0,0 +1,29 @@ + +## Name of the node +-name deploy@127.0.0.1 + +## Cookie for distributed erlang +-setcookie cookie_deploy_2013_by_denofiend + +## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive +## (Disabled by default..use with caution!) +##-heart + +## Enable kernel poll and a few async threads ++K true + ++A 64 + ++P 250000 + ++zdbbl 32768 + ++S 12:12 +## Increase number of concurrent ports/sockets +-env ERL_MAX_PORTS 64000 +-env ERL_MAX_ETS_TABLES 256000 + +## Tweak GC to run more often +-env ERL_FULLSWEEP_AFTER 0 + +-env ERL_CRASH_DUMP_SECONDS 15 diff --git a/rel/reltool.config b/rel/reltool.config new file mode 100644 index 0000000..0a1e19a --- /dev/null +++ b/rel/reltool.config @@ -0,0 +1,35 @@ +{sys, [ + {lib_dirs, ["../../"]}, + {rel, "deploy", "1.0.0", + [ + %% deps system application + kernel, + stdlib, + deploy + ]}, + {app_file, strip}, + {rel, "start_clean", "", + [ + kernel, + stdlib + ]}, + {boot_rel, "deploy"}, + {profile, embedded}, + {excl_archive_filters, [".*"]}, %% Do not archive built libs + {excl_sys_filters, ["^bin/.*", + "^erts.*/bin/(dialyzer|typer)"]}, + {app, deploy, [{incl_cond, include}]} +]}. + +{target_dir, "deploy"}. + +{overlay_vars, "vars.config"}. + +{overlay, [ + {copy, "files/erl", "{{erts_vsn}}/bin/erl"}, + {copy, "files/nodetool", "{{erts_vsn}}/bin/nodetool"}, + {copy, "files/deploy", "bin/deploy"}, + {copy, "files/app.config", "etc/app.config"}, + {copy, "files/vm.args", "etc/vm.args"}, + {template, "files/env.sh", "lib/env.sh"} +]}. diff --git a/rel/vars.config b/rel/vars.config new file mode 100644 index 0000000..62cc56d --- /dev/null +++ b/rel/vars.config @@ -0,0 +1,31 @@ +%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- +%% ex: ft=erlang ts=4 sw=4 et + +%% Platform-specific installation paths +{platform_bin_dir, "./bin"}. +{platform_data_dir, "./data"}. +{platform_etc_dir, "./etc"}. +{platform_lib_dir, "./lib"}. +{platform_log_dir, "./log"}. + +%% +%% etc/app.config +%% +{ring_state_dir, "{{platform_data_dir}}/ring"}. +{bitcask_data_root, "{{platform_data_dir}}/bitcask"}. +{leveldb_data_root, "{{platform_data_dir}}/leveldb"}. +{sasl_error_log, "{{platform_log_dir}}/sasl-error.log"}. +{sasl_log_dir, "{{platform_log_dir}}/sasl"}. + + +%% +%% bin/riak +%% +{runner_script_dir, "$(cd ${0%/*} && pwd)"}. +{runner_base_dir, "{{runner_script_dir}}/.."}. +{runner_etc_dir, "$RUNNER_BASE_DIR/etc"}. +{runner_log_dir, "$RUNNER_BASE_DIR/log"}. +{runner_lib_dir, "$RUNNER_BASE_DIR/lib"}. +{runner_patch_dir, "$RUNNER_BASE_DIR/lib/basho-patches"}. +{pipe_dir, "/tmp/$RUNNER_BASE_DIR/"}. +{runner_user, ""}. diff --git a/src/deploy.app.src b/src/deploy.app.src new file mode 100644 index 0000000..3886f4d --- /dev/null +++ b/src/deploy.app.src @@ -0,0 +1,20 @@ +%%%------------------------------------------------------------------- +%%% @author zhaoxu-b +%%% @copyright (C) 2013, +%%% @doc +%%% +%%% @end +%%% Created : 31. 十月 2013 上午10:31 +%%%------------------------------------------------------------------- +{application, deploy, [ + {description, ""}, + {vsn, "1.0.0"}, + {registered, []}, + {applications, [ + kernel, + stdlib + ]}, + {mod, {deploy, []}}, + {env, [ + ]} +]}. diff --git a/src/deploy.erl b/src/deploy.erl new file mode 100644 index 0000000..b2fe178 --- /dev/null +++ b/src/deploy.erl @@ -0,0 +1,255 @@ +%%%------------------------------------------------------------------- +%%% @author zhaoxu-b +%%% @copyright (C) 2013, +%%% @doc +%%% +%%% @end +%%% Created : 30. 十月 2013 下午4:21 +%%%------------------------------------------------------------------- +-module(deploy). +-author("zhaoxu-b"). + +-behaviour(application). + +-export([ + start/2, + stop/1, deploy_file/2, restart_server/1, deploy_dir/2, hot_upgrade/2 +]). + + +-record(app_config, { + server_list, + app_dir, + restart_command, + cookie, + nodes +}). + +%% -------------------------------------------------------------------- +%% Function: start_ssh_config/0 +%% Description: start ct_run, ct_config, ct_util +%% Returns: {reply, Reply, State} | +%% {reply, Reply, State, Timeout} | +%% {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, Reply, State} | (terminate/2 is called) +%% {stop, Reason, State} (terminate/2 is called) +%% -------------------------------------------------------------------- +start_ssh_config() -> + io:format("start_ssh_config"), + ct_run:install([]), + ct_config:start(interactive), + ct_util:start(), + + Configs = case application:get_env(deploy, apps) of + {ok, AppConfigs} -> + AppConfigs; + _ -> + [] + end, + io:format("Configs:~p~n", [Configs]), + + lists:foreach( + fun(Conf) -> + io:format("Conf:~p~n", [Conf]), + {_App, #app_config{server_list = ServerList}} = Conf, + lists:foreach( + fun(OneConfig) -> + io:format("Name:~p, OneConfig:~p~n", ['_UNDEF', [OneConfig]]), + ct_config:set_default_config('_UNDEF', [OneConfig], undefined) + end, ServerList) + end, Configs). + + +start(_Type, []) -> + start_ssh_config(), + deploy_sup:start_link(). + +%% @spec stop(State::term()) -> any() +%% +%% @doc This is callback after application shut down. +%% @private +stop(State) -> + ct_util:stop(State), + ok. + + +%% -------------------------------------------------------------------- +%% Function: get_config/1 +%% Description: get app config from application env. +%% Returns: {ok, Config} +%% -------------------------------------------------------------------- +get_config(App) -> + case application:get_env(deploy, apps) of + {ok, Configs} -> + case lists:keyfind(App, 1, Configs) of + false -> + {error, lists:connect([App, " is undefined"])}; + Config -> + {ok, Config} + end; + _ -> + {error, "apps is undfined"} + end. + +%% -------------------------------------------------------------------- +%% Function: send_dir/4 +%% Description: scp directory. +%% Returns: ok +%% -------------------------------------------------------------------- +send_dir(_AppDir, _CH, _Dir, []) -> + ok; + +send_dir(AppDir, CH, Dir, [File | T]) -> + FullName = filename:join([Dir, File]), + case filelib:is_file(FullName) of + true -> + %% sync file to server + {ok, FileData} = file:read_file(FullName), + ct_ssh:write_file(CH, lists:concat([AppDir, filename:basename(FullName)]), FileData); + false -> + send_dir(AppDir, CH, FullName, file:list_dir(FullName)) + end, + send_dir(AppDir, CH, Dir, T). + +%% -------------------------------------------------------------------- +%% Function:deploy_dir/2 +%% Description: deploy directory to remote servers for app. +%% Returns: ok +%% -------------------------------------------------------------------- +deploy_dir(App, Dir) -> + io:format("deploy dir ~p servers, Directory:~p~n", [App, Dir]), + + try + case get_config(App) of + {ok, {App, Config}} -> + #app_config{server_list = ServerList, app_dir = AppDir} = Config, + {ok, FileNames} = file:list_dir(Dir), + + lists:foreach( + fun(ServerConfig) -> + case ServerConfig of + {Name, _} -> + {ok, CH} = ct_ssh:connect(Name, ssh), + + send_dir(AppDir, CH, Dir, FileNames), + + ct_ssh:disconnect(CH); + _ -> + throw({error, "ssh config error"}) + end + end, ServerList), + ok; + _ -> + io:format("~p is undefined App in deploy.app file.~n", [App]), + throw({error, "app is undefined"}) + end + catch + Any -> + Any + end. + +%% -------------------------------------------------------------------- +%% Function:deploy_file/2 +%% Description: deploy file to remote servers for app. +%% Returns: ok +%% -------------------------------------------------------------------- +deploy_file(App, File) -> + io:format("deploy file ~p servers, file:~p~n", [App, File]), + try + case get_config(App) of + {ok, {App, Config}} -> + #app_config{server_list = ServerConfigList, app_dir = AppDir} = Config, + %% sync file to server + case file:read_file(File) of + {ok, FileData} -> + lists:foreach( + fun(ServerConfig) -> + case ServerConfig of + {Name, _} -> + %%io:format("Name:~p, AppDir:~p, RemoteRelPath:~p~n", [Name, AppDir, lists:concat([AppDir, filename:basename(File)])]), + {ok, CH} = ct_ssh:connect(Name, sftp), + ct_ssh:write_file(CH, lists:concat([AppDir, filename:basename(File)]), FileData), + ct_ssh:disconnect(CH); + _ -> + throw({error, "ssh config error"}) + end + end, ServerConfigList); + _ -> + throw({error, "file is not exists."}) + end, + ok; + Error -> + io:format("err:~p.~n", [Error]), + Error + end + catch + Any -> + Any + end. + +%% -------------------------------------------------------------------- +%% Function:restart_server/1 +%% Description: restart all servers of App. +%% Returns: ok +%% -------------------------------------------------------------------- +restart_server(App) -> + io:format("restart ~p servers~n", [App]), + try + case get_config(App) of + {ok, {App, Config}} -> + #app_config{server_list = ServerList, restart_command = RestartCommand} = Config, + lists:foreach( + fun(ServerConfig) -> + case ServerConfig of + {Name, _} -> + {ok, CH1} = ct_ssh:connect(Name, ssh), + ct_ssh:exec(CH1, RestartCommand), + ct_ssh:disconnect(CH1); + _ -> + throw({error, "ssh config error"}) + end + end, ServerList), + ok; + Error -> + io:format("err:~p.~n", [Error]), + Error + end + catch + Any -> + Any + end. + +%% -------------------------------------------------------------------- +%% Function:hot_upgrade/2 +%% Description: hot upgrade one Module in all servers of App. +%% Returns: ok +%% -------------------------------------------------------------------- +hot_upgrade(App, Module) -> + io:format("hot upgrade ~p servers, Module:~p~n", [App, Module]), + try + case get_config(App) of + {ok, {App, Config}} -> + #app_config{cookie = Cookie, nodes = Nodes} = Config, + + %% set cookie + erlang:set_cookie(node(), Cookie), + %% ping other nodes. + lists:foreach(fun(ServerNode) -> net_adm:ping(ServerNode) end, Nodes), + + io:format("server nodes:~p~n", [nodes()]), + + %% hot upgrade the Module + {Mod, Bin, File} = code:get_object_code(Module), + {ResL, BadNodes} = rpc:multicall(code, load_binary, [Mod, File, Bin]), + io:format("Res:~p, BadNodes:~p~n", [ResL, BadNodes]), + ok; + Error -> + io:format("err:~p.~n", [Error]), + Error + end + catch + Any -> + Any + end. + diff --git a/src/deploy_sup.erl b/src/deploy_sup.erl new file mode 100644 index 0000000..ff7e66f --- /dev/null +++ b/src/deploy_sup.erl @@ -0,0 +1,64 @@ +%%%------------------------------------------------------------------- +%%% @author zhaoxu-b +%%% @copyright (C) 2013, +%%% @doc +%%% +%%% @end +%%% Created : 01. 十一月 2013 下午3:56 +%%%------------------------------------------------------------------- +-module(deploy_sup). +-author("zhaoxu-b"). + +-behaviour(supervisor). + +%% API +-export([start_link/0]). + +%% Supervisor callbacks +-export([init/1]). + +-define(SERVER, ?MODULE). + +%%%=================================================================== +%%% API functions +%%%=================================================================== + +%%-------------------------------------------------------------------- +%% @doc +%% Starts the supervisor +%% +%% @spec start_link() -> {ok, Pid} | ignore | {error, Error} +%% @end +%%-------------------------------------------------------------------- +start_link() -> + supervisor:start_link({local, ?SERVER}, ?MODULE, []). + +%%%=================================================================== +%%% Supervisor callbacks +%%%=================================================================== + +%%-------------------------------------------------------------------- +%% @private +%% @doc +%% Whenever a supervisor is started using supervisor:start_link/[2,3], +%% this function is called by the new process to find out about +%% restart strategy, maximum restart frequency and child +%% specifications. +%% +%% @spec init(Args) -> {ok, {SupFlags, [ChildSpec]}} | +%% ignore | +%% {error, Reason} +%% @end +%%-------------------------------------------------------------------- +init([]) -> + RestartStrategy = one_for_one, + MaxRestarts = 1000, + MaxSecondsBetweenRestarts = 3600, + + SupFlags = {RestartStrategy, MaxRestarts, MaxSecondsBetweenRestarts}, + + {ok, {SupFlags, []}}. + +%%%=================================================================== +%%% Internal functions +%%%===================================================================