從創(chuàng)建服務(wù)器到搭建一臺(tái)內(nèi)網(wǎng)穿透服務(wù)器(一)

創(chuàng)建服務(wù)器到搭建一臺(tái)內(nèi)網(wǎng)穿透服務(wù)器

項(xiàng)目開(kāi)發(fā)完后耍铜,如何創(chuàng)建一臺(tái)新的服務(wù)器邑闺,把項(xiàng)目部署到服務(wù)器上呢,這就需要安裝一些基本的工具棕兼,如jdk陡舅,maven,Jenkins實(shí)現(xiàn)自動(dòng)化部署伴挚;除此之外可以搭建一些輔助工具靶衍,如nexus(maven私倉(cāng))臂寝。服務(wù)器價(jià)格比較高,有時(shí)候比較窮摊灭,買(mǎi)不起服務(wù)器咆贬,可選擇在自己電腦上安裝虛擬機(jī),部署項(xiàng)目帚呼,使用holer內(nèi)網(wǎng)穿透工具掏缎,實(shí)現(xiàn)外網(wǎng)訪問(wèn)本地虛擬機(jī)上部署的項(xiàng)目。

解決VMware虛擬機(jī)ip地址經(jīng)常變化的問(wèn)題

首先煤杀,虛擬機(jī)創(chuàng)建好后眷蜈,會(huì)遇到虛擬機(jī)ip地址經(jīng)常變化的問(wèn)題,因?yàn)樘摂M機(jī)在NAT模式下由Vmware8虛擬網(wǎng)卡提供虛擬機(jī)的IP分配,網(wǎng)橋模式下由Vmware1來(lái)提供IP分配沈自。虛擬機(jī)的IP租約過(guò)期后,IP就會(huì)自動(dòng)重新分配,從而造成IP地址自行變化酌儒,解決方法如下:

1. 點(diǎn)擊菜單欄中的編輯按鈕, 選擇虛擬網(wǎng)絡(luò)編輯器


2. 選擇正在使用的連接模式枯途,DHCP設(shè)置-->將租用的時(shí)間設(shè)置得長(zhǎng)一點(diǎn)忌怎,最多可設(shè)置63天


啟動(dòng)虛擬機(jī),創(chuàng)建/work目錄酪夷,安裝包和一些項(xiàng)目都放在/work目錄下

安裝lrzsz

Linux中rz和sz命令用法詳解

rz榴啸,sz是Linux/Unix同Windows進(jìn)行ZModem文件傳輸?shù)拿钚泄ぞ摺?yōu)點(diǎn)就是不用再開(kāi)一個(gè)sftp工具登錄上去上傳下載文件晚岭。

sz:將選定的文件發(fā)送(send)到本地機(jī)器

rz:運(yùn)行該命令會(huì)彈出一個(gè)文件選擇窗口鸥印,從本地選擇文件上傳到Linux服務(wù)器

安裝命令:

```sh

yum install lrzsz

```

從服務(wù)端發(fā)送文件到客戶(hù)端:

```shell

sz filename

```

從客戶(hù)端上傳文件到服務(wù)端:

```shell

rz

```

安裝插件

```shell

yum install vim

yum install wget

```

安裝jdk

1. 解壓jdk

```shell

tar -zxvf jdk-8u271-linux-x64.tar.gz

```

2. 配置環(huán)境變量并測(cè)試

? 2.1 編輯文件/etc/profile

```shell

vi /etc/profile

```

2.2 在最后插入一下配置內(nèi)容

```shell

JAVA_HOME=/work/mySoft/jdk1.8.0_271

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

```

2.3 讓環(huán)境變量生效,執(zhí)行下面的命令

```shell

source /etc/profile

```

2.4 驗(yàn)證

```shell

java -version

```


安裝maven

1. 下載maven

http://maven.apache.org/download.cgi

2. 運(yùn)行`rz`命令坦报,將maven安裝包存到/work/mySoft目錄下

3. 解壓库说,創(chuàng)建倉(cāng)庫(kù)目錄/work/repository

```shell

tar -zxvf apache-maven-3.8.4-bin.tar.gz

mkdir repository

```

4. 修改Maven本地倉(cāng)庫(kù)地址


5. 配置環(huán)境變量

```shell

vim /etc/profile

```

在文件下方加入以下配置

```shell

export MAVEN_HOME=/work/mySoft/apache-maven-3.8.4

export PATH=${PATH}:${MAVEN_HOME}/bin

```


