ubuntu14.04 spring cloud config server + gradle搭建


Server端:
在eclipse上,創建Java Project項目。自帶的src包刪掉手動建文件夾。基礎的目錄文件都創建上

|--ZSpringCloud
|--build.gradle
|----src
|------main
|--------java
|--------resources

配置build.gradle文件:

buildscript {
  repositories {
    mavenLocal()
    mavenCentral()
  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE")
    classpath("org.springframework:springloaded:1.2.0.RELEASE")
    classpath("nz.org.geonet:gradle-build-version-plugin:1.0.4")
    classpath("io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE")
  }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'io.spring.dependency-management'

jar {
  baseName = 'spring-cloud-service'
  version =  '0.0.1'
}

repositories {
  maven { url "https://repo.spring.io/libs-milestone" }
mavenLocal() mavenCentral() } dependencyManagement { imports { mavenBom
'org.springframework.cloud:spring-cloud-netflix:1.2.0.M1' mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Camden.SR2' } } sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile("org.springframework.cloud:spring-cloud-starter-parent:Brixton.SR4") compile("org.springframework.boot:spring-boot-starter-security") compile("org.springframework.cloud:spring-cloud-config-server") compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-actuator") }

當時報了很多錯,從晚上找了很多東西,不記得哪個是解決問題的了,所有的依賴都粘上了應該有沒用的。
現在已經有了空文件夾,和一個寫好的build.gradle文件,打開一個終端進入ZSpringCloud目錄。

gradle eclipse

eclipse調成Spring的視圖看的更舒服寫。執行完成后這個樣子(現在還沒有build文件夾),確保項目沒有一個大感嘆號。

在src/main/java里創建main類(Application名字隨便起),先建個空的。

public class Application {
  public static void main(String[] args) {
  }
}

現在有程序入口,在終端執行

gradle build
gradle eclipse

確保執行成功,中間應該不會出錯了,出錯搜一下。
修改Application類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableAutoConfiguration
@EnableConfigServer
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

在src/main/resources里創建兩個文件,application.properties和bootstarp.properties

#<application.properties>
server.port=8888             #Server跑的端口 security.basic.enabled=false      #這兩個spring驗證的,不加這個兩個會報一個
management.security.enabled=false   #Spring的安全的什么錯誤,應該能解決,但是現在先不管。如果不加訪問的時候需要用戶名和密碼,這個用戶和密碼不知道在哪
#<bootstrap.properties>
spring.cloud.config.server.git.uri=git@192.168.1.6:fzk/SpringCloudTest.git    #是從哪個地方獲取配置文件,ssh路徑的跑通了,http待研究 #spring.cloud.config.server.git.uri=http://192.168.1.6/root/SpringCloudTest.git spring.cloud.config.server.git.searchPaths=repo                    #這個是進入上面的路徑后,從哪個文件夾搜索文件 #spring.application.name=configserver                           #spring.application.label=master                             #label名,分支名,如果寫了,以后在獲取的時候需要加上{label}

現在就已經能啟動項目了,先啟動一下看看哪里報錯了。沒報錯先放着,還有一大堆服務器的東西需要配置。

我自己在另外一個虛擬機上搭了一個gitlab,這個可以不用自己搭,隨便找個gitlab庫能放代碼就可以了。如果自己搭了最好設成靜態ip。(虛擬機ip:192.168.1.6)

在gitlab上建一個存配置文件的項目<SpringCloudTest>,在本地建一個SpringCloudTest的文件夾,在里面建一個repo文件夾,repo里建一個fzk-beta.properties文件
|SpringCloudTest
|--repo
|----fzk-beta.properties

把這個項目推上gitlab建的項目上,從本地文件夾push的方法在gitlab剪完項目后最下面的那塊告訴怎么弄了。
gitlab剪完項目后點擊項目名就看見兩個地址,ssh和http,就是在Server端 bootstrap.properties的 spring.cloud.config.server.git.uri 配置的路徑。
現在項目已經建完了,開始服務器的配置。現在有兩個服務器,一個是跑Server的A,一個gitlab的B。
在A上,用什么用戶跑這個程序就用什么用戶生成一對秘鑰,我全是用普通用戶跑的。在A上執行

ssh-keygen -t rsa

在用戶的~/.ssh/ 目錄下會生成一對秘鑰,id_rsa    id_rsa.pub。把id_rsa.pub的內容復制到gitlab項目的Deploy Keys中
Deploy Keys的位置在:在瀏覽器上找到你的那個項目,右上角有個一看就是設置的按鈕,點開就能找到Deploy Keys ,點擊進入title就是隨便起的名,下面大的文本框里粘貼上剛才從公鑰中復制的內容。確保最下面秘鑰列表中剛才弄的那個公鑰是enable的。默認就是。

在A上通過ssh 鏈接一下gitlab的服務器,保證A上能識別這個ip。問是不是永久儲存在knowhosts中,yes。

ssh root@192.168.1.6

如果現在就開始訪問,還是不成功,說什么不識別B的ip或者秘鑰不對之類的錯誤。
在A上進入 ~/.ssh/  目錄,vim config。把下面內容復制上,改一下。

 

Host 192.168.1.6                #B的域名或ip
RSAAuthentication yes              #是否公鑰驗證
StrictHostKeyChecking no            #看這個意思應該是什么嚴格的驗證之類的
IdentityFile /home/fzk/.ssh/id_rsa      #通過公鑰驗證的私鑰的位置
User fzk                     #在gitlab上注冊的用戶名,登陸的時候的那個

 

好,現在就已經全部完事了。
在瀏覽器上輸入:
http://localhost:8888/fzk/beta

{"name":"fzk","profiles":["beta"],"label":"master","version":"ebcf17eac0699644200aca3b8b0d1a23563ce242","state":null,"propertySources":[{"name":"git@192.168.1.6:fzk/SpringCloudTest.git/repo/fzk-beta.properties","source":{"server.port":"8013","fzk.nick":"badboy"}}]}

http://localhost:8888/fzk-beta.properties

fzk.nick: badboy
server.port: 8013
訪問格式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM