天天看點

标準化運維

一、伺服器安裝标準(基于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,如需轉載請自行聯系原作者