写在前面,jenkis不建议用docker安装,因为会涉及到很多环境参数,很麻烦,以及像gogs这种开源git服务器,最好老老实实传统
安装一下,因为这种软件基本是一次性的,不会到处安装,不像很多服务或者类似做政府项目的,一套代码需要部署到各个地市。
那么用docker就非常方便了。
另外linux下rz命令很好用。不是默认支持的,请自行百度。
众所周知,java生态中比较重要的就是软件的版本。因此了解各个软件的版本非常重要。
而docker需要在linux系统上安装,因此了解当前操作系统的版本很重要。
若是centos7或者以上,最好。若是centos6.5那么最好升级内核。然后安装docker1.8及以上。
Docker只支持64-bit的内核为3.10以上的Linux系统,不升级内核会特别卡,可以通过下面命令查看当前系统内核版本
uname -r
以及查看当前linux版本 cat /etc/issue linux版本在6.5没关系,但是一定要保证内核版本在3.10以上。
# 查看当前版本:
cat /etc/issue
# 导入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo到CentOS-6.8中
rpm -ivh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
# 安装**kernel-lt(lt=long-term)**
yum --enablerepo=elrepo-kernel install kernel-lt -y
# 或者安装kernel-ml(ml=mainline)
yum --enablerepo=elrepo-kernel install kernel-ml -y
# 编辑/etc/grub.conf文件,修改Grub引导顺序
# 确认刚安装好的内核在哪个位置,然后设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0
# 重启,查看内核版本号
reboot
uname -r
安装docker
或者参考下面这个
https://www.cnblogs.com/tymagic/p/10794477.html
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
另外不建议安装这个版本的docker 只不过我开始不知道被很多版本绕晕了 已经骑虎难下。
建议升级内核可以参考上面 安装docker网上随便找篇博客,必须是docker-ce版本。也就是说一旦你看到的博客介绍的不是
docker-ce那么就可以不用看了,因为会缺失很多特性。
docker-io docker-engine docker-ce docker-ee 这么多版本你们分清了吗。
# 1、查看安装过的docker:
yum list installed | grep docker
docker.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-client.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-common.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
# 2、卸载docker:
sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64
# 3、删除容器镜像:
sudo rm -rf /var/lib/docker
# 4、 重新安装docker
sudo yum install docker-ce
若是安装的是docker1.7,docker1.7不支持在镜像容器向宿主机cp文件,只支持宿主机向镜像容器cp文件。
即docker cp命令在1.7版本上是单向的。建议有条件尽量安装docker1.8以上。为了解决docker1.7不能向宿主机传输文件的问题。
我暂时只能想到的是linux scp命令并且通过建立宿主机和镜像容器免ssh登陆。这样就不用输密码了。
Linux服务器之间建立信任关系,ssh免密码登录。
https://blog.youkuaiyun.com/chichuduxing/article/details/68491134
ssh root@IP /root/test.shell 这样就能在镜像容器内执行宿主机 root目录下的shell脚本。
也能用scp命令从宿主机下载文件
scp root@111.229.237.124:/root/test.shell /root/ 下载宿主机的test.shell脚本到 docker容器内
docker
service docker stop 停止docker
service docker start 启动docker
记得将jenkins安装publish over插件。参考如下博客。
Jenkins入门教程之安装Publish over SSH插件并配置(六)用于自动部署Spring Boot应用
https://blog.youkuaiyun.com/zjh_746140129/article/details/80904789
另外常用docker命令 参考如下博客
https://www.cnblogs.com/sitoi/p/10971356.html
centos忘记mysql密码方法 参考如下博客
https://blog.youkuaiyun.com/Swust_Zeng_zhuo_K/article/details/81989040
有的时候会缺失jar包,需要自己手动把jar包打到仓库里面
cd /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.1/bin
./mvn install:install-file -Dfile=/root/ojdbc6-12.1.0.1-atlassian-hosted.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1-atlassian-hosted -Dpackaging=jar
./mvn install:install-file -Dfile=/root/sqljdbc4-4.0.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
mvn install:install-file -Dfile=/root/jenkins/alipay-sdk-java-20161215.jar -DgroupId=com.alipay -DartifactId=alipay-sdk-java -Dversion=20161215 -Dpackaging=jar
mvn install:install-file -Dfile=/root/jenkins/alipay-trade-sdk-20161215.jar -DgroupId=com.alipay -DartifactId=alipay-trade-sdk -Dversion=20161215 -Dpackaging=jar
遇到的问题和踩过的坑如下
网上搜索jenkins自动化部署,能搜索很多。流程都差不多,不在此重复叙述。
想叙述一个重要的点,就是linux是有用户这么一个说法的,每安装一个软件就会默认给这个软件创建一个用户,
比如你安装electsearch就会创建一个electsearch用户,那么你安装一个jenkins时候就会创建一个jenkins用户
cat /etc/passwd 查看所有用户列表
就会看到很多软件都会有一个和自己软件名称一样的用户。
那么就需要把这个用户加入到root用户组中使得其有root权限,这样做的目的是为了,该软件有对服务器包括jdk maven
加入到用户组具体百度一下 因为一旦弄反了 就会出大事 因为相当于把root加入到jenkins后 那么系统上很多服务都起不来了 切记
不能弄反!!!
有使用权限,如果不这样做,就会报找不到的错误。
gpasswd -a jenkins root
vi /etc/sysconfig/jenkins
service jenkins stop
service jenkins start
还需要将java路径添加到jenkins的初始化文件中,在vi /etc/init.d/jenkins 中
其实安装一个软件最好 的方式 是安装完以后看它到底生成了多少个目录 每个目录里面大致看下 做到心中有数
即了解一下它的架构,这样即使在网上搜索,也能做到有的放矢。不会漫无目的。
参考下面网址
http://www.bubuko.com/infodetail-3319816.html
https://blog.youkuaiyun.com/huangchao064/article/details/73616320
需要安装的插件
Maven Integration
Publish Over SSH
Git Parameter
参考以下网址
多环境发布指的是多服务器发布 https://www.jianshu.com/p/6288703532cf
https://blog.youkuaiyun.com/u012547633/article/details/98505231
https://blog.youkuaiyun.com/weixin_43742184/article/details/100513733
jenkins多分支选择 https://www.cnblogs.com/peng-lan/p/12001977.html
centos7防火墙配置 https://www.cnblogs.com/xxoome/p/7115614.html
多环境 多分支git https://www.cnblogs.com/jiangds/p/10844853.html
jenkins替换镜像加速 https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html
清华镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
centos7安装jenkins rpm方式 https://www.cnblogs.com/li-zhi-long/p/12026499.html
jenkins 各种镜像地址 http://mirrors.jenkins-ci.org/status.html
jenkins 系列教程 https://blog.youkuaiyun.com/zjh_746140129/category_9276512.html
(1) /usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。 (2) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。 (3) /var/lib/jenkins/:默认的JENKINS_HOME。 (4) /var/log/jenkins/jenkins.log:Jenkins日志文件。