【Kubernetes】k8s的devops功能说明和devops搭建配置详细说明

45f229198c7d: Pull complete

Digest: sha256:e5d73a0ebc3d80fec2130993c550b9b178ae7c7971c255509e8c9feee4c0bd6b

Status: Downloaded newer image for beginor/gitlab-ce:latest

docker.io/beginor/gitlab-ce:latest

[root@ccx ~]#

  • 导入镜像到客户机

[root@ciserver ~]# docker load -i gitlab-ce.tar

c8aa3ff3c3d3: Loading layer 117MB/117MB

82718dbf791d: Loading layer 15.87kB/15.87kB

3a0404adc8bd: Loading layer 14.85kB/14.85kB

cd7b4cc1c2dd: Loading layer 5.632kB/5.632kB

bf3d982208f5: Loading layer 3.072kB/3.072kB

3cb57942e900: Loading layer 75.85MB/75.85MB

fec139a70fd9: Loading layer 2.048kB/2.048kB

fcfdc7d11c7b: Loading layer 2.048kB/2.048kB

634a9b449438: Loading layer 2.048kB/2.048kB

aa3fb55f308c: Loading layer 15.87kB/15.87kB

bd9f0bd5757b: Loading layer 1.375GB/1.375GB

5cef898093ce: Loading layer 2.473MB/2.473MB

Loaded image: beginor/gitlab-ce:latest

[root@ciserver ~]# docker images | grep gitlab

beginor/gitlab-ce latest 5595d4ff803e 3 years ago 1.5GB

[root@ciserver ~]#

  • 部署bit容器

代码都是基本知识的代码,就不做解释了。

[root@ciserver ~]# mkdir -p /data/gitlab/etc /data/gitlab/log /data/gitlab/data

[root@ciserver ~]# chmod 777 /data/gitlab/etc /data/gitlab/log /data/gitlab/data

[root@ciserver ~]#

[root@ciserver ~]# docker run -dit --name=gitlab --restart=always -p 8443:443 -p 80:80 -p 222:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab --privileged=true beginor/gitlab-ce

9c498bea946e8ef18c7ac96692cf9f0403afe4714c2cf3f47109868d8cf14c8c

[root@ciserver ~]#

可以看到gitlab和registry的状态都是up的

[root@ciserver ~]# docker ps | head -n3

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