使用source /etc/profile命令重新加載/etc/profile文件,使修改的內(nèi)容在當(dāng)前shell窗口中生效片择。(永久生效潜的,重啟系統(tǒng)或注銷(xiāo)用戶(hù))

執(zhí)行命令`mvn -v`, 查看是否配置成功


安裝git

1. 在Linux上是有yum安裝Git构回,非常簡(jiǎn)單夏块,只需要一行命令

```

yum -y install git

```

2. yum安裝git被安裝在`/usr/libexec/git-core`目錄下


3. `git --version`查看version版本

安裝nacos

解壓

```shell

tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz

```

進(jìn)入nacos的bin目錄,啟動(dòng)nacos

```shell

sh startup.sh -m standalone

vi ./nacos/logs/start.out可查看啟動(dòng)日志

```

啟動(dòng)之后訪問(wèn):http://192.168.40.133:8848/nacos纤掸,192.168.40.133是Nacos服務(wù)器的地址脐供,8848是Nacos的默認(rèn)端口號(hào)

如果無(wú)法訪問(wèn)頁(yè)面,則查看日志借跪,看日志報(bào)的什么錯(cuò)再進(jìn)行解決

如果日志沒(méi)有報(bào)錯(cuò)政己,卻還是無(wú)法訪問(wèn),則查看防火墻是否打開(kāi)

```shell

firewall-cmd --state掏愁,如果狀態(tài)為running歇由,則關(guān)閉防火墻

systemctl stop firewalld.service

```

關(guān)閉防火墻之后再次訪問(wèn)Nacos的地址卵牍,訪問(wèn)成功后會(huì)進(jìn)入如下頁(yè)面


初始賬號(hào)密碼是:賬號(hào):nacos; 密碼:nacos

Nacos的配置可以實(shí)時(shí)更新沦泌,更新后不需要重啟項(xiàng)目

安裝docker

使用國(guó)內(nèi) daocloud 一鍵安裝命令

```shell

curl -sSL https://get.daocloud.io/docker | sh

```

啟動(dòng)docker

```shell

systemctl start docker

```

配置鏡像加速器糊昙,配置完后重啟docker

https://help.aliyun.com/document_detail/60750.html

docker 安裝mysql

```shell

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

docker run \

--name mysql \

-v /mysql/data:/var/lib/mysql \

-p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123456 \

-d mysql:5.7 \

--character-set-server=utf8mb4 \

--collation-server=utf8mb4_general_ci \

--lower_case_table_names=1 \

--skip-name-resolve=1 \

--max_connections=1000 \

--wait_timeout=31536000 \

--interactive_timeout=31536000 \

--default-time-zone='+8:00'

```

搭建maven遠(yuǎn)程倉(cāng)庫(kù)

1. 安裝nexus

```shell

docker pull docker.io/sonatype/nexus3

mkdir -p /usr/local/nexus3/nexus-data

chown -R 200 /usr/local/nexus3/nexus-data

docker run -tid -p 8081:8081 --name nexus -e NEXUS_CONTEXT=nexus -v /usr/local/nexus3/nexus-data:/nexus-data? docker.io/sonatype/nexus3

```

2. 登錄nexus,用戶(hù)名admin谢谦,初始密碼在 `/usr/local/nexus3/nexus-data/admin.password`文件中


3. 進(jìn)入管理界面释牺,增加代理源


4. 選擇maven2(proxy)


5. 添加代理(Cache統(tǒng)一設(shè)置為200天 288000)


5.1 添加幾個(gè)常用的代理

```txt

1. aliyun

http://maven.aliyun.com/nexus/content/groups/public

2. apache_snapshot

https://repository.apache.org/content/repositories/snapshots/

3. apache_release

https://repository.apache.org/content/repositories/releases/

4. atlassian

https://maven.atlassian.com/content/repositories/atlassian-public/

5. central.maven.org

http://central.maven.org/maven2/

6. datanucleus

http://www.datanucleus.org/downloads/maven2

7. maven-central (安裝后自帶,僅需設(shè)置Cache有效期即可)

https://repo1.maven.org/maven2/

8. nexus.axiomalaska.com

http://nexus.axiomalaska.com/nexus/content/repositories/public

9. oss.sonatype.org

https://oss.sonatype.org/content/repositories/snapshots

10.pentaho

https://public.nexus.pentaho.org/content/groups/omni/

```

5.2 添加方式回挽,例如aliyun


