jenkins持续集成二——spring boot集成设置

前面安装好了环境,这一篇主要讲下设置

系统管理->管理插件

image_thumb9

以下是默认安装插件之外,需要额外安装的插件。

系统管理->全局工具配置

image_thumb4

配置JDK

image_thumb1

配置git

image_thumb3

配置maven

image_thumb7

系统管理->系统设置

image_thumb11

这里主要需要对jenkins 将集成应用通过ssh部署到应用服务器的SSH 连接配置

示例如下,同时需要了解SSH免密登录相关内容。

image_thumb14

SSH免密登录

#ubuntu环境在客户机器上生成密钥对,密钥会生成在~/.ssh/目录下
ssh-keygen -t rsa

生成多机器不同密钥对免密登录配置

#配置多远程机器不同密钥的配置,在~/.ssh/ 生成config
touch config

示例配置如下

image_thumb16

将公钥拷贝到远程机器上

#ssh-copy-id [-i [identity_file]] [user@]machine
ssh-copy-id -i id_rsa_git git@127.0.0.1
#该公钥信息会记录到git 服务器的~/.ssh/authorized_keys 文件

测试

ssh git@git #or ssh git@127.0.0.1

Credentials

从git 拉取代码,使用SSH 信用连接,设置 Credentials,添加git 相关的SSH 连接认证,如下图示例:

image_thumb20

Maven 构建项目配置

新建按钮如下

image_thumb18

配置

git源

image_thumb22

构建触发

image_thumb24

10分钟构建一次

自动部署

image_thumb26

文件存档

image_thumb28

jenkins持续集成(一)-基础安装设置

jenkins  作为持续集成现在用得越来越广,以前都是公司直接配置好了用上就好,现在就按部就班从0开始弄个持续集成环境吧。


jenkins

安装

wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

启动

启动:  
sudo service jenkins start  
停止:  
sudo service jenkins stop

路径

log 路径:/var/log/jenkins/jenkins.log
jenkins的home路径:/var/lib/jenkins
端口号修改路径:sudo vi /etc/default/jenkins

初始化

通过浏览器就可以访问Jenkins了。比如我的地址:http://192.168.2.126:7777/,按照页面提示安装插件及设置管理员账户密码。

image

为了确保Jenkins的安全,将管理员的密码写入文件,需要复制到下面的文本框做验证。

/var/lib/jenkins/secrets/initialAdminPassword

然后,到了选择插件的界面,通过附加功能扩展Jenkins可以支持许多不同的需求。

image

image

image

image

git

安装

安装
sudo apt-get install git
#添加用户
useradd git
#配置SSH登录
cd ~
mkdir .ssh 
cd .ssh
touch authorized_keys
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
#授权
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

使用

#新建目录
mkdir   zwr
#新建初始化仓库
git init --bare test.git

Maven

安装

方式一

#下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
#解压
tar -xzf apache-maven-3.3.9-bin.tar.gz
#移动
mv apache-maven-3.3.9  /usr/share/maven
#设置环境变量
vim /etc/profile
#环境变量内容
M2_HOME=/usr/share/maven
CLASSPATH=$CLASSPATH:$M2_HOME/lib
PATH=$PATH:$M2_HOME/bin
export   PATH    CLASSPATH   M2_HOME
#生效
source /etc/profile

方式二

apt-get install -y maven
mvn -version

fabric简介

1.设计目的

2.基本架构流程

3.基本组成介绍

4.接口

5.示例

设计目的范围

是一个企业级联盟链,主要考虑商业应用对安全、隐私、监管、审计、性能的需求,提高准入门槛,增加了安全、隐私、可监管审计等商业特性,是区块链技术在商业领域的应用探索。

基本框架流程

image

 

 

逻辑概念:客户端,会员服务,peer节点(背书节点,确认节点,非交易节点),共识节点

CA服务:

上图中最左边是证书服务系统,主要提供会员注册和证书颁发功能,Fabric系统的参与方都必须经过授权,比如Orderer、Peer、Client等都需要拥有受信任的证书。证书一方面用于系统接入,另一方面用于交易签名。所以统一的证书服务非常重要。会员证书又分为注册证书和交易证书,注册证书与会员信息关联在一起,用于标识会员的身份,在必要的时候,还可以支持监管和审计;交易证书用于交易签名,之所以交易要用不同的证书,是为了避免会员的个人信息和交易信息被泄露,比如交易内容或者多笔交易之间的关联关系等,另外交易证书可以申请多份,甚至可以为每一笔交易申请一份交易证书。

client:经过CA认证的业务应用客户端

PEER:

背书节点:使用chaincode预交易,并应用背书策略对交易签名背书。

确认节点:从共识节点接收到块后,对块数据进行校验,然后写入区块中,交易状态信息记录入状态数据库,交易可能失败,对块交易记录。(特别是同一资源的高并发处理,及其容易交易失败,虽然交易数据得到了共识,但是业务的强一致性还是会因为分布式后没法得到保障)

共识节点:对交易进行排序共识,完成后推送到相应的节点

共识网络:共识节点组成共识网络

多链:通过建立不同通道,将数据隔离,加入通道的节点与共识节点共同组成一个链,共识网络对不同通道生成不同的块。

基本组件及特点

组件化,可扩展,可拔插

CA服务:支持PKI系列的证书

共识网络:支持KAFKA,PBFT,SBFT

账本:区块文件 & 状态库 :leveldb,couchdb

链码(合约):可用go,java,nodejs编写,运行在docker容器中,合约就两个接口,init+invoke,用户合约不能创建新合约(由系统生命周期合约统一管理)。0.6版本不是跨链调用合约,现在1.0版本没试过。

底层通信:grpc+pb

接口

0.6版本可直接用restful进行接口调试

1.0 版本我们看流程,客户端需要两段式的递交信息,所以目前是不支持使用postman这种http.restful 进行接口调试,只能应用SDK或封装好的client中进行。

示例

部署示例:理论上支持全平台,但是还是直接在ubuntu上会比较轻松,需要golang,docker,docker-compase,

开发示例:之前都在windows+vagant 虚拟化开发环境,

安装测试示例:

物理架构节点:

1cli+4peers+1orderer

逻辑

2个组织,每个组织2个节点,加入一个通道

步骤

组网:

1.编写配置文件,使用cryptogen 生成相应证书。

2.建立通道,将节点加入通道

在网络上测试:

1.创建合约,并在特定链上实例化一个合约

2.可进行交易

测试需要在cli上操作:

创建合约:

peer chaincode install -n zwrcc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/zwr

实例化合约:

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n zwrcc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","zwr", "1000", "mmm","2000"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

查询:

peer chaincode query -C mychannel -n zwrcc -c '{"Args":["query","zwr"]}'

交易:

peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem  -C mychannel -n zwrcc -c '{"Args":["invoke","mmm","zwr","100"]}'