Jenkins迁移及日常操作的一点总结

之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:
1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中。如jenkins使用root用户启动,则主目录为/root/.jenkins

[[email protected] ~]# ll -d /root/.jenkins/
drwxr-x--- 14 root root 4096 Dec 18 15:22 /root/.jenkins/

2)可以在系统环境变量里手动设置jenkins的主目录,这样启动jenkins后,jenkins数据就会写入到手动设置的主目录里。

root用户可以在/etc/profile文件里设置
[[email protected] ~]# vim /etc/profile
......
JENKINS_HOME="/data/tomcat8.5/webapps/jenkins"
export JENKINS_HOME

[[email protected] ~]# source /etc/profile

===========================================================
如果是非root用户,就在用户家目录的.bashrc文件里设置
[[email protected] ~]$ vim .bashrc
......
JENKINS_HOME="/data/tomcat8.5/webapps/jenkins"
export JENKINS_HOME

[[email protected] ~]$ source .bashrc
[[email protected] ~]$ echo $JENKINS_HOME
/data/tomcat8.5/webapps/jenkins
[[email protected] ~]$ env
.......
JENKINS_HOME=/data/tomcat8.5/webapps/jenkins

3)jenkins迁移

一、如果迁移前没有指定jenkins主目录,则迁移步骤为:
0)先关闭老服务器的tomcat程序。jenkins程序关闭最好是直接kill掉jenkins的tomcat程序pid。
1)将老服务器的jenkins的tomcat程序下的webapps里的jenkins和jenkins.war拷贝到新服务器的jenkins的tomcat的webapps目录下(最好是直接拷贝tomcat整个程序目录)
2)将.jenkins默认主目录下的users、workspace、plugins目录下的数据文件拷贝到新服务器的jenkins的tomcat的webapps/jenkins的对应目录下。
3)最后重启新服务器jenkins的tomcat程序

[[email protected] ~]# lsof -i:8080
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
bundle   13481  git   15u  IPv4 2839661      0t0  TCP localhost:webcache (LISTEN)
[[email protected] ~]# kill -9 13481
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /data/tomcat8.5 [email protected]:/data/
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /root/.jenkins/users [email protected]:/data/tomcat8/webapps/users
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /root/.jenkins/plugins [email protected]:/data/tomcat8/webapps/plugins
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /root/.jenkins/workspace [email protected]:/data/tomcat8/webapps/users

然后对比下上面拷贝的三个目录users、workspace、plugins下的文件是否完整的拷贝过来,最后重启新服务器jenkins的tomcat程序
[[email protected] ~]$ /data/tomcat8.5/bin/startup.sh
[[email protected] ~]$ lsof -i:8080
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    101037  app   46u  IPv6 498942      0t0  TCP *:webcache (LISTEN)

二、如果迁移前已经手动指定了jenkins主目录,比如指定到tomcat安装目录的webapps/jenkins,则只需要将tomcat整个安装目录拷贝到新服务器上,然后启动jenkins即可!
[[email protected] ~]# lsof -i:8080
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
bundle   13481  git   15u  IPv4 2839661      0t0  TCP localhost:webcache (LISTEN)
[[email protected] ~]# kill -9 13481
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /data/tomcat8.5 [email protected]:/data/
[[email protected] ~]$ /data/tomcat8.5/bin/startup.sh
[[email protected] ~]$ lsof -i:8080
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    101037  app   46u  IPv6 498942      0t0  TCP *:webcache (LISTEN)

迁移完成后,登陆新服务器的jenkins界面,对比下迁移前后jenkins界面里创建的用户、工程、插件是否完整。

4)通过ssh方式下载gitlab代码到jenkins本机

一般来说,会在jenkins界面里创建工程,在工程里配置gitlab的地址,将gitlab代码下载到jenkins本机,然后通过脚本自动发版。
安全考虑,通过ssh方式下载gitlab代码。这就需要将jenkins本机的id_rsa.pub公钥上传到gitlab里。
1)如果jenkins程序通过root用户启动,则需要将root用户下的id_rsa.pub公钥上传到gitlab的SSH Keys里。
2)如果jenkins程序通过非root用户启动,则需要将非root用户的id_rsa.pub公钥上传到gitlab的SSH Keys里。

比如jenkins程序是通过app用户启动的
[[email protected] ~]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw/I9657ZRmducrkbagPfptLwRaCmJIIQIcQ3VljBLBlwyNFBYg6KfiktMB4KHlvu4WCrGpDjVtWf7gQy
Ey+iJNsL7TyiIZdg0RRGpssu93w6IhgoHtRZni/775MrdjLQpi7hhB6wiX+eCfU7duqXT+arnEUonAF+27HegVbXuqz+oeDS/1QBzKsOoMg0K4nA7Btl
GNIn1ljvvQzyHxIJevWM0UUhFl8lv9+RCcT0cyHmjSrw/9+gr4AYZmYaqlVmCWHmwuAixx7bt3Mh3ri+BK385qAUxaVVsw3kg/vHbJEg+JYn/Xm4pdnw
j+CLn6OpQAMZm+bEx12Iwd3gazBy+Q== [email protected]

5)非root用户启动jenkins的tomcat程序

需要记住的一个细节:
在linux系统下,只有root用户才可以使用1024以下的端口号,非root用户只能启动1024以上的端口。
所有如果使用非root用户启动jenkins,则端口必须配置成大于1024的,比如采用默认的8080端口,如果配置成80端口,则启动失败!

6)当ssh是非标准的22端口时,进行git clone下载gitlab代码

如上,将jenkins本机的id_rsa.pub公钥拷贝到gitlab的SSH Keys里。

1)如果jenkins机器和gitlab机器ssh都采用默认的22端口,则就可以直接git clone下载git代码了。
[[email protected] ~]$ mkdir /data/git_data/
[[email protected] ~]$ cd /data/git_data/
[[email protected] git_data]$ git init .
Reinitialized existing Git repository in /data/git_data/.git/

[[email protected] git_data]$ git clone [email protected]:fanglianchao/dbops.git
Initialized empty Git repository in /data/git_data/dbops/.git/
Warning: Permanently added ‘172.16.50.25‘ (RSA) to the list of known hosts.
remote: Counting objects: 1224, done.
remote: Compressing objects: 100% (812/812), done.
remote: Total 1224 (delta 379), reused 1220 (delta 377)
Receiving objects: 100% (1224/1224), 9.50 MiB, done.
Resolving deltas: 100% (379/379), done.

[[email protected] git_data]$ ls
dbops

====================================================================
2)如果jenkins机器和gitlab机器ssh采用的端口不一致,这就需要在jenkins本机的.ssh目录下手动创建config文件,在config文件中指定
连接gitlab时的信息。

例如:jenkins本机的ssh端口是6666,jenkins本机(172.16.50.25)的ssh端口是22,则在jenkins本机的操作如下:
[[email protected] ~]$ mkdir /data/git_data/
[[email protected] ~]$ cd /data/git_data/
[[email protected] git_data]$ git init .
Reinitialized existing Git repository in /data/git_data/.git/

[[email protected] ~]$ cat ~/.ssh/config
Host "172.16.50.25"
Port 22

注意:config文件必须是600权限
[[email protected] git_data]$ sudo chmod 600 ~/.ssh/config
[[email protected] git_data]$ ll ~/.ssh/config
-rw-------. 1 app app 28 Dec 20 23:26 /home/app/.ssh/config

然后就可以正常git clone下载代码了
[[email protected] git_data]$ git clone [email protected]:qwfss/qwfss.git
Initialized empty Git repository in /data/git_data/qwfss/.git/
remote: Counting objects: 110, done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 110 (delta 23), reused 0 (delta 0)
Receiving objects: 100% (110/110), 19.99 KiB, done.
Resolving deltas: 100% (23/23), done.
[[email protected] git_data]$ ls
qwfss

7)下载gitlab上非master分支代码

比如将gitlab上的[email protected]:qwfss/qwfss.git下develop分支代码下载到jenkins本机,操作如下:

[[email protected] git_data]$ git clone [email protected]:qwfss/qwfss.git
Initialized empty Git repository in /data/git_data/qwfss/.git/
remote: Counting objects: 110, done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 110 (delta 23), reused 0 (delta 0)
Receiving objects: 100% (110/110), 19.99 KiB, done.
Resolving deltas: 100% (23/23), done.

[[email protected] git_data]$ ls
qwfss
[[email protected] git_data]$ cd qwfss/
[[email protected] qwfss]$ 

查看分支详细情况 (推荐这种方式)
[[email protected] qwfss]$ git branch
* develop
[[email protected] qwfss]$ git branch -av
* develop                29e5e1f fix(fss): 测试环境配置文件同步
  remotes/origin/HEAD    -> origin/develop
  remotes/origin/develop 29e5e1f fix(fss): 测试环境配置文件同步

切换到develop分支下
[[email protected] qwfss]$ git checkout -b develop origin/develop
fatal: git checkout: branch develop already exists
====================================================================
或者
[[email protected] qwfss]$ git checkout -b testapp remotes/origin/develop
====================================================================

