Commit 005becea authored by Jondy Zhao's avatar Jondy Zhao

Refine slapos configure scripts.

parent 5826156b
#! /bin/bash
export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:$PATH
function show_error_exit()
{
echo Error: ${1-Error: build slapos failed.}
read -n 1 -p "Press any key to exit..."
exit 1
}
slapos_home=${1-/opt/slapos}
slapos_cache=/opt/download-cache
slapos_url=http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/cygwin-0:/component/slapos/buildout.cfg
......@@ -11,8 +18,9 @@ patch_files=/etc/slapos/patches/slapos-core-format.patch
mkdir -p $slapos_home/log
mkdir -p $slapos_cache
echo "Checking $slapos_cfg ..."
if [[ -r $slapos_cfg ]] ; then
echo "Change $slapos_home/buildout.cfg with "
echo "Change $slapos_cfg:"
echo " extends = ${slapos_url}"
sed -i -e "s%^extends = .*$%extends = ${slapos_url}%g" $slapos_cfg
else
......@@ -22,36 +30,44 @@ extends = ${slapos_url}
download-cache = ${slapos_cache}
prefix = $${buildout:directory}
EOF
echo "$slapos_home/buildout.cfg created."
echo "File $slapos_cfg has been generated."
fi
echo "Checking $slapos_bootstrap ..."
if [[ ! -f $slapos_bootstrap ]] ; then
python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' > $slapos_bootstrap
echo "$slapos_bootstrap downloaded."
if (! cd $slapos_home ; python -S bootstrap.py) ; then
echo "SlapOS bootstrap failed."
exit 1
fi
echo "Downloading $slapos_bootstrap ..."
python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' > $slapos_bootstrap ||
show_error_exit "Error: download $slapos_bootstrap"
echo "Downlaod $slapos_bootstrap OK."
else
echo OK.
fi
# cd $slapos_home
if (! cd $slapos_home ; $slapos_home/bin/buildout -v -N) ; then
echo "SlapOS buildout failed."
exit 1
if [[ ! -x $slapos_home/run/buildout ]] ; then
echo "Bootstrap slapos ..."
(cd $slapos_home ; python -S bootstrap.py) || show_error_exit "Error: slapos bootstrap failed."
echo "Bootstrap slapos OK."
fi
echo
echo Start buildout of slapos ...
echo
(cd $slapos_home ; $slapos_home/bin/buildout -v -N) || show_error_exit "Error slapos buildout failed."
# apply patches
for filename in $patch_files ; do
if [[ -r $filename ]] ; then
echo "Apply patch: $filename"
for x in $(find $slapos_home/eggs -name slapos.core-*.egg) ; do
echo " at $x ..."
(cd $x ; patch -f --dry-run -p1 < $filename > /dev/null && \
patch -p1 < $filename && echo " OK.")
for _filename in $patch_files ; do
if [[ -r ${_filename} ]] ; then
echo "Apply patch: ${_filename}"
for _path in $(find $slapos_home/eggs -name slapos.core-*.egg) ; do
echo " at ${_path} ..."
(cd ${_path} ; patch -f --dry-run -p1 < ${_filename} > /dev/null &&
patch -p1 < ${_filename} && echo "OK.")
done
fi
done
echo Build SlapOS successfully.
echo
echo Build slapos node successfully.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -16,28 +16,26 @@
#
function show_error_exit()
{
echo Error: $1
echo Error: ${1-Run post-install script failed.}
read -n 1 -p "Press any key to exit..."
exit 1
}
password_filename=/etc/passwd
echo Checking passwd file ...
echo Checking /etc/passwd ...
if [[ ! -f $password_filename ]] ; then
echo No passwd file found.
mkpasswd -l > $password_filename || show_error_exit "mkpasswd failed"
echo Generate passwd file OK.
mkpasswd -l > $password_filename || show_error_exit "Error: mkpasswd failed"
echo File /etc/passwd has been generated.
else
echo Check passwd file OK.
echo OK.
fi
echo Checking group file ...
echo Checking /etc/group ...
if [[ ! -f /etc/group ]] ; then
echo No group file found.
mkgroup -l > /etc/group || show_error_exit "mkgroup failed"
echo Generate group file OK.
mkgroup -l > /etc/group || show_error_exit "Error: mkgroup failed"
echo File /etc/group has been generated.
else
echo Check group file OK.
echo OK.
fi
# grep -q "^root:" $password_filename
......@@ -51,25 +49,32 @@ fi
# fi
# fi
DEFAULT_SYSTEM_CHARSET=$(ipwin codepage) ||
DEFAULT_SYSTEM_CHARSET=""
if [[ ! -f ~/.minttyrc ]] ; then
echo Creating ~/.minttyrc
cat <<EOF > ~/.minttyrc
echo Checking Windows OEM Codepage ...
_charset=$(ipwin codepage) || _charset=""
echo Windows OEM Codepage is ${_charset}
_filename="~/.minttyrc"
echo Checking ${_filename} ...
if [[ ! -f ${_filename} ]] ; then
echo Creating ${_filename}
cat <<EOF > ${_filename}
BoldAsFont=no
Font=Courier New
FontHeight=16
Scrollbar=none
Locale=C
Charset=${DEFAULT_SYSTEM_CHARSET}
Charset=${_charset}
EOF
echo File ~/.minttyrc created
echo File ${_filename} has been generated.
else
echo OK.
fi
if [[ ! -f /cygtty.bat ]] ; then
echo Creating /cygtty.bat
_filename="/cygtty.bat"
echo Checking ${_filename} ...
if [[ ! -x ${_filename} ]] ; then
cyghome=$(cygpath -w /)
cat <<EOF > /cygtty.bat
cat <<EOF > ${_filename}
@echo off
${cyghome:0:2}
......@@ -77,13 +82,15 @@ chdir ${cyghome}\\bin
start mintty.exe -i /Cygwin-Terminal.ico -
EOF
chmod +x /cygtty.bat
echo File /cygtty.bat created.
chmod +x ${_filename}
echo File ${_filename} has been generated.
else
echo OK.
fi
# Copy rebaseall.bat to /
if [[ ! -f /autorebase.bat ]] ; then
echo Create /autorebase.bat
_filename="/autorebase.bat"
echo Checking ${_filename} ...
if [[ ! -f ${_filename} ]] ; then
cat <<EOF > /autorebase.bat
@echo off
rem Postinstall scripts are always started from the Cygwin root dir
......@@ -91,37 +98,49 @@ rem so we can just call dash from here
path .\bin;%path%
dash /bin/rebaseall -p
EOF
chmod +x /autorebase.bat
echo /autorebase.bat created.
chmod +x ${_filename}
echo File ${_filename} has been generated.
else
echo OK.
fi
# Change format of readme.txt
readme_filepath=$(cygpath -m /)/..
if [[ -f $readme_filepath/Readme.txt ]] ; then
unix2dos $readme_filepath/Readme.txt
echo Change readme.txt to dos format OK.
_filename=$(cygpath -u $(cygpath -m /)/../readme.txt)
if [[ -f ${_filename} ]] ; then
echo Changing $(cygpath -w ${_filename}) as dos format ...
unix2dos ${_filename} && echo OK.
fi
# Remove cygwin services to be sure these services will be configured
# in this cygwin enviroments when there are many cygwin instances
# installed in this computer.
for name in $(cygrunsrv --list) ; do
echo Removing cygservice $name
cygrunsrv -R $name
echo Removing $name service
cygrunsrv -R $name || show_error_exit
echo OK.
done
# Backup slap-runner.html
cp /etc/slapos/scripts/slap-runner.html{,.orig}
_filename=/etc/slapos/scripts/slap-runner.html
if [[ -r ${_filename} ]] ; then
echo Backuping ${_filename} as ${_filename}.orig
cp ${_filename}{,.orig} && echo OK.
else
echo Warning: Missing ${_filename}
fi
# Unzip slapos.tar.gz
if [[ -r /opt/downloads/slapos.tar.gz ]] ; then
echo Extracting slapos.tar.gz
cd /opt
tar xzf /opt/downloads/slapos.tar.gz --no-same-owner ||
show_error_exit "Failed to untar slapos.tar.gz"
echo Extracte slapos.tar.gz OK.
_filename=/opt/downloads/slapos.tar.gz
if [[ -r ${_filename} ]] ; then
echo Extracting ${_filename} ...
(cd /opt ; tar xzf ${_filename} --no-same-owner) || show_error_exit
echo OK.
elif [[ ! -d /opt/slapos ]] ; then
echo Warning: Missing ${_filename}
fi
echo Run post-install script successfully.
echo
echo Run post-install.sh script successfully.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -23,10 +23,10 @@ export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:$PATH
for ifname in $(netsh interface ipv6 show interface | gawk '{ print $5 }') ; do
if [[ "$ifname" == "re6stnet-lo" ]] ; then
echo Removing network connection: $ifname
ipwin remove *msloop re6stnet-lo
ipwin remove *msloop re6stnet-lo && echo OK.
elif [[ "$ifname" == re6stnet* ]] ; then
echo Removing network connection: $ifname
ipwin remove tap0901 $ifname
ipwin remove tap0901 $ifname && echo OK.
fi
done
......@@ -34,10 +34,10 @@ done
# Remove services installed by cygwin,
#
echo Try to kill openvpn process ...
ps -ef | grep -q "/usr/bin/openvpn" && TASKKILL /IM openvpn.exe /F
ps -ef | grep -q "/usr/bin/openvpn" && TASKKILL /IM openvpn.exe /F && echo OK.
for name in $(cygrunsrv --list) ; do
echo Removing cygservice $name
cygrunsrv -R $name
cygrunsrv -R $name && echo OK.
done
#
......@@ -45,33 +45,35 @@ done
#
for name in $(net user) ; do
if [[ "x$name" == x\*slapuser* ]] ; then
echo Remove user: $name
net user $name /delete
echo Removing user: $name
net user $name /delete && echo OK.
elif echo "$name" | grep -q -E "(sshd)|(cyg_server)|(slaproot)" ; then
echo Remove user: $name
net user $name /delete
echo Removing user: $name
net user $name /delete && echo OK.
fi
done
mkpasswd -l > /etc/passwd
echo "Creating /etc/passwd ..."
mkpasswd -l > /etc/passwd && echo OK.
#
# Remove local group installed by slapos node
#
for name in $(net localgroup | sed -n -e "s/^*//p" | sed -e "s/\\s//g") ; do
if [[ "$name" == grp_slapuser* ]] ; then
echo Remove localgroup: $name
net localgroup $name /delete
echo Removing localgroup: $name
net localgroup $name /delete && echo OK.
fi
done
mkgroup -l > /etc/group
echo "Creating /etc/group ..."
mkgroup -l > /etc/group && echo OK.
#
# Remove configure files
#
echo Removing /etc/opt/slapos
rm -rf /etc/opt/slapos/
rm -rf /etc/opt/slapos/ && echo OK.
echo Removing ~/.slapos
rm -rf ~/.slapos
rm -rf ~/.slapos && echo OK.
#
# Remove slapos-configure from windows startup item
......@@ -79,14 +81,16 @@ rm -rf ~/.slapos
slapos_run_key='\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
slapos_run_entry=slapos-configure
echo Removing startup item "$slapos_run_key\\$slapos_run_entry"
regtool -q unset "$slapos_run_key\\$slapos_run_entry"
regtool -q unset "$slapos_run_key\\$slapos_run_entry" && echo OK.
#
# Remove default instance root, because it belong to slapuser, and
# would be removed by the windows uninstaller.
#
[[ -f /srv/slapgrid ]] && echo Removing /srv/slapgrid && rm -rf /srv/slapgrid
[[ -f /srv/slapgrid ]] && echo Removing /srv/slapgrid && rm -rf /srv/slapgrid && echo OK.
echo Run pre-uninstall script successfully.
echo
echo Run pre-uninstall script complete.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -72,10 +72,10 @@ Source: "opt\git\slapos.package\windows\docs\README.cygwin"; DestDir: "{app}"; D
[Icons]
Name: "{commondesktop}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\Command Console"; Filename: "{app}\cygwin\cygtty.bat"; WorkingDir: "{app}\cygwin\opt\slapos"; IconFilename: "{app}\cygwin\etc\slapos\images\terminal.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Configure SlapOS Node"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""Configure SlapOS"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\SlapOS Runner"; Filename: "{app}\cygwin\etc\slapos\scripts\slap-runner.html"; IconFilename: "{app}\cygwin\etc\slapos\images\manager.ico";
Name: "{group}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""SlapOS Node"" /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\Uninstall SlapOS"; Filename: "{uninstallexe}";
Name: "{group}\User Guide"; Filename: "{app}\user-guide.html";
......@@ -85,7 +85,7 @@ Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scrip
Filename: "{app}\cygwin\autorebase.bat"; WorkingDir: "{app}\cygwin"; Flags: skipifdoesntexist runhidden;
[UninstallRun]
Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Uninstall SlapOS"" /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
[UninstallDelete]
Type: filesandordirs; Name: "{app}\cygwin" ;
......
......@@ -47,6 +47,10 @@
#
source $(/usr/bin/dirname $0)/slapos-include.sh
echo
echo Start slapos node configure ...
echo
if [[ ! ":$PATH" == :/opt/slapos/bin: ]] ; then
for profile in ~/.bash_profile ~/.profile ; do
grep -q "export PATH=/opt/slapos/bin:" $profile ||
......@@ -55,10 +59,8 @@ if [[ ! ":$PATH" == :/opt/slapos/bin: ]] ; then
fi
# cygrunsrv
# cron-config
# ssh-host-config
# syslog-ng-config
# devcon
# openssl
# export WINDIR
# ipwin
......@@ -79,13 +81,16 @@ mkdir -p /etc/re6stnet
# Create account: slaproot
# -----------------------------------------------------------
# Start seclogon service in the Windows XP
csih_is_xp && sc config seclogon start= auto
if csih_is_xp ; then
echo "Set start property of seclogon to auto"
sc config seclogon start= auto ||
csih_warning "Warning: failed to set seclogon to auto start."
# In the later, it's RunAs service, and will start by default
fi
# echo Checking slapos account $slapos_admin ...
slapos_check_and_create_privileged_user $slapos_admin ||
show_error_exit "Failed to create account $slapos_admin."
_password="${csih_PRIVILEGED_PASSWORD}"
csih_error "Failed to create account $slapos_admin."
# -----------------------------------------------------------
# Configure cygwin services: cygserver syslog-ng sshd
......@@ -96,7 +101,7 @@ echo
if ! cygrunsrv --query cygserver > /dev/null 2>&1 ; then
echo Run cygserver-config ...
/usr/bin/cygserver-config --yes || \
show_error_exit "Failed to run cygserver-config"
csih_error "Failed to run cygserver-config"
else
echo The cygserver service has been installed.
fi
......@@ -105,20 +110,20 @@ check_cygwin_service cygserver
if ! cygrunsrv --query syslog-ng > /dev/null 2>&1 ; then
echo Run syslog-ng-config ...
/usr/bin/syslog-ng-config --yes || \
show_error_exit "Failed to run syslog-ng-config"
csih_error "Failed to run syslog-ng-config"
else
echo The syslog-ng service has been installed.
fi
check_cygwin_service syslog-ng
if ! cygrunsrv --query sshd > /dev/null 2>&1 ; then
if csih_is_xp && [[ -z "${_password}" ]] ; then
if csih_is_xp && [[ -z "${csih_PRIVILEGED_PASSWORD}" ]] ; then
slapos_request_password $slapos_admin "Install sshd service need the password of $slapos_admin."
fi
echo Run ssh-host-config ...
/usr/bin/ssh-host-config --yes --cygwin ntsec \
--user $slapos_admin --pwd ${_password} ||
show_error_exit "Failed to run ssh-host-config"
--user $slapos_admin --pwd ${csih_PRIVILEGED_PASSWORD} ||
csih_error "Failed to run ssh-host-config"
else
echo The sshd service has been installed.
fi
......@@ -127,20 +132,20 @@ check_cygwin_service sshd
# Use slapos-cron-config to configure slapos cron service.
if ! cygrunsrv --query cron > /dev/null 2>&1 ; then
[[ -x $slapos_cron_config ]] ||
show_error_exit "Couldn't find slapos cron config script: $slapos_cron_config"
csih_error "Couldn't find slapos cron config script: $slapos_cron_config"
if csih_is_xp && [[ -z "${_password}" ]] ; then
if [[ -z "${csih_PRIVILEGED_PASSWORD}" ]] ; then
slapos_request_password $slapos_admin "Install cron service need the password of $slapos_admin."
fi
echo Run slapos-cron-config ...
$slapos_cron_config $slapos_admin ${_password} || show_error_exit "Failed to run cron-config"
$slapos_cron_config $slapos_admin ${csih_PRIVILEGED_PASSWORD} ||
csih_error "Failed to run $slapos_cron_config"
else
echo The cron service has been installed.
fi
check_cygwin_service cron
echo
echo Configure cygwin services OK.
echo
......@@ -169,7 +174,7 @@ echo Starting configure IPv6 protocol ...
echo
netsh interface ipv6 show interface > /dev/null || \
netsh interface ipv6 install || \
show_error_exit "Failed to install IPv6 protocol."
csih_error "Failed to install IPv6 protocol."
echo
echo Configure IPv6 protocol OK.
echo
......@@ -182,13 +187,13 @@ echo Starting configure section config ...
echo
[[ -r $node_template_file && -r $client_template_file ]] || \
create_template_configure_file || \
show_error_exit "Failed to create template configure file."
csih_error "Failed to create template configure file."
if [[ ! -f $node_certificate_file ]] ; then
read -p "Where is computer certificate file $(cygpath -w /computer.crt): " filename
[[ -z "$filename" ]] && filename="/computer.crt"
[[ ! -r "$filename" ]] && \
show_error_exit "Computer certificate file $filename doesn't exists."
csih_error "Computer certificate file $filename doesn't exists."
echo "Copy certificate from $filename to $node_certificate_file"
filename=$(cygpath -u $filename)
cp $filename $node_certificate_file
......@@ -196,13 +201,13 @@ else
echo "Found computer certificate file: $node_certificate_file"
fi
openssl x509 -noout -in $node_certificate_file || \
show_error_exit "Invalid computer certificate: $node_certificate_file."
csih_error "Invalid computer certificate: $node_certificate_file."
if [[ ! -f $node_key_file ]] ; then
read -p "Where is computer key file $(cygpath -w /computer.key): " filename
[[ -z "$filename" ]] && filename="/computer.key"
[[ ! -f "$filename" ]] && \
show_error_exit "Key file $filename doesn't exists."
csih_error "Key file $filename doesn't exists."
echo "Copy key from $filename to $node_key_file"
filename=$(cygpath -u $filename)
cp $filename $node_key_file
......@@ -210,7 +215,7 @@ else
echo "Found computer key file: $node_key_file"
fi
openssl rsa -noout -in $node_key_file -check ||
show_error_exit "Invalid node key: $node_key_file."
csih_error "Invalid node key: $node_key_file."
if [[ ! -f $node_configure_file ]] ; then
echo "Copy computer configure file from $node_template_file to $node_configure_file"
......@@ -218,14 +223,14 @@ if [[ ! -f $node_configure_file ]] ; then
fi
interface_guid=$(ipwin guid *msloop $slapos_ifname) ||
show_error_exit "Failed to get guid of interface: $slapos_ifname."
csih_error "Failed to get guid of interface: $slapos_ifname."
[[ "$interface_guid" == {*-*-*-*} ]] ||
show_error_exit "Invalid interface guid $interface_guid specified."
csih_error "Invalid interface guid $interface_guid specified."
computer_guid=$(grep "CN=COMP" $node_certificate_file | \
sed -e "s/^.*, CN=//g" | sed -e "s%/emailAddress.*\$%%g")
[[ "$computer_guid" == COMP-+([0-9]) ]] ||
show_error_exit "Invalid computer id '$computer_guid' specified."
csih_error "Invalid computer id '$computer_guid' specified."
echo "Computer configuration information:"
echo " interface name: $slapos_ifname"
......@@ -248,25 +253,25 @@ if [[ ! -f $client_certificate_file ]] ; then
read -p "Where is client certificate file $(cygpath -w /certificate): " filename
[[ -z "$filename" ]] && filename="/certificate"
[[ ! -f "$filename" ]] && \
show_error_exit "Client certificate file $filename doesn't exists."
csih_error "Client certificate file $filename doesn't exists."
echo "Copy client certificate from $filename to $client_certificate_file"
filename=$(cygpath -u $filename)
cp $filename $client_certificate_file
fi
openssl x509 -noout -in $client_certificate_file || \
show_error_exit "Invalid client certificate: $client_certificate_file."
csih_error "Invalid client certificate: $client_certificate_file."
if [[ ! -f $client_key_file ]] ; then
read -p "Where is client key file $(cygpath -w /key): " filename
[[ -z "$filename" ]] && filename="/key"
[[ ! -f "$filename" ]] && \
show_error_exit "Key file $filename doesn't exists."
csih_error "Key file $filename doesn't exists."
echo "Copy client key from $filename to $client_key_file"
filename=$(cygpath -u $filename)
cp $filename $client_key_file
fi
openssl rsa -noout -in $client_key_file -check || \
show_error_exit "Invalid client key: $client_key_file."
csih_error "Invalid client key: $client_key_file."
if [[ ! -f $client_configure_file ]] ; then
echo "Copy client configure file from $client_template_file to $client_configure_file"
......@@ -293,14 +298,14 @@ echo
echo Checking miniupnpc ...
if [[ ! -d /opt/miniupnpc ]] ; then
package=/opt/downloads/miniupnpc.tar.gz
[[ -r $package ]] || show_error_exit "No package found: $package"
[[ -r $package ]] || csih_error "No package found: $package"
echo "Installing miniupnpc ..."
cd /opt
tar xzf $package --no-same-owner
mv $(ls -d miniupnpc-*) miniupnpc
cd miniupnpc
make
python setup.py install || show_error_exit "Failed to install miniupnpc."
python setup.py install || csih_error "Failed to install miniupnpc."
echo "Install miniupnpc OK."
else
echo Check miniupnpc OK.
......@@ -309,13 +314,13 @@ fi
echo Checking pyOpenSSL ...
if [[ ! -d /opt/pyOpenSSL ]] ; then
package=/opt/downloads/pyOpenSSL.tar.gz
[[ -r $package ]] || show_error_exit "No package found: $package"
[[ -r $package ]] || csih_error "No package found: $package"
echo "Installing pyOpenSSL ..."
cd /opt
tar xzf $package --no-same-owner
mv $(ls -d pyOpenSSL-*) pyOpenSSL
cd pyOpenSSL
python setup.py install || show_error_exit "Failed ot install pyOpenSSL."
python setup.py install || csih_error "Failed ot install pyOpenSSL."
echo "Install pyOpenSSL OK."
else
echo Check pyOpenSSL OK.
......@@ -332,10 +337,10 @@ if [[ ! -d /opt/re6stnet ]] ; then
else
echo "Clone re6stnet from http://git.erp5.org/repos/re6stnet.git"
git clone -b cygwin http://git.erp5.org/repos/re6stnet.git ||
show_error_exit "Failed to clone re6stnet.git"
csih_error "Failed to clone re6stnet.git"
fi
cd re6stnet
python setup.py install || show_error_exit "Failed to install re6stnet."
python setup.py install || csih_error "Failed to install re6stnet."
echo "Install re6stnet OK."
else
echo Check re6stnet OK.
......@@ -348,9 +353,9 @@ if [[ ! -r $re6stnet_configure_file ]] ; then
# Your subnet: 2001:67c:1254:e:19::/80 (CN=917529/32)
subnet=$(re6st-conf --registry http://re6stnet.nexedi.com/ --anonymous | \
grep "^Your subnet:") || \
show_error_exit "Register to nexedi re6stnet failed"
csih_error "Register to nexedi re6stnet failed"
[[ -r re6stnet.conf ]] || \
show_error_exit "No $re6stnet_configure_file found."
csih_error "No $re6stnet_configure_file found."
echo Register re6stnet OK.
echo "Write information to re6stnet.conf:"
......@@ -391,12 +396,12 @@ if check_re6stnet_needed ; then
echo "Checking interface $name ..."
if ! netsh interface ipv6 show interface | grep -q "\\b$name\\b" ; then
[[ -r $openvpn_tap_driver_inf ]] ||
show_error_exit "Failed to install OpenVPN Tap-Windows Driver, missing driver inf file: $filename"
csih_error "Failed to install OpenVPN Tap-Windows Driver, missing driver inf file: $filename"
echo "Installing interface $name ..."
# ipwin install \"$filename\" $openvpn_tap_driver_hwid $name; ||
ip vpntap add dev $name ||
show_error_exit "Failed to install OpenVPN Tap-Windows Driver."
csih_error "Failed to install OpenVPN Tap-Windows Driver."
echo "Interface $name installed."
else
echo "$name has been installed."
......@@ -404,18 +409,20 @@ if check_re6stnet_needed ; then
done
# Run re6stnet if no native ipv6
check_re6stnet_configure || exit 1
check_re6stnet_configure ||
csih_error "Failed to configure re6stnet."
if ! cygrunsrv --query $re6stnet_service_name >/dev/null 2>&1 ; then
if [[ -z "${_password}" ]] ; then
if [[ -z "${csih_PRIVILEGED_PASSWORD}" ]] ; then
slapos_request_password $slapos_admin "Install re6stnet service need the password of $slapos_admin."
fi
cygrunsrv -I $re6stnet_service_name -c $(dirname $re6stnet_configure_file) \
-p $(which re6stnet) -a "@re6stnet.conf" -d "CYGWIN re6stnet" \
-u $slapos_admin -w ${_password} ||
show_error_exit "Failed to install cygwin service $re6stnet_service_name."
-u $slapos_admin -w ${csih_PRIVILEGED_PASSWORD} ||
csih_error "Failed to install $re6stnet_service_name service."
fi
echo "You can check log files in the /var/log/re6stnet/*.log"
check_cygwin_service $re6stnet_service_name || exit 1
check_cygwin_service $re6stnet_service_name ||
csih_error "Failed to start $re6stnet_service_name service."
else
echo "Native IPv6 found, no taps required."
fi
......@@ -447,7 +454,7 @@ if ! grep -q -F "$feature_code" $slaprunner_startup_file ; then
fi
/opt/slapos/bin/slapos node format -cv --now || \
show_error_exit "Failed to run slapos format."
csih_error "Failed to run slapos format."
echo "Supply slapwebrunner in the computer $computer_guid"
/opt/slapos/bin/slapos supply slaposwebrunner $computer_guid
......@@ -482,7 +489,7 @@ if ! grep -q -F "$feature_code" $slaprunner_startup_file ; then
grep backend_url | sed -e "s/^.*': '//g" -e "s/',.*$//g")
echo "SlapOS Web Runner URL: $slaprunner_url"
[[ -z "$slaprunner_url" ]] && \
show_error_exit "Failed to create instance of SlapOS Web Runner."
csih_error "Failed to create instance of SlapOS Web Runner."
cat <<EOF > $slaprunner_startup_file
<html>
......@@ -542,7 +549,7 @@ else
fi
echo
echo
cat $slapos_crontab_file || show_error_exit "No crob tab found."
cat $slapos_crontab_file || csih_error "No crob tab found."
echo
echo Configure section cron OK.
echo
......@@ -557,7 +564,7 @@ echo
# regtool -q get "$slapos_run_key\\$slapos_run_entry" || \
# regtool -q set "$slapos_run_key\\$slapos_run_entry" \
# "\"$(cygpath -w /usr/bin/bash)\" --login -i $slapos_run_script" || \
# show_error_exit "Failed to add slapos-configure.sh as windows startup item."
# csih_error "Failed to add slapos-configure.sh as windows startup item."
# echo "Windows startup item:"
# echo " $slapos_run_key\\$slapos_run_entry = " \
# $(regtool get "$slapos_run_key\\$slapos_run_entry")
......
......@@ -182,7 +182,7 @@ function reset_slapos_connection()
# ======================================================================
function show_error_exit()
{
echo ${1-Error: run Configure Slapos failed.}
echo ${1-Error: configure SlapOS failed.}
read -n 1 -p "Press any key to exit..."
exit 1
} # === show_error_exit() === #
......@@ -213,8 +213,9 @@ slapos_request_password()
_password="${csih_value}"
if [ -z "${_password}" ]
then
csih_error_multi "Exiting configuration. I don't know the password of ${username}."
csih_error_multi "Exiting configuration." "I don't know the password of ${username}."
fi
csih_PRIVILEGED_PASSWORD="${_password}"
} # === slapos_request_password() === #
# ======================================================================
......
#! /bin/bash
source $(/usr/bin/dirname $0)/slapos-include.sh
echo
echo "Start slapos-node script ..."
echo
# -----------------------------------------------------------
# Check all the configure files
......@@ -43,5 +46,8 @@ echo "Creating instance ..."
echo "Sending report ..."
/opt/slapos/bin/slapos node report --verbose
echo
echo "Run slapos-node script successfully."
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -67,10 +67,10 @@ Source: "opt\git\slapos.package\windows\docs\README.cygwin"; DestDir: "{app}"; D
[Icons]
Name: "{commondesktop}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\Command Console"; Filename: "{app}\cygwin\cygtty.bat"; WorkingDir: "{app}\cygwin\opt\slapos"; IconFilename: "{app}\cygwin\etc\slapos\images\terminal.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Configure SlapOS Node"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""Configure SlapOS"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\SlapOS Runner"; Filename: "{app}\cygwin\etc\slapos\scripts\slap-runner.html"; IconFilename: "{app}\cygwin\etc\slapos\images\manager.ico";
Name: "{group}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""SlapOS Node"" /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\Uninstall SlapOS"; Filename: "{uninstallexe}";
Name: "{group}\User Guide"; Filename: "{app}\user-guide.html";
......@@ -81,7 +81,7 @@ Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scrip
Filename: "{app}\cygwin\autorebase.bat"; WorkingDir: "{app}\cygwin"; Flags: skipifdoesntexist runhidden;
[UninstallRun]
Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Uninstall SlapOS"" /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
[UninstallDelete]
Type: filesandordirs; Name: "{app}\cygwin" ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment