用PCF命令行(CLI)配置服务RabbitMQ, Redis, Service Registry, Config Server 并在项目中使用

1. 用命令行配置RabbitMQ和Redis,并在项目中使用:

先查看当前可选的服务列表:

cf marketplace

 

然后选择需要安装的服务,命令为:cf create-service 产品名称 产品计划 自己定的名称

说明:产品名称一定要和上面列表里面显示的保持一致,产品计划也要喝列表里面plans那一列的名称保持一致,不然会报错说找不到的。

命令示例: cf create-service p.rabbitmq single-node my-rabbitmq

OK,命令回车之后,会显示正在创建中… 这需要大概几分钟的时间,因为PCF要为这个服务分配服务器资源。

你可以根据提示的命令去查看当前创建状态或者稍等片刻继续操作。

查看所有服务的状态:cf services

可以看到,rabbitmq服务已经创建好了,现在可以创建Service Key(连接信息)了。

创建Service Key的命令示例:cf create-service-key my-rabbitmq my-rabbit-key

 

获取刚才创建的Service Key的Credentials 信息(连接信息)。

命令示例:cf service-key my-rabbitmq my-rabbit-key

可以看到rabbitmq的连接服务器IP,端口号,用户名,密码等信息,这些可以配置在项目里面直接使用。

 

接下来,按照刚才那种步骤,你可以试着创建一个Redis服务并拿到它的连接信息。命令规则几乎完全一样,在此就不做冗述。

cf create-service p.redis 2gb my-redis

 

 

那么在项目中如何使用RabbitMQ和Redis的服务呢,很简单,和在本地使用一样,只需在项目的配置文件里面配置一下rabbitmq 和 redis的连接信息即可,如果你是Spring Cloud或Spring Boot项目的话,请参看下面配置:

在application.yml或者响应的配置文件里面加上:

spring:

  rabbitmq:

host: 10.xx.xx.xx

port: 5672

username: xxxxxxxxxxxxxxxxxxxxxx

password: xxxxxxxxxxxxxxxxxxxxxxx

 

示例:

 

 

2. 用命令行配置service-registry,并使用

PCF中的service-registry相当于Spring Cloud里面的Eureka, 用作集群注册中心。

cf create-service p-service-registry standard my-registry

这同样需要消耗几分钟的时间:

创建好了之后,这个可以直接绑定你的应用程序了,不需要创建Service Key.

那么我们如何绑定了,在PCF的发布文件中去绑定:manifest.yml

关于这个manifest.yml的格式和配置参数,也请查看PCF官方文档。

 

也可以通过命令去绑定应用程序,具体操作见PCF官方文档:

https://docs.pivotal.io/pivotalcf/2-4/devguide/services/application-binding.html#bind

$ cf bind-service my-app mydb

Binding service mydb to my-app in org my-org / space test as me@example.com...

OK

TIP: Use 'cf push' to ensure your env variable changes take effect

 

3. 配置Config Server, 并使用

PCF官方文档:

https://docs.pivotal.io/spring-cloud-services/3-0/common/config-server/index.html

 

这个比之前的稍微麻烦一点。

首先,需要确保你有一个github环境,再github上建一个仓库专门来管理配置文件信息。

然后,配置一下SSH Key,我们来采用SSH Key的方式登录github,并获取config信息(当然也可以用username和password,但是最好用SSH Key,因为有的公司私有github仓库需要用公司账号联合登录的不一定支持用户名密码方式)。配置SSH Key的方式网上一搜一大把,这里就不多说了,找到你本地创建的私有Key (确保共有的key已经配到了github上),然后整理出下面这个文档:

{

    "git":{

        "uri":"ssh://git@github.com/spring-cloud-services-samples/demo.git",

        "privateKey":"-----BEGIN EXAMPLE RSA PRIVATE KEY-----

MIIJKQIB..."

    }

}

 

上述的SSH Key以及文档整理好了之后,就可以创建config server服务了:

cf create-service p-config-server standard my-config

依旧需要几分钟等待…

好的东西是值得等待的…

Config server的配置方式和其他又有点不一样,使用的时候可以不创建Service Key,但是要配置git访问信息:

下面这是我创建并测试成功的一个命令,请最好按这种格式去封装参数信息:

cf update-service my-config -c "{\"count\":1,\"git\":{\"privateKey\":\"-----BEGIN RSA PRIVATE KEY-----\r\nXXXX\r\n-----END RSA PRIVATE KEY-----\",\"hostKey\":\"XXX\",\"label\":\"dev\",\"hostKeyAlgorithm\":\"ecdsa-sha2-nistp256\",\"uri\":\"ssh://git@github.com/XXX.git\"}}"

 

说明:

上面的hostKey是在本地用户目录下.ssh目录下的一个叫known_hosts的文件里面找到的,请直接复制这里面的hostKey信息,并且hostKeyAlgorithm要填hostKey那一行前面指定的。

还有一个无形坑,uri那里切记是ssh协议的URI,是git@github.com哦,不要写成了git:github.com

好了 输入命令,并执行吧!

执行之后,也是需要一点时间冷却的。

 

等成功之后,可以用下面这个命令,获取访问界面(仪表盘)的URL:

cf service my-config

 

那么,项目如何使用这个config server呢,在项目发布文件manifest.yml (上面提到过)里面加入config的配置:

需要说明的是:

因为profiles.active配置的是east, 所以会从{applicationName}-east.yml文件里面去读取配置。然后刚才配置config server的时候,指定了一个label为dev, 这个表示从哪个分支去读。

综合以上,这个项目会从我们配的那个git仓库的dev分支上去读一个叫 {applicationName}-dev.yml文件, 假设应用叫demo, 那么就是从demo-dev.yml文件中读。

 

OK,这些配置搞定,赶紧部署一下项目试试吧!

部署项目的命令:

cf push –f manifest.yml

posted @ 2019-07-11 19:49  SEC.VIP_网络安全服务  阅读(238)  评论(0编辑  收藏  举报