6. 選擇Configuration > Repository, 雙擊 maven-public, 在Group區(qū)域?qū)⑻砑拥拇硪频接覀?cè)Members, 上移到maven-central的上面, 點(diǎn)擊 Save没咙。



7. setting.xml文件中找到`<servers></servers>`標(biāo)簽,在這個(gè)標(biāo)簽理配置用戶(hù)名千劈,密碼

```xml

<server>

<id>releases</id>

<username>admin</username>

<password>abc_123</password>

</server>

<server>

<id>snapshots</id>

<username>admin</username>

<password>abc_123</password>

</server>

```

8. 在項(xiàng)目的pom.xml文件中配置倉(cāng)庫(kù)地址

```xml

? <distributionManagement>

? ? <repository>

? ? ? <id>releases</id>

? ? ? <name>Nexus Release Repository</name>

? ? ? <url>http://192.168.181.138:8081/nexus/repository/maven-releases/</url>

? ? </repository>

? ? <snapshotRepository>

? ? ? <id>snapshots</id>

? ? ? <name>Nexus Snapshot Repository</name>

? ? ? <url>http://192.168.181.138:8081/nexus/repository/maven-snapshots/</url>

? ? </snapshotRepository>

? </distributionManagement>

```

snapshot和release版本的區(qū)別

? ? 在使用maven過(guò)程中祭刚,我們?cè)陂_(kāi)發(fā)階段經(jīng)常性的會(huì)有很多公共庫(kù)處于不穩(wěn)定狀態(tài),隨時(shí)需要修改并發(fā)布墙牌,可能一天就要發(fā)布一次涡驮,遇到bug時(shí),甚至一天要發(fā)布N次憔古。我們知道遮怜,maven的依賴(lài)管理是基于版本管理的,對(duì)于發(fā)布狀態(tài)的artifact鸿市,如果版本號(hào)相同,即使我們內(nèi)部的鏡像服務(wù)器上的組件比本地新即碗,maven也不會(huì)主動(dòng)下載的焰情。如果我們?cè)陂_(kāi)發(fā)階段都是基于正式發(fā)布版本來(lái)做依賴(lài)管理,那么遇到這個(gè)問(wèn)題剥懒,就需要升級(jí)組件的版本號(hào)内舟,可這樣就明顯不符合要求和實(shí)際情況了。但是初橘,如果是基于快照版本验游,那么問(wèn)題就自熱而然的解決了,而maven已經(jīng)為我們準(zhǔn)備好了這一切保檐。

? ? maven會(huì)根據(jù)模塊的版本號(hào)(pom文件中的version)中是否帶有-SNAPSHOT來(lái)判斷是快照版本還是正式版本耕蝉。

如果是快照版本:

- 那么在發(fā)布包的時(shí)候mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到快照版本庫(kù)中

- 而使用快照版本的模塊,在不更改版本號(hào)的情況下夜只,直接編譯打包時(shí)垒在,maven會(huì)自動(dòng)從鏡像服務(wù)器上下載最新的快照版本。

如果是正式發(fā)布版本:

- 那么在發(fā)布包的時(shí)候mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到正式版本庫(kù)中扔亥,

- 而使用正式版本的模塊场躯,在不更改版本號(hào)的情況下谈为,編譯打包時(shí)如果本地已經(jīng)存在該版本的模塊則不會(huì)主動(dòng)去鏡像服務(wù)器上下載。

? ? 所以踢关,我們?cè)陂_(kāi)發(fā)階段伞鲫,可以將公用庫(kù)的版本設(shè)置為快照版本,而被依賴(lài)組件則引用快照版本進(jìn)行開(kāi)發(fā)签舞,在公用庫(kù)的快照版本更新后秕脓,我們也不需要修改pom文件提示版本號(hào)來(lái)下載新的版本,直接mvn執(zhí)行相關(guān)編譯瘪菌、打包命令即可重新下載最新的快照庫(kù)了撒会,從而也方便了我們進(jìn)行開(kāi)發(fā)。

9. 點(diǎn)擊deploy师妙,將包推到maven倉(cāng)


問(wèn)題:deploy時(shí)報(bào)了401诵肛,`with status code 401`

先看看setting中配置的用戶(hù)名密碼是否正確的

如果是正確的再看看相應(yīng)的repository是否為“Allow Redeploy”,如果不是的話(huà)默穴,設(shè)置為Allow Redeploy

比如maven-release


10. 發(fā)布成功后怔檩,可看到包已在倉(cāng)庫(kù)中


安裝Jenkins

```shell

1. 下載依賴(lài)

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

2. 安裝秘鑰

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3. 安裝jenkins

yum install jenkins

```

1. jenkins相關(guān)目錄釋義:

? ? ? /usr/lib/jenkins/? ? ? ? jenkins安裝目錄,war包會(huì)放在這

? ? ? /etc/sysconfig/jenkins? ? ? ? jenkins配置文件蓄诽,“端口”薛训,“JENKINS_HOME”等都可以在這里配置。

? ? ? /var/lib/jenkins/? ? ? ? 默認(rèn)的JENKINS_HOME仑氛。

? ? ? /var/log/jenkins/jenkins.log? ? ? ? jenkins日志文件乙埃。

2. 運(yùn)行Jenkins命令

```shell

service jenkins restart

```

2. 停止運(yùn)行Jenkins

```shell

service jenkins stop

```

4. 外部訪問(wèn)Jenkins,需要關(guān)閉防火墻

5. 修改端口

```shell

vim /etc/sysconfig/jenkins

```


6. 配置jdk

```shell

vim /etc/init.d/jenkins

```


訪問(wèn):http://192.168.181.138:10062/

自動(dòng)化部署項(xiàng)目

部署spring-boot項(xiàng)目

1. 新建item锯岖,選擇freestyle project



2. 選擇git介袜,填入倉(cāng)庫(kù)地址


3. 創(chuàng)建密碼憑據(jù)


4. 構(gòu)建-->增加構(gòu)建步驟-->execute shell


5. 填寫(xiě)shell腳本

```shell

/work/mySoft/apache-maven-3.8.4/bin/mvn clean install

rm -f /work/dts-admin/dts-admin-api-0.0.1-SNAPSHOT.jar

cp /var/lib/jenkins/workspace/dts-admin/dts-admin-api/target/dts-admin-api-0.0.1-SNAPSHOT.jar /work/dts-admin/dts-admin-api-0.0.1-SNAPSHOT.jar

cd /work/dts-admin

BUILD_ID=123456

/work/dts-admin/start.sh

```


6. 在虛擬機(jī)種新建一個(gè)腳本start.sh

```shell

#!/bin/bash

export JAVA_HOME=/work/mySoft/jdk1.8.0_271

export JRE_HOME=$JAVA_HOME/jre

## service name

APP_NAME=dts-admin

SERVICE_DIR=/work/dts-admin

SERVICE_NAME=$APP_NAME

JAR_NAME=$APP_NAME*.jar

PID=$APP_NAME\.pid

cd $SERVICE_DIR

nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >null 2>&1 &

echo $! > $SERVICE_DIR/$PID

```

7. 執(zhí)行命令

```shell

chmod 777 start.sh

```


點(diǎn)擊應(yīng)用-->保存,任務(wù)創(chuàng)建完成出吹,點(diǎn)擊構(gòu)建即可實(shí)現(xiàn)自動(dòng)化部署spring-boot項(xiàng)目

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遇伞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捶牢,更是在濱河造成了極大的恐慌鸠珠,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秋麸,死亡現(xiàn)場(chǎng)離奇詭異渐排,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)竹勉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)飞盆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事吓歇∧跛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵城看,是天一觀的道長(zhǎng)女气。 經(jīng)常有香客問(wèn)我,道長(zhǎng)测柠,這世上最難降的妖魔是什么炼鞠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮轰胁,結(jié)果婚禮上谒主,老公的妹妹穿的比我還像新娘。我一直安慰自己赃阀,他們只是感情好霎肯,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著榛斯,像睡著了一般观游。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驮俗,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天懂缕,我揣著相機(jī)與錄音,去河邊找鬼王凑。 笑死搪柑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的索烹。 我是一名探鬼主播拌屏,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼术荤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起每篷,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓣戚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后焦读,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體子库,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年矗晃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仑嗅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仓技,靈堂內(nèi)的尸體忽然破棺而出鸵贬,到底是詐尸還是另有隱情,我是刑警寧澤脖捻,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布阔逼,位于F島的核電站,受9級(jí)特大地震影響地沮,放射性物質(zhì)發(fā)生泄漏嗜浮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一摩疑、第九天 我趴在偏房一處隱蔽的房頂上張望懦胞。 院中可真熱鬧座享,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)加袋。三九已至辛友,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間率寡,已是汗流浹背迫卢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冶共,地道東北人乾蛤。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像捅僵,于是被迫代替她去往敵國(guó)和親家卖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容