diff --git a/codes/deploy/deployment.sh b/codes/deploy/deployment.sh index 486946a..8c3a8d7 100644 --- a/codes/deploy/deployment.sh +++ b/codes/deploy/deployment.sh @@ -1,39 +1,70 @@ #!/usr/bin/env bash +####################################################################### +# 启动退出开关:当执行命令返回非0(0表示成功)状态码时,脚本退出执行。 # 次脚本适用于 Centos/RedHat - - -init() { - echo "${IP} 机器环境部署开始" |tee ${DEPLOY_LOG_PATH} - touch ${DEPLOY_LOG_PATH} - chmod 777 ${DEPLOY_LOG_PATH} -} +####################################################################### # 获取当前机器 IP -IP="127.0.0.1" +IP="" getDeviceIp() { IP=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'` - if [ "$IP" == "" ]; then - IP=`ifconfig ens32 | grep "inet"|grep "broadcast" | awk '{ print $2}' | awk -F: '{print $1}'` + if [ "$IP" == "" ] + then + IP=`ifconfig ens32 | grep "inet"|grep "broadcast" | awk '{ print $2}' | awk -F: '{print $1}'` + fi + + echo "${IP} 机器环境部署开始" |tee ${DEPLOY_LOG_PATH} + if [ "$IP" == "" ] + then + IP=`echo $1` + fi + + if [ "${IP}" == "" ] + then + echo " " + echo " 请输入服务器IP地址................ " + echo " " + exit 0 fi } +touch ${DEPLOY_LOG_PATH} +chmod 777 ${DEPLOY_LOG_PATH} installGit() { echo "安装 git" |tee ${DEPLOY_LOG_PATH} + yum install -y git-core yum install -y git } +copyXyzdeploy() { + echo "克隆 xyzdeploy 项目到本地" | tee ${DEPLOY_LOG_PATH} + rm -rf ${SOFTWARE_ROOT}* + rm -rf ${XYZDEPLOY_ROOT} + git clone ssh://git@git.xyz.cn:10022/dream/xyzdeploy.git ${XYZDEPLOY_ROOT} + chmod -R 755 ${XYZDEPLOY_ROOT}/* + cp -rf ${XYZDEPLOY_ROOT}/software ${SOFTWARE_ROOT} + cp -rf ${XYZDEPLOY_ROOT}/config/ /home/xyz/ + cp -rf ${XYZDEPLOY_ROOT}/script/ /home/xyz/ + + sed -i 's/127.0.0.1/'"${IP}"'/g' /home/xyz/config/nginx/vmhosts/*.conf +} + initEnviromentConfig() { echo "修改环境配置文件 profile 和 hosts" | tee ${DEPLOY_LOG_PATH} if [ ! -f /etc/profile.bak ] then - cp /etc/profile /etc/profile.bak + cp -f /etc/profile /etc/profile.bak fi - cd ${TMP_PATH} - wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://github.com/dunwu/linux-notes/blob/master/codes/deploy/profile - cat ${TMP_PATH}/profile >> /etc/profile - rm -rf ${TMP_PATH}/profile + cp -f ${XYZDEPLOY_ROOT}/config/enviroment/profile /etc/profile source /etc/profile + + if [ ! -f /etc/hosts.bak ] + then + cp -f /etc/hosts /etc/hosts.bak + fi + cp -f ${XYZDEPLOY_ROOT}/config/enviroment/hosts /etc/hosts + sed -i 's/0.0.0.0/'"${IP}"'/g' /etc/hosts } installJava() { @@ -79,13 +110,19 @@ installNginx() { installNodejsAndNvm() { echo "安装 Nvm 和 Nodejs" | tee ${DEPLOY_LOG_PATH} rm -rf /home/admin/.nvm - git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm source ~/.nvm/nvm.sh + # 使用 nvm 安装 Node 指定版本 nvm install 0.10.48 } +installNtp() { + yum install -y ntp + vi /etc/crontab + echo "*/30 * * * * /usr/local/bin/ntpdate 192.168.16.182" | tee /etc/crontab +} + shutdownFirewall() { echo "************************关闭防火墙************************" |tee -a /home/depoly.log /etc/init.d/iptables stop @@ -93,22 +130,28 @@ shutdownFirewall() { } setPrivilegeForUserIns() { - userdel zp - groupdel coder - groupadd coder - useradd -g coder zp - chown -R coder.zp /home/zp - chown -R coder.zp /opt/ - chown -R coder.zp /tmp/ + userdel INS + groupdel INS + groupadd INS + useradd -g INS INS + mkdir -p /search/statistics + mkdir -p /home/mic + mkdir -p /home/INS/logs + chown -R INS.INS /home/mic + chown -R INS.INS /search/ + chown -R INS.INS /home/INS/ + chown -R INS.INS /opt/ + chown -R INS.INS /tmp/ } ##############################__MAIN__######################################## -DEPLOY_LOG_PATH=/home/zp/deploy.log -TMP_PATH=/home/zp/ -SOFTWARE_PATH=/usr/lib +DEPLOY_LOG_PATH=/home/zp/log/deploy.log +XYZDEPLOY_ROOT=/home/xyz/source/xyzdeploy +SOFTWARE_ROOT=/opt/software init getDeviceIp installGit +copyXyzdeploy initEnviromentConfig installJava installGcc @@ -118,5 +161,6 @@ installPcre installNginx installMaven installNodejsAndNvm +installNtp shutdownFirewall setPrivilegeForUserIns diff --git a/codes/deploy/update-code.sh b/codes/deploy/git-clone.sh similarity index 70% rename from codes/deploy/update-code.sh rename to codes/deploy/git-clone.sh index 2369b55..46c7841 100644 --- a/codes/deploy/update-code.sh +++ b/codes/deploy/git-clone.sh @@ -1,17 +1,14 @@ #!/bin/bash -# zp 源码根目录 -SOURCE_PATH=/home/zp/source - # # 检查脚本参数,如必要参数未传入,退出脚本。 # checkInput() { - if [ "${repository}" == "" ] || [ "${branch}" == "" ]; - then - echo "请输入脚本参数:repository branch target" - echo " repository: git 仓储(必填)。如 apollo" - echo " branch: git 分支(必填)。如 develop, master" + if [ "${repository}" == "" ] || [ "${branch}" == "" ]; then + echo "请输入脚本参数:repository branch [source] [target]" + echo " repository: git 仓储(必填)。" + echo " branch: git 分支(必填)。如 master/develop" + echo " source: 代码存放目录。默认为/home/zp/source。" echo " target: 代码存放目录。默认为脚本所在目录。" exit 0 fi @@ -23,8 +20,8 @@ checkInput() { gitok=false isGitExist() { cd ${SOURCE_PATH} - if [ -d "./${repository}/${target}" ]; then - cd ./${repository}/${target} + if [ -d "${SOURCE_PATH}/${repository}/${target}" ]; then + cd ${SOURCE_PATH}/${repository}/${target} #(1)删除git状态零时文件 if [ -f "gitstatus.tmp" ]; then rm -rf gitstatus.tmp @@ -46,8 +43,11 @@ isGitExist() { # 如果 git 版本库存在(根据 ${gitok} 值),执行 fetch 操作;反之,执行 clone 操作。 # doFetchOrClone() { + if [ ! -d "${SOURCE_PATH}" ]; then + mkdir -p ${SOURCE_PATH} + fi if ${gitok}; then - cd ${target} + cd ${SOURCE_PATH}/${repository}/${target} git reset --hard git clean -ffdx git fetch @@ -55,9 +55,9 @@ doFetchOrClone() { else #删除所有内容,便于重新进行git clone rm -rf ${repository} - git clone --no-checkout ${repository} ${target} + git clone --no-checkout git@github.com:${ACCOUNT}/${repository}.git ${SOURCE_PATH}/${repository}/${target} echo "git clone ${repository} remote repository 到本地成功" - cd ${target} + cd ${SOURCE_PATH}/${repository}/${target} fi } @@ -81,9 +81,19 @@ doCheckout() { ##############################__MAIN__######################################## export LANG="zh_CN.UTF-8" +ACCOUNT=dunwu +SOURCE_PATH=/home/zp/source + +# 必填输入参数 repository=`echo $1` branch=`echo $2` -target=`echo $3` + +# 可选输入参数 +source=`echo $3` +target=`echo $4` +if [ "${source}" != "" ]; then + SOURCE_PATH=${source} +fi # 0. 检查传入的参数 checkInput