需要查看秘钥,
然后在 **.16.200.22和**.16.200.28服务器的目录下面将Jenkins秘钥放到~/.ssh/authorized_keys文件里。
3:Jenkins自动化部署到多台服务器脚本
library 'lib-base@master'
def map = [:]
//######传参########
map.put('GIT_URL','http://172.16.0.1/FN-PM0091/cdd.git')
map.put('GIT_BRANCH','master')
map.put('GIT_CRED_ID','jenkins')
def archivelist=[]
archivelist.add('job-excutor/target/cdd1.jar')
map.put('ARCHIVE_FILE',archivelist)
// skywalking 服务目录
def SKYWALKING_DIR = '/usr/local/apps/apache-skywalking-apm-bin-es7'
// skywalking oap 服务地址
def SKYWALKING_OAP_IP = '172.16.200.54'
def SKYWALKING_OAP_PORT = 11800
def deploylist=[]
deploylist.add("runjar -f 'cdd-service/target/cdd1.jar' -v '/data/cddm' -j '-Xms512m -Xmx512m' -h **.16.200.28")
deploylist.add("runjar -f 'report-executor/target/cdd1.jar' -v '/data/cddm' -j '-Dnacos.logging.default.config.enabled=false -Xms512m -Xmx512m' -h **.16.200.22")
map.put('DEPLOY_RUN',deploylist)
//################
DockerBuild("maven",map)
jenkins要想在远程服务器执行命令,发送文件等操作,必然要处理jenkins与远程机的免交互问题。下面如何让jenkins与目标主机实现免交互。
系统管理-- 插件安装--搜索ssh --安装 Publish Over SSH
安装完成后,在jenkins端生成秘钥对(公钥id_rsa.pub 私钥id_rsa)
输入一次密码,以后就免密了。输入完可以用ssh 登陆试一下。
我们以最简单的一个例子来演示,部署一个Html页面到远程服务器的nginx网站目录下,实现页面上线。
首先,刚才jenkins配置ssh插件,注意填写远程服务器信息的那里的remote directory这个地方指的发送到远程服务器的哪个目录下。
在job配置中
上图的配置就是,将jenkins上的项目文件init.html发送到远端主机192.168.1.112的/var/www/html下
保存,退出。
远端主机的nginx配置:
点击构建。
结果:部署成功
例子比较简单,后期会更新java的部署过程。
1 切换成root用户
2 生成公钥 这里注意会生成两份密钥 .pub为公 另一个为私
3 查看公钥
4 把公钥放入git
5 检验权限
6 打开复制私钥
7 进入Jenkins 添加凭据,类型 SSH Username with private key
在下方密钥区域 粘贴 私钥
8 在工程下面的密钥区域选择刚生成的
执行中如果出现权限不足 或者路径不对
1 路径不对 可以查看本地路径是否存在脚本 如果路径配制成环境变量 前面需要加$ 如$SHELLPATH 直接输入路径则不需要加任何符号 如 /media/shell/**.sh
2 出现权限错误 你需要让jenkins使用root用户操作如下 以下用ubuntu举例
文件中
JENKINS_USER=$NAME
JENKINS_GROUP=$NAME
改称
JENKINS_USER=root
JENKINS_GROUP=root
修改目录权限
cd /var/lib/chown -R root:root ./jenkins
重启jenkins 不同版本重启方式不同 自行百度
systemctl restart jenkins
编译服务器mount到jenkins本机 利用了NFS
更新系统软件包
安装NFSServer
清除目录所有权限限制
先打开 exports 里面定义了NFS服务器访问权限
设置访问权限
/mnt/nfs_share 是共享目录路径
rw 设置可以读写
sync 需要先将更改写入磁盘 然后才能应用更改
no_root_squash / no_subtree_check 消除子树检查
1) 全子网可访问
2) 单独网络可访问
中间ip换成本机ip 如192.168.0.1
打开 然后查看状态
在Ubuntu和Debian上安装NFS客户端:
在CentOS和Fedora上安装NFS客户端:
ip改成本机IP即可
或者直接修改配置文件
1) 在NFS服务器的共享文件夹中创建个文件
2) 在NFS客户端中查看文件是否存在
ip换成本机ip
查看路径是否正确即可
把缺少的依赖库先编译一遍
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)