一、伺服器安裝标準(基于VM-EXSI進行伺服器資源管理):
1、web伺服器:
安裝标準: 系統:centos6.6,為了環境純淨必須選擇 basic server 安裝
分區:/boot-200M、swap-6G、其餘均給 / 目錄
檔案系統:ext4
2、DB、cache伺服器(mysql):
檔案系統:XFS
(内網測試環境基于exsi虛拟機,做好快照,且不考慮raid)
二、伺服器具體部署流程:
1、建立伺服器帳号,避免直接使用root權限。
研發帳号:
統一增加研發應用帳号linux使用者 appuser:appuser 主目錄在/home/appuser
sudo su - ; su - appuser 切換到appuser使用者,修改crontab(crontab -e)
資料庫帳号:
增加資料庫帳号linux使用者 mysql:mysql 主目錄 /home/mysql
允許:sudo su -切換到root權限,啟動mysql權限(cp xxx /etc/init.d/mysqld; chmod -R 700 /etc/init.d/mysqld; chkconfig --add mysqld;
chkconfig mysqld on; service mysqld start)
sudo su - ; su - mysql 切換到mysql使用者,修改crontab(crontab -e)
(内網可以允許不禁用直接登入root,但是相關程序不能用root啟動,避免之後标準化部署腳本從内網到外面産生權限問題
所有web項目都以appuser啟動,db用mysql賬戶啟動)
2、關閉selinux、關閉iptables
> /etc/sysconfig/selinux
setenforce 0
echo 'SELINUX=disabled' >> /etc/sysconfig/selinux
echo 'SELINUXTYPE=targeted' >> /etc/sysconfig/selinux
3、統一建立計劃任務目錄、包放置目錄。
mkdir -p /data/cron (統一計劃任務放置點)
mkdir -p /data/source (統一檔案包放置點)
4、統一yum擴充源位址包,初始化部署伺服器時先全部update
yum -y install wget
rpm -ivh epel-release-6-8.noarch.rpm
rm -rf epel-release-6-8.noarch.rpm
yum -y update
5、伺服器時間同步
CTfile=/tmp/crontab.${USER}
CTstr="*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null 2>&1"
/usr/bin/crontab -l > ${CTfile}
echo "" >> ${CTfile}
echo "${CTstr}" >> ${CTfile}
/usr/bin/crontab ${CTfile}
rm -rf ${CTfile}
6、優化IO調試器
for sd in `cd /dev/ && ls sd?`
do
echo "" >> /etc/rc.local
echo "echo \"deadline\" > /sys/block/${sd}/queue/scheduler" >> /etc/rc.local
done
7、為曆史指令加上時間
sed -i '/HISTTIMEFORMAT/d' /etc/profile
echo 'HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "' >> /etc/profile
三、伺服器統一路徑管理:
DB資料庫伺服器(如DB):
/data/3306下目錄所有者mysql:mysql(如果多執行個體,目錄按端口建立,/data/{port},如/data/3307, /data/3308)
/etc/my.cnf 檔案所有者mysql:mysql
web容器伺服器(如tomcat):
啟動關閉腳本:/data/deploy-script下目錄所有者appuser:appuser
日志路徑: /data/httplogs下目錄所有者appuser:appuser
所有相關資源:/data/tomcat下目錄所有者appuser:appuser
tomcat-pid:/data/ tomcat-run-pid下目錄所有者appuser:appuser
tomcat啟動關閉主目錄:/data/ webapps下目錄所有者appuser:appuser
cache伺服器(如redis):
/data/redis/下目錄所有者appuser:appuser
(注:所有運維批量化部署腳本屆時都有我整理後提供,結合以上路徑形成統一标準,結合自動化部署提高效率,減少人為操作失誤。)
四、内網、測試環境項目持續內建與釋出流程:
變更管理:利用svn+jenkins+shell的方式進行項目管理控制,與運維一鍵釋出。
變更流程:開發環境-qa環境-預釋出環境-線上生産環境
所有過程由SVN實行版本控制,統一代碼管理,做到多版本分支及合并,并實時備份,準備復原。
利用jenkins結合svn對各個環境自動高效準确持續的軟體版本釋出/測試項目
監控外部調用執行的工作,準确定位建構中的錯誤資訊,快速準确變更部署
大緻釋出流程:
開發環境釋出 - 研發介入
Qa環境釋出 - 研發、測試組介入
預釋出環境 - 運維進行釋出後測試組回歸測試
正式環境 - 運維進行釋出
參考博文:http://www.cnblogs.com/Javame/p/6018312.html
本文轉自1321385590 51CTO部落格,原文連結:http://blog.51cto.com/linux10000/1914213,如需轉載請自行聯系原作者