9c498bea946e beginor/gitlab-ce “/assets/wrapper” About a minute ago Up About a minute (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp gitlab

98fbe2c0b3a2 hub.c.163.com/library/registry “/entrypoint.sh /etc…” 17 hours ago Up 17 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry

[root@ciserver ~]#

  • 在创建此容器时,因为使用了数据卷,所以gitlab容器的配置也都保存在服务器的相关目录上了。

因为我们需要修改gitlab的配置并让其生效,所以大概等上面的gitlab运行2分钟之后,先关闭此容器,做相关操作再开启

[root@ciserver ~]# ls /data/gitlab/

data/ etc/ log/

[root@ciserver ~]# ls /data/gitlab/data/

backups gitlab-monitor nginx public_attributes.json

bootstrapped gitlab-rails node-exporter redis

gitaly gitlab-shell postgres-exporter trusted-certs-directory-hash

git-data gitlab-workhorse postgresql

gitlab-ci logrotate prometheus

[root@ciserver ~]# ls /data/gitlab/etc/

gitlab.rb ssh_host_ecdsa_key.pub ssh_host_rsa_key

gitlab-secrets.json ssh_host_ed25519_key ssh_host_rsa_key.pub

ssh_host_ecdsa_key ssh_host_ed25519_key.pub trusted-certs

[root@ciserver ~]# ls /data/gitlab/log/

gitaly gitlab-shell nginx postgresql redis sshd

gitlab-monitor gitlab-workhorse node-exporter prometheus redis-exporter unicorn

gitlab-rails logrotate postgres-exporter reconfigure sidekiq

[root@ciserver ~]#

先停止服务

[root@ciserver ~]# docker stop gitlab

gitlab

[root@ciserver ~]#

  • 修改vim /data/gitlab/etc/gitlab.rb如下内容

[root@ciserver ~]# vim /data/gitlab/etc/gitlab.rb

#下面是修改后的最终效果

13 external_url ‘http://192.168.59.151’ #改成自己的ip

48 gitlab_rails[‘gitlab_ssh_host’] = ‘192.168.59.151’#改成自己的ip

343 gitlab_rails[‘gitlab_shell_ssh_port’] = 222 #这是物理机端口,上面我们定义的是222

#上面3样修改完以后保存退出

  • 修改vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml如下内容

[root@ciserver ~]# vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml

#下面是修改后的最终效果

13 host: 192.168.59.151 #改成自己ip

#然后保存退出

  • 启动gitlab服务

状态为up才正常

[root@ciserver ~]# docker start gitlab

gitlab

[root@ciserver ~]#

[root@ciserver ~]# docker ps | head -n3

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

9c498bea946e beginor/gitlab-ce “/assets/wrapper” 17 minutes ago Up 20 seconds (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp gitlab

98fbe2c0b3a2 hub.c.163.com/library/registry “/entrypoint.sh /etc…” 17 hours ago Up 17 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry

[root@ciserver ~]#

设置gitlab的root密码并登陆

  • 打开gitlab设置root密码

在浏览器直接输入该虚机的ip即可进入gitlab

在这里插入图片描述

我设置的root密码是ccxhero!【注意,密码简单的话会报界面500错误】

密码设置好以后呢,就成登陆界面了

在这里插入图片描述

  • 登陆

用上面设置的密码,用户名是root,登陆

在这里插入图片描述

创建一个项目并设置ssh秘钥

  • 点击创建一个新项目

随便输入一个名称,选择公开,然后创建

在这里插入图片描述

在这里插入图片描述

  • 上面呢一个基本项目就算创建完成了,可以通过ssh的方式拉取镜像,所以我们现在给这个镜像仓库设置秘钥

先到虚拟机上生成秘钥【就是免密登陆的那种秘钥】

#中途直接回车一次即可

[root@ciserver ~]# ssh-keygen -N “”

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:LAwIpATm3/uyXaarAp6DCwRWF4hTo1PeWmO678lAEzs root@ciserver

The key’s randomart image is:

±–[RSA 2048]----+

|=+o=.o. |

|=+=o+ |

|o=oo.= |

|o o Oo… |

| . E .o S |

|… + … |

|+ oo . o |

|o+ .+.+ + |

|… oB+=. |

±—[SHA256]-----+

[root@ciserver ~]# ls .ssh/

id_rsa id_rsa.pub known_hosts

我们要的是这个文件下的公钥信息,复制,后面要用

[root@ciserver ~]# cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQz8lAkNH/VfnbgUGG1mDQ61pjuitvZ1QGzk75uHN1ib0bNrHyqjZDlRfQa+ssfr3DrUyoX3JmyH36hw56c5ulrZmlIplvqXWz5ZYHw+gYy0btBTLqfTytCJPh6AC8KDL0OIMqubf1H1GTSuhCIn86/91u2FSjdFq6mrryfEIV6IAf5FwTzDJhhvcpeLpPM4QzDf/yarnk2fs79eKSP9QIC4UnyLTW9FxKMKCrruNczLn22od0oKQzZMzeitKunRKaYtv8w8kafKE+LeXvGun/l0aVyb2EawaYQNmw3VkYlToy9NwUCySYS25NCxTonZR84ChyBfX2Jh8u/R+LyBE9 root@ciserver

[root@ciserver ~]#

  • 现在回到网页上,配置这个公钥信息

流程如下,粘贴我们上面复制的内容增加秘钥即可

在这里插入图片描述

增加以后如图

在这里插入图片描述

全局变量设置

  • 回到项目页面,下拉是可以看到说明的,根据这来配置就行了

在这里插入图片描述

  • 先安装git包

[root@ciserver ~]# yum install git -y

  • 配置这2个全局变量

[root@ciserver ~]# git config --global user.name “Administrator”

[root@ciserver ~]# git config --global user.email “admin@example.com”

[root@ciserver ~]#

克隆推送

  • 项目地址选择ssh,然后复制

在这里插入图片描述

  • 回到linux主机,执行

git clone 粘贴刚才复制的内容【第一次克隆需要输入yes,并且现在是会返回一个空版本库的提示】

这步骤呢就是获取项目的内容地址

[root@ciserver ~]# git clone ssh://git@192.168.59.151:222/root/p1.git

Cloning into ‘p1’…

The authenticity of host ‘[192.168.59.151]:222 ([192.168.59.151]:222)’ can’t be established.

ECDSA key fingerprint is SHA256:5XE5EUkPG8E+YbDcpSMslPVpOD56dEX4cJwPX7G8Zmw.

ECDSA key fingerprint is MD5:a1:37:c1:77:e7:61:a7:ad:ac:d1:84:41:0c:24:d6:da.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘[192.168.59.151]:222’ (ECDSA) to the list of known hosts.

warning: You appear to have cloned an empty repository.

#上面句翻译:您似乎克隆了一个空版本库

[root@ciserver ~]#

  • 空版本是正常的,我们可以手动编辑p1这个文件哦

【后面就是在这里面放代码什么的任意内容】

[root@ciserver ~]# ls | grep p1

p1

[root@ciserver ~]# cd p1

[root@ciserver p1]# ls

[root@ciserver p1]# echo ccxhero(_) > index.html

-bash: syntax error near unexpected token `(’

[root@ciserver p1]# echo ‘ccxhero(_)’ > index.html

[root@ciserver p1]# ls

index.html

[root@ciserver p1]# cat index.html

ccxhero(_)

[root@ciserver p1]#

  • 现在开始推送【推送到gitlab仓库里面】

代码说明

  • git add . —— 推送当前路径内容

  • git commit -m "111"——111是自定义名称

  • git push——推送

  • 第一次做会有如下报错

[root@ciserver p1]# git add .

[root@ciserver p1]# git commit -m “111”

[master (root-commit) 66b6090] 111

1 file changed, 1 insertion(+)

create mode 100644 index.html

[root@ciserver p1]#

[root@ciserver p1]# git push

warning: push.default is unset; its implicit value is changing in

Git 2.0 from ‘matching’ to ‘simple’. To squelch this message

and maintain the current behavior after the default changes, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

See ‘git help config’ and search for ‘push.default’ for further information.

(the ‘simple’ mode was introduced in Git 1.7.11. Use the similar mode

‘current’ instead of ‘simple’ if you sometimes use older versions of Git)

No refs in common and none specified; doing nothing.

Perhaps you should specify a branch such as ‘master’.

fatal: The remote end hung up unexpectedly

error: failed to push some refs to ‘ssh://git@192.168.59.151:222/root/p1.git’

[root@ciserver p1]#

  • 上面报错提示了,需要执行2个命令,然后再重新推送,就可以了

[root@ciserver p1]# git config --global push.default matching

[root@ciserver p1]# git config --global push.default simple

[root@ciserver p1]#

[root@ciserver p1]# git add .

[root@ciserver p1]# git commit -m “111”

On branch master

nothing to commit, working directory clean

[root@ciserver p1]# git push

Counting objects: 3, done.

Writing objects: 100% (3/3), 220 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To ssh://git@192.168.59.151:222/root/p1.git

  • [new branch] master -> master

[root@ciserver p1]#

  • 上面 推送成功以后呢,我们在网页上的gitlab页面刷新一下就可以看到这个内容了哦

在这里插入图片描述

jenkins配置【编译】


所需镜像和文件下载

  • 因为我的集群环境没有外网,所以我所有用到的镜像都是在有外网的服务器上docker pull以后导入到我服务器上的,所以下面看到拉取镜像的主机名和我测试用的主机名不一样,不要意外。

  • 这呢只是我打包好的,里面有registry和gitlab所有需要用到的镜像,可以直接下载我打包的【不下载也没关系,下面有下载方式的】

下载地址:jenkins镜像和文件完整包.rar【本想和上面gitlab放一起的,但csdn不允许上传单个文件超过1G的文件】

在这里插入图片描述

拉取镜像及部署

  • 拉取该镜像

[root@ccx ~]# docker pull jenkins/jenkins:2.249.1-lts-centos7

2.249.1-lts-centos7: Pulling from jenkins/jenkins

75f829a71a1c: Pull complete

8d254bb2ec6e: Pull complete

225e7670b945: Pull complete

b692399c3f8e: Pull complete

60f4ba054d35: Pull complete

c643f8846fa6: Pull complete

8d6bcfd9cf04: Pull complete

bcf49d8308b2: Pull complete

e19d3746d479: Pull complete

564cb33317a5: Pull complete

d0fb47961855: Pull complete

b77c53f1d798: Pull complete

de5994812792: Pull complete

17998489e31a: Pull complete

d3671ff917b3: Pull complete

Digest: sha256:2347f542074a2490d6b5803e366dbc045724d61ec5b4b9668ba8af2284963457

Status: Downloaded newer image for jenkins/jenkins:2.249.1-lts-centos7

docker.io/jenkins/jenkins:2.249.1-lts-centos7

[root@ccx ~]#

  • 导入镜像到客户机

[root@ciserver p1]# docker load -i /root/jenkins.tar

613be09ab3c0: Loading layer 211.1MB/211.1MB

7e72cadd3040: Loading layer 332.6MB/332.6MB

1a6360904f89: Loading layer 374.8kB/374.8kB

59df8f1a2c2e: Loading layer 3.584kB/3.584kB

407412d996f1: Loading layer 9.728kB/9.728kB

e8cb66c5d1a6: Loading layer 869.4kB/869.4kB

31cb66ce2731: Loading layer 67.4MB/67.4MB

383ebb608964: Loading layer 3.584kB/3.584kB

ed2372d54ef3: Loading layer 5.897MB/5.897MB

ecaef717ccfc: Loading layer 9.728kB/9.728kB

19cf3559c8bc: Loading layer 5.12kB/5.12kB

30d3842524e8: Loading layer 3.584kB/3.584kB

3d5d0e530a7a: Loading layer 3.072kB/3.072kB

4c44a6a979b1: Loading layer 7.168kB/7.168kB

13dbb3dbcefd: Loading layer 13.82kB/13.82kB

Loaded image: jenkins/jenkins:2.249.1-lts-centos7

[root@ciserver p1]# docker images | grep jen

jenkins/jenkins 2.249.1-lts-centos7 3ef73a390e4c 14 months ago 605MB

[root@ciserver p1]#

创建数据卷所需要的目录,并把所有者和所有组改为1000

【这里为什么要改成1000,是因为容器里是一jenkins用户的身份去读数据,而在容器里jenkins的uid是1000,此镜像的dockerfile内容中也会有说明uid=1000】

[root@ciserver p1]# mkdir /jenkins;chown 1000.1000 /jenkins

  • 部署

状态为up才正常。

[root@ciserver p1]# docker run -dit -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true --restart=always -v /jenkins:/var/jenkins_home jenkins/jenkins:2.249.1-lts-centos7

851e08d3f771fd31054bb035cc5fc59cf45f43561e9629c2d22b4c05779059ee

[root@ciserver p1]#

[root@ciserver p1]# docker ps | grep jen

851e08d3f771 jenkins/jenkins:2.249.1-lts-centos7 “/sbin/tini – /usr/…” 40 seconds ago Up 39 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins

[root@ciserver p1]#

配置jenkins插件【有外网的情况】

  • 先直接在浏览器上输入本机ip:8080,看是否能访问该页面

在这里插入图片描述

  • 上面能访问以后呢,停止该服务,做相关配置

[root@ciserver p1]# docker stop jenkins

jenkins

[root@ciserver p1]# ls /jenkins/

config.xml jobs secret.key.not-so-secret

copy_reference_file.log logs secrets

hudson.model.UpdateCenter.xml nodeMonitors.xml userContent

identity.key.enc nodes users

jenkins.install.UpgradeWizard.state plugins war

jenkins.telemetry.Correlator.xml secret.key

[root@ciserver p1]#

  • 先配置/jenkins/hudson.model.UpdateCenter.xml

改成如下内容【修改了url】

[root@ciserver p1]# cat /jenkins/hudson.model.UpdateCenter.xml

<?xml version='1.1' encoding='UTF-8'?>

default

http://mirrors.tuna.tsinghua.edu.cn/jenkins

[root@ciserver p1]#

  • 修改/jenkins/updates/default.json 【我当前环境是没有updates生成,是不对的,可能因为我没有外网的原因?如果你也没有生成,重启jenkins或者删除容器重新部署,要有这个文件为止】

注:里面文件很大,内容变动比较慢,所以注意点。

[root@ciserver p1]# vim /jenkins/updates/default.json

#在第一行

#把http://www.googel.com/改成http://www.baidu.com/

  • 启动jenkins

[root@ciserver p1]# docker start jenkins

jenkins

[root@ciserver p1]#

第一次登陆jenkins配置
  • 登陆密码查看

[root@ciserver p1]# cat /jenkins/secrets/initialAdminPassword

05bd99aa0e7e408a8a9eb29ade914e41

[root@ciserver p1]#

  • 有外网情况,选择推荐安装就行了

在这里插入图片描述

  • 正常情况如下

会全部安装完且没有报错

在这里插入图片描述

  • 如果有失败的,点击重试,多重试以后还是不行的话用下面方法来排查

  • 1、回去检查上面的2个配置文件是否修改错误

  • 2、确定无误还是不行,删除该docker容器,重部署该容器【文件里面的内容不用删,仅仅是删除容器重新部署就好了】

  • 3、停止jenkins,再启动jenkins

在这里插入图片描述

  • 上面安装推荐的插件,安装好之后会自动跳转到注册页面:

在这里插入图片描述

  • 输入如上信息,点击保存并完成,跳转到实例配置:

不要修改内容,点击保存并完成:

在这里插入图片描述

  • 点击开始使用【如果提示点击重启也是正常的,版本不同】

在这里插入图片描述

  • 输入用户名和密码,点击登录。

在这里插入图片描述

  • 登陆进来以后就进入到这个界面

在这里插入图片描述

  • 上面插件安装完进入到这个界面有警告可以不管,也可以更新。

在这里插入图片描述

配置jenkins插件【没有外网的情况】

  • 对了,离线安装可以看这个文章【官方介绍】,但是我现在搞不懂。。。所以我下面的方式是在网上找的资料来做的

离线安装

  • 首先要明白,能进入到这个界面,就证明jenkins已经安装完毕了,只是缺少插件罢了,所有离线安装,安装的是插件,而 不是 jenkins
第一次登陆jenkins配置
  • 先跳过插件安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 离谱,明明没有插件,竟然没报错。

在这里插入图片描述

jenkins插件下载和导入

  • 插件是放到jenkins的plugins目录下的,更新这个文件前,记得先停止jenkins容器,更新完毕以后再启动
插件下载地址
  • jenkins插件下载后使用方法

将下载好的hpi后缀的插件放到jenkins的plugins目录下,具体目标要看jenkins的具体plugins具体目录【不知道在哪可以用find搜】,然后重启jenkins即可【docker stop jenkins ,然后 docker start jenkins】

#官方

http://updates.jenkins-ci.org/download/plugins/publish-over-ssh/

http://updates.jenkins.io/download/plugins/

#清华大学

https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

  • 另一种方式【这个主要是查询包的名称,然后去上面地址下载】

https://plugins.jenkins.io/

在这里插入图片描述

插件打包导入【网上下载的jenkins包】
  • 我也第一次玩这破玩意,网上搜了很多jenkins的离线安装,最后发现我tm已经安装好jenkins了,现在只是缺少插件罢了【知道现在只是缺少插件,得到这个结果我折腾了一上午】

  • 这个插件内容呢是我也是在网上下载别人打包好的【但没人说用法,不过无所谓了啊,我已经搞懂原理了,这个包是全套文件,但是我现在呢主要是缺少插件,所以我直接替换插件文件即可,继续往下看】

  • 下载地址:

里面内容就是这样子的,你可以和自己生成文件对比一下,发现这是全量包。

在这里插入图片描述

  • 我现在只是缺插件而已,所以我不全量替换【也最好别全量替换,因为环境不一样,免得报错】

现在我部署好的情况文件是这样子的

#我部署的时候重定向到我的/jenkins文件了

[root@ciserver ~]# cd /jenkins/

[root@ciserver jenkins]# ls

config.xml nodeMonitors.xml

copy_reference_file.log nodes

hudson.model.UpdateCenter.xml plugins

identity.key.enc secret.key

jenkins.install.InstallUtil.lastExecVersion secret.key.not-so-secret

jenkins.install.UpgradeWizard.state secrets

jenkins.model.JenkinsLocationConfiguration.xml userContent

jenkins.telemetry.Correlator.xml users

jobs war

logs

[root@ciserver jenkins]#

#前面说过插件是放这目录下的,现在没有插件所以是kong的

[root@ciserver jenkins]# ls plugins/

[root@ciserver jenkins]#

  • 现在呢就是导入我下载的这个jenkins文件到该服务器上,然后解压该zip包

[root@ciserver ~]# ls | grep jenkins.zip

jenkins.zip

[root@ciserver ~]# du -sh jenkins.zip

207M jenkins.zip

[root@ciserver ~]# mkdir jenkins-new

[root@ciserver ~]# mv jenkins.zip jenkins-new

[root@ciserver jenkins-new]# cd jenkins-new/

[root@ciserver jenkins-new]# ls

jenkins.zip

[root@ciserver jenkins-new]# unzip jenkins.zip

#大量输出

[root@ciserver jenkins-new]#

[root@ciserver jenkins-new]# ls

jenkins jenkins.zip

[root@ciserver jenkins-new]#

  • 上面说了,我只需要插件,所以我最终替换plugins文件即可【因为我updates文件也没有,所以一起替换了吧】

[root@ciserver jenkins-new]# docker stop jenkins

jenkins

[root@ciserver jenkins-new]#

[root@ciserver jenkins-new]# ls

jenkins jenkins.zip

[root@ciserver jenkins-new]# ls jenkins|wc -l

48

[root@ciserver jenkins-new]# cd jenkins/

[root@ciserver jenkins]#

[root@ciserver jenkins]# cp -rf plugins/* /jenkins/plugins/

[root@ciserver jenkins]# ls /jenkins/plugins/ | wc -l

167

[root@ciserver jenkins]#

[root@ciserver jenkins]# cp -rf updates/ /jenkins/

[root@ciserver jenkins]# ls updates/|wc -l

5

[root@ciserver jenkins]#

[root@ciserver jenkins]# ls /jenkins/updates/|wc -l

5

[root@ciserver jenkins]#

  • 然后启动jenkins服务即可完成导入了

[root@ciserver jenkins]# docker start jenkins

jenkins

[root@ciserver jenkins]# docker ps | grep jen

851e08d3f771 jenkins/jenkins:2.249.1-lts-centos7 “/sbin/tini – /usr/…” 4 hours ago Up 9 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins

[root@ciserver jenkins]#

  • 重新登录

在这里插入图片描述

  • 再次进来以后有这个警告了,额,忽略。

在这里插入图片描述

安装docker插件

  • 主页面的-manager-jenkins中找到下面这个

在这里插入图片描述

  • 然后在可选插件中搜索docker

安装docker和docker-build-step

有外网的话直接在周搜索更新然后点击install安装即可【我没有外网,用下面方法】

在这里插入图片描述

在这里插入图片描述

有外网的正常情况呢,就是这样的。

在这里插入图片描述

离线安装
  • 没有外网下载docker和docker-build-step

  • 首先在网页查看这2个包的版本

在这里插入图片描述

  • 再去网站下载这2个包对应版本的hpi包

docker对应的是docker-plugin

我这已经下载好并考到主机上了

[root@ciserver plugins]# ls /root | grep docker -

delete_docker_registry_image

docker-build-step.hpi

dockerfile

dockerfile_v1

docker-plugin.hpi

[root@ciserver plugins]# ls /root | grep docker-

docker-build-step.hpi

docker-plugin.hpi

[root@ciserver plugins]#

[root@ciserver plugins]# docker stop jenkins

jenkins

[root@ciserver plugins]# mv /root/docker-* .

[root@ciserver plugins]# ls | grep docker-

docker-build-step.hpi

docker-plugin.hpi

[root@ciserver plugins]#

[root@ciserver plugins]# docker start jenkins

jenkins

[root@ciserver plugins]#

[root@ciserver plugins]# pwd

/jenkins/plugins

[root@ciserver plugins]#

报错处理
  • 我最开始的报错内容没截图,翻译过来就是hpi包无法展开,我是直接删除该容器和/jenkinds下的所有内容,从头重新部署以后报错就成下面缺少依赖了,诶,这样对劲了,可以搞了。

  • 上面那种方法是对的,但是会一直缺少依赖,根据提示把依赖都下载下来然后上传到该路径中

如上,我已经下载好几个了,现在还是缺,那就继续下,直到没有报错。。。

在这里插入图片描述

  • 再放一次增加插件的流程

[root@ciserver plugins]# docker stop jenkins

jenkins

[root@ciserver plugins]# mv /root/docker-java-api.hpi .

[root@ciserver plugins]# ls | grep java

docker-java-api.hpi

[root@ciserver plugins]# docker start jenkins

jenkins

[root@ciserver plugins]#

插件打包导入【自己准备的jenkins包】
  • 这个是我后面回来重新弄的,我在网上下载了上面的基础插件导入后,好不容易离线安装完docker的2个包,后面出现问题了,报错是这样子的,然后后面配置集群进行不下去了

在这里插入图片描述

  • 我怀疑这个包有问题,所以我自己在有外网的机子上重新搭了套环境,在有外网的机器上用我的方式配置jenkins,然后我看文件大小,有333M,而我网上下载的,只有200多M,艹,网上的资源不仅没有使用说明,浪费我积分下载的东西不能用,太过分了。

[root@ccx ~]# du -sh /jenkins/

333M /jenkins/

[root@ccx ~]#

  • 所以呢,这份是我花了大量时间重新弄的,这就是教程,也保证能用,自己去下载吧【和上面网上下载的一起打包了】,所以这和上面网上下载的jenkins包处,只需下载一次即可。

下载地址:

  • 我导入了我打包的,确定这个包大小和我外网主机上是一样的

因为这是我自己配置的【包含docker插件】,所以我准备全量替换了【我是用tar包打包的】

前提是你使用我上面的方式部署完jenkins~

[root@ciserver jk]# du -sh *

333M jenkins

327M jenkins.tar

[root@ciserver jk]#

  • 全量替换比较省事,直接替换/jenkins文件即可【注意,我部署的时候是吧jenkins的文件同步到我本地的/jenkins了,所以你要确认你是啥文件啊】

操作这个要先停止jenkins,后面的命令都是基础的,就不说明了,注意看过程吧。

[root@ciserver jk]# docker stop jenkins

[root@ciserver jk]# rm -rf /jenkins/*

[root@ciserver jk]# mv jenkins.tar /jenkins/

[root@ciserver jk]# cd /jenkins/

[root@ciserver jenkins]# ls

jenkins.tar

[root@ciserver jenkins]#

[root@ciserver jenkins]# tar xvf jenkins.tar

#大量输出

[root@ciserver jenkins]# ls

jenkins jenkins.tar

[root@ciserver jenkins]# du -sh *

333M jenkins

327M jenkins.tar

[root@ciserver jenkins]# rm -rf jenkins.tar

[root@ciserver jenkins]#

[root@ciserver jenkins]# mv jenkins/* .

[root@ciserver jenkins]# ls |wc -l

26

[root@ciserver jenkins]# rm -rf jenkins/

[root@ciserver jenkins]# ls |wc -l

25

[root@ciserver jenkins]# du -sh /jenkins/

333M /jenkins/

[root@ciserver jenkins]#

[root@ciserver jenkins]# ls /jenkins/plugins/ | wc -l

174

[root@ciserver jenkins]#

[root@ciserver jenkins]# ls

config.xml nodes

copy_reference_file.log plugins

hudson.model.UpdateCenter.xml queue.xml

hudson.plugins.emailext.ExtendedEmailPublisher.xml queue.xml.bak

hudson.plugins.git.GitTool.xml secret.key

identity.key.enc secret.key.not-so-secret

jenkins.install.InstallUtil.lastExecVersion secrets

jenkins.install.UpgradeWizard.state updates

jenkins.model.JenkinsLocationConfiguration.xml userContent

jenkins.telemetry.Correlator.xml users

jobs war

logs workflow-libs

nodeMonitors.xml

[root@ciserver jenkins]#

  • 最后启动jenkins服务,去网站看看

[root@ciserver jenkins]# docker start jenkins

jenkins

[root@ciserver jenkins]#

  • 啥都不需要配置,直接登录就行【user:admin,passwd:ccxhero!】

哈哈正常了,上面其实可以看到我内网部署的是英文版本的【缺少中文插件】,现在一切正常,警告也和外网的一样,而且docker插件也正常,nice】可以继续做下面的配置集群流程了【了解原理和重新在外网配环境到导入到内网环境一切正常,到这,花了我一天半的时间】。

在这里插入图片描述

在这里插入图片描述

配置集群

  • 依次点击下面菜单

在这里插入图片描述

  • 做如下配置流程

tcp://192.168.59.151:2376【ip改成自己的主机】

4个步骤做完能出现版本号就可以了,这是就代表jenkins已经连接到物理机的docker了

在这里插入图片描述

  • 最后点击save即可

在这里插入图片描述

    • 在jenkins首页,依次点击系统管理-系统配置,找到docker build ,在docker build里输入 tcp://192.168.59.151:2376,点击test connection

在这里插入图片描述

  • 最后点击保存,配置就完毕了,此时,jenkins也和docker成功关联起来了,并且此时的jenkins也具备了对docker操作的能力了,比如编译推送等。

在这里插入图片描述

  • 后面gitlab要和jenkins进行联动,所以必须要对jenkins的安全做一些设置,依次点击-系统管理-全局安全配置,需要修改下面2项内容

  • 1、授权策略,勾选“匿名用户具有可读权限”,点击保存

在这里插入图片描述

  • 2、跨站请求伪造保护【注:这个跨站点伪造保护(CSFR)请求必须要关闭,但是在jenkins版本自2.2xx以后,在web界面里已经没法关闭了

在这里插入图片描述所以需要在jenkins容器中关闭,具体操作流程看下面,注意看注释说明。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

本次面试答案,以及收集到的大厂必问面试题分享:

字节跳动超高难度三面java程序员面经,大厂的面试都这么变态吗?

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
hY2s,shadow_50,text_Q1NETiBALyrlrojmiqTlpbnnmoTnrJHlrrk=,size_19,color_FFFFFF,t_70,g_se,x_16)

  • 后面gitlab要和jenkins进行联动,所以必须要对jenkins的安全做一些设置,依次点击-系统管理-全局安全配置,需要修改下面2项内容

  • 1、授权策略,勾选“匿名用户具有可读权限”,点击保存

在这里插入图片描述

  • 2、跨站请求伪造保护【注:这个跨站点伪造保护(CSFR)请求必须要关闭,但是在jenkins版本自2.2xx以后,在web界面里已经没法关闭了

在这里插入图片描述所以需要在jenkins容器中关闭,具体操作流程看下面,注意看注释说明。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-MWmhQ8vl-1712252599479)]

[外链图片转存中…(img-IWokXnBS-1712252599480)]

[外链图片转存中…(img-8Dn6ie1s-1712252599480)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

本次面试答案,以及收集到的大厂必问面试题分享:

[外链图片转存中…(img-4KUQ79nM-1712252599480)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值