[[email protected] qwfss]$ git branch
* develop
[[email protected] qwfss]$ git branch -av
* develop                29e5e1f fix(fss): 测试环境配置文件同步
  remotes/origin/HEAD    -> origin/develop
  remotes/origin/develop 29e5e1f fix(fss): 测试环境配置文件同步

=====================================================================
git分支的日常操作可以参考:http://www.cnblogs.com/kevingrace/p/5690820.html

8)jenkins备机环境

部署jenkins备机时,只需要定期将master机器上jenkins主目录数据拷贝到本机上即可。

比如:
jenkins master:10.0.8.60   jenkins01
jenkins slave:10.0.8.61    jenkins02

两台机器的jenkins主目录都是:/data/tomcat8.5/webapps/jenkins
[[email protected] ~]$ vim /etc/profile
JENKINS_HOME="/data/tomcat8.5/webapps/jenkins"
export JENKINS_HOME
[[email protected] ~]$ source /etc/profile

那么只需要定期将master机器10.0.8.60上的/data/tomcat8.5/webapps/jenkins目录下的文件拷贝到10.0.8.61机器/data/tomcat8.5/webapps/jenkins下即可!
时间: 2024-08-28 22:03:34

Jenkins迁移及日常操作的一点总结的相关文章

ORACLE日常操作手册

转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语句写法,适合初学者. 因是很久之前写的,文章中可能会存在不准确的地方,希望指正. ORACLE日常操作手册 目录 一.......数据库的启动和关闭...4 1.   数据库的正常启动步骤...4 2.   数据库的正常关闭步骤...4 3.   几种关闭数据库方法对比...4 4.   数据库的启

CentOS7下jenkins迁移和升级以及解决磁盘空间满的问题下

jenkins迁移和升级 查看jenkins安装包以及路径[[email protected] ~]# rpm -ql jenkins/etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/sbin/rcjenkins/var/cache/jenkins/var/lib/jenkins/var/log/jenkins 首先解决

git的日常操作

1) 安装Git 2) 配置用户信息 git config --global user.name "username" git config --global user.email "email" git config --global color.ui true 3) 生成公钥对 ssh-keygen –t rsa 在用户的主目录下的.ssh/中,把id_rsa.pub变为username.pub发给管理员 4) clone远程的仓库 git clone [ema

oracle 10g 物理Dataguard 日常操作管理(一)

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. oracle 10g 物理Dataguard 日常操作管理(一)

Oracle 10g 物理Dataguard日常操作维护(二)

3.3进程日志的监控操作 3.3.1 查看备库进程状态 SQL>select process,client_process,sequence#,status from v$managed_standby PROCESS   CLIENT_P  SEQUENCE#    STATUS ---------       --------     ---------- -      ----------- ARCH      ARCH            153       CLOSING ARCH 

Jenkins+maven+svn+tomcat操作手册(三)

上接:Jenkins+maven+svn+tomcat操作手册(二) 部署完成之后,我们来进行测试 1.5 测试 注意:在构建之前要启动tomcat,因为jenkins需要通过网络访问tomcat,然后把war文件自动部署到tomcat的webapps目录下. 下面开始构建,可以等着自动去build,也可以手工去触发一次,手工触发如下图所示的操作: 构建完成之后,点击Name下边的连接: 然后点击Console Output可以查看控制台输出的日志,查看报错的原因: 通过错误原因,我们可以知道,

Jenkins+maven+svn+tomcat操作手册(一)

1.1 概述 在企业开发中最常用的build工具是maven,因此绝大多数项目都是采用maven来进行开发的.在项目开发过程中,经常需要做的事情就是项目的编译.打包和发布等这些重复性的事情.如何做到自动化的处理这些繁琐与无聊的工作,就是本文需要解决的问题. 解决的方案就是使用jenkins这个工具来帮助我们. 1.2 准备条件 前提是电脑上已经具备java开发的环境:jdk+eclipse(或MyEclipse/netbeans等)+tomcat+svn. 我本机的环境: System:win7

Jenkins迁移job

说明:从一个Jenkins服务器A将现有job迁移到另外一个Jenkins服务器B. 方法:You can copy or move build jobs between instances of projects simply enough by copying or moving the build job directories to the new Jenkins instance. 具体步骤如下: 1.首先确认Jenkins的job存放目录. 以管理员账号登录Jenkins,点击"系统

Oracle12C—用户概要文件profile日常操作

在Oracle12C中,的用户概要文件还是增加了很多东西的,比较实用,功能更加强大,下面列举下日常经常的操作内容: 1.在CDB中查询数据库中有多少个profile: SQL> select distinct profile from dba_profiles; PROFILE -------------------------------------------------------------------------------- ORA_STIG_PROFILE DEFAULT 2.查看