上個專案開發完成後, 我被調離了原來的專案組, 趁著這幾天有一些比較閒暇的時間就來惡補了一些運維方面的知識。 從事軟體發展的這幾年, 自己一直走在開發的第一線, 不停的需求分析然後開發測試, 如此反復迴圈, 從不間斷。 由於公司的規模比較大, 開發人員與運維人員是完全分開的, 自己以前從來沒有弄過運維, 這幾天突然心血來潮想自己來試著運維一個項目。 一方面由於網上的各種資料不是很全而且很雜很亂, 這給一些新手們成功運維帶來了很大的困難, 同時也是出於自己學習的目的吧,
前期準備
接著通過控制台這裡進入遠端連接,
在這裡連接到Linux伺服器,
對伺服器進行一系列的配置。
由於需要上線的是一個java系統,
所以需要安裝jdk、tomcat、mysql等各種伺服器端軟體,
後臺沒有圖形化介面,
安裝這些軟體一定要細心。
初次登錄時需要記住一個遠端臨時登錄密碼,
這個需要記住,
當然也可以修改。
中期配置
1、安裝jdk, 伺服器遠端連接成功後, 進入後臺。
a、查看有無安裝jdk命令:#Java -version
b、查看yum庫是否有java安裝包,
c、安裝JDK7 命令:yum -y install java-1.7.0-openjdk*
d、查看安裝成功的JDK 命令:java -version
2、安裝tomcat
a、通過wget下載tomcat, 注意下載前一定要檢查版本是否已經更新並更換, 否則會出現下載失敗。
b、解壓tomcat, 在根目錄下的下載一般會預設存放在/usr/local目錄下。 進入此目錄解壓壓縮包, 命令:tar -zxvf apache-tomcat-8.0.45.tar.gz
c、向外暴露8080埠。
具體步驟如下:
CentOS 7.0默認使用的是firewall作為防火牆, 這裡改為iptables防火牆。
(1)、關閉firewall:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
(2)、安裝iptables防火牆
yum install iptables-services -y
(3).啟動設置防火牆
# systemctl enable iptables
# systemctl start iptables
(4).查看防火牆狀態
systemctl status iptables
(5).編輯防火牆, 增加埠
vi /etc/sysconfig/iptables #編輯防火牆設定檔
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! #保存退出
(6).重啟配置, 重啟系統
systemctl restart iptables.service #重啟防火牆使配置生效
systemctl enable iptables.service #設置防火牆開機啟動
(7)將外網80埠的請求全部轉發至8080.命令:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
d、進入阿裡後臺,
添加安全性群組規則。
也就是在這裡開放一些埠,
使得程式可以與伺服器進行通信。
e、進入解壓後tomcat下的bin目錄下,
啟動服務。
命令:./startup.sh
f、測試tomcat服務。 打開流覽器, 輸入你的 CentOS 的位址+埠8080(默認埠), 就可以看到這個頁面了, 說明你已安裝並啟動完成。
3、安裝mysql資料庫
a、安裝下面兩個檔, 由於mysql-server不在CentOS包中, 需要另外進行安裝
#yum install mysql
#yum install mysql-devel
b、安裝mysql-server
(1)、下載下載mysql的repo源。
(2)安裝mysql-community-release-el7-5.noarch.rpm包。
(3)安裝mysql-server 命令:yum install mysql-server
(4)安裝完成後, 啟動服務。 命令:service mysqld restart
(5)重置密碼。 命令如下:
$ mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > exit;
(6)在iptables添加3306埠, 重啟防火牆service iptables restart, 並且在阿裡後臺設置安全性群組規則。
(7)把在所有資料庫的所有表的所有權限賦值給位於所有IP地址的root用戶。
mysql> grant all privileges on *.* to root@'%'identified by 'password';
如果是新用戶而不是root, 則要先新建用戶
mysql>create user 'username'@'%' identified by 'password';
(8)重啟mysql服務, 然後通過用戶端在遠端連接。
4、安裝xshell與xftp
由於需要將本地的war包專案上傳到伺服器,所以需要通過這兩個用戶端軟體進行檔的傳輸。Xshell是一款類比終端軟體,用於發送命令使用。Xftp用於上傳下載伺服器檔,二者進行配合使用。具體安裝破解使用教程請自行網上搜索,但需要注意的是一定要打開22埠。由於公司防火牆的原因,公司電腦不能使用22埠,這個問題排查了一天,今天終於找到了原來是這個原因。
在eclipse裡匯出war專案,然後上傳至伺服器的tomcat的webapps下,然後啟動tomcat。新開一個終端視窗查看tomcat日誌,步驟如下:
a、先切換到:cd usr/local/tomcat5/logs
b、tail -f catalina.out
c、這樣運行時就可以即時查看運行日誌了
5、其它事項
在伺服器上修改war包內容:步驟如下
a.在暫存檔案中提取 .war 檔的內容。
$ jar xvf im.war
b.列出 .war 文件的部署描述符。
$ ls -l WEB-INF/web.xml
c.編輯 web.xml 文件。
d.重新裝入.war 檔的內容。
$ jar uvf im.war WEB-INF/web.xml
e、重新部署war項目
後期上線
完成了上面的一系列操作後,然後登陸花生殼後臺,給功能變數名稱添加IP位址映射,注意一定要添加A記錄才可以。注意,在後臺這裡一定不要啟用花生殼,否則功能變數名稱不能成功的映射到線上伺服器的ip位址。最後輸入功能變數名稱與專案位址進行測試,出現專案主頁表示上線成功。
通過兩天的學習,成功的把軟體發展的專案部署到了線上,雖然過程中坎坷挺多的,但收穫也是甚多。花了三小時整理完成了這份筆記,希望可以説明一些走在運維路上的小夥伴們少走一些路,少填一些坑,這才是分享的本質。
4、安裝xshell與xftp
由於需要將本地的war包專案上傳到伺服器,所以需要通過這兩個用戶端軟體進行檔的傳輸。Xshell是一款類比終端軟體,用於發送命令使用。Xftp用於上傳下載伺服器檔,二者進行配合使用。具體安裝破解使用教程請自行網上搜索,但需要注意的是一定要打開22埠。由於公司防火牆的原因,公司電腦不能使用22埠,這個問題排查了一天,今天終於找到了原來是這個原因。
在eclipse裡匯出war專案,然後上傳至伺服器的tomcat的webapps下,然後啟動tomcat。新開一個終端視窗查看tomcat日誌,步驟如下:
a、先切換到:cd usr/local/tomcat5/logs
b、tail -f catalina.out
c、這樣運行時就可以即時查看運行日誌了
5、其它事項
在伺服器上修改war包內容:步驟如下
a.在暫存檔案中提取 .war 檔的內容。
$ jar xvf im.war
b.列出 .war 文件的部署描述符。
$ ls -l WEB-INF/web.xml
c.編輯 web.xml 文件。
d.重新裝入.war 檔的內容。
$ jar uvf im.war WEB-INF/web.xml
e、重新部署war項目
後期上線
完成了上面的一系列操作後,然後登陸花生殼後臺,給功能變數名稱添加IP位址映射,注意一定要添加A記錄才可以。注意,在後臺這裡一定不要啟用花生殼,否則功能變數名稱不能成功的映射到線上伺服器的ip位址。最後輸入功能變數名稱與專案位址進行測試,出現專案主頁表示上線成功。
通過兩天的學習,成功的把軟體發展的專案部署到了線上,雖然過程中坎坷挺多的,但收穫也是甚多。花了三小時整理完成了這份筆記,希望可以説明一些走在運維路上的小夥伴們少走一些路,少填一些坑,這才是分享的本質。