一、服务器安装标准(基于VM-EXSI进行服务器资源管理):
1、web服务器:
安装标准: 系统:centos6.6,为了环境纯净必须选择 basic server 安装
分区:/boot-200M、swap-6G、其余均给 / 目录
文件系统:ext4
2、DB、cache服务器(mysql):
安装标准: 系统:centos6.6,为了环境纯净必须选择 basic server 安装
分区:/boot-200M、swap-6G、其余均给 / 目录
文件系统: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
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
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环境发布 - 研发、测试组介入
- 预发布环境 - 运维进行发布后测试组回归测试
- 正式环境 - 运维进行发布