使用jenkins/jenkins:2.401.1镜像安装Jenkins服务

发表于 2023-06-15 00:59:14
阅读 66

介绍

介绍

前面我们学习了各种软件的安装、各种数据库的安装、各种程序运行环境的安装,还学习了docker-compose的使用,基于rancher的k8s的使用,还有gitlab和git的安装和使用。基本上使用这些技术完全可以自己搭建一整套web平台的运行环境了。

不过,这里面存在一个问题,就是每次福哥要去更新服务里的代码,还是要登录到服务器上去敲命令完成代码的更新,这样不仅不够安全,维护成本也很大,工作效率很低。

那么有什么办法改善呢?答案就算使用Jenkins工具!

今天福哥就要带着大家学习使用Jenkins工具来帮助我们在服务部署、服务升级过程中,提高安全性,降低维护成本,提高工作效率!

环境

镜像版本
jenkins/jenkins:2.401.1
操作系统CentOS 7 x86_64 2009
服务器TFCentOS7x64、TFCentOS7x64Node1
IP192.168.168.68、192.168.168.69
端口1180

安装

Dockerfile

镜像

福哥选择的是jenkins/jenkins:2.401.1这个基础镜像。

现在Docker Hub不能用了,福哥也不能给大家发链接了,唉~

拉取镜像jenkins/jenkins:2.401.1并且添加到registry.tongfu.net:5000私有仓库里面。

docker pull jenkins/jenkins:2.401.1
docker tag jenkins/jenkins:2.401.1 registry.tongfu.net:5000/jenkins/jenkins:2.401.1
docker rmi jenkins/jenkins:2.401.1
docker images | grep 'jenkins/jenkins'

7b41039255672ffcfd17d30fe76b70c7.png

Jenkins数据目录

创建Jenkins数据目录/tongfu.net/data/docker/data/jenkins,映射Jenkins主目录。

mkdir /tongfu.net/data/docker/data/jenkins
chown 1000.1000 /tongfu.net/data/docker/data/jenkins

启动容器

福哥给tfjenkins容器分配了1180这个web端口。

docker run -tid \
--name tfjenkins \
-h tfjenkins \
--net tfnet \
-p 1180:1180 \
-e JENKINS_OPTS="--httpPort=1180" \
-v /tongfu.net/data/docker/data/jenkins:/var/jenkins_home \
registry.tongfu.net:5000/jenkins/jenkins:2.401.1

b24941e051b3f8136ecde9d95693f332.png

使用

初始化

打开浏览器,输入网址http://192.168.168.68:1180

第一步解锁Jenkins,这里要的默认的管理员密码。

aecb421f482937703185017fda80992d.png

可以去到tfjenkins容器里面查看红色文字路径指向的文件内容,也可以直接查看tfjenkins容器的日志。

docker logs tfjenkins

484eb2be7f790d5f5d62c47f6216eb6d.png点击“选择插件来安装”。

17d33853c370cb3f8ae55313bba5faeb.png

先点“无”去掉默认勾选的插件。

3677dd52bdaa588f8ff7117b7b92361f.png

福哥选择的是以下几个插件,大家可以根据自己的需要选择更多插件。

2b0d1fb03d50fae4d8b6d6c4ecfeceff.png

开始安装了!这里有可能会失败,多试几次就可以了!

936acc6171113e316f066deecb73939e.png这一步系统建议创建一个管理员用户,福哥不打算创建其他用户,直接使用admin账号。

e58ec1c61f66bc68232398eb5ac3dd9f.png确认一下Jenkins的访问地址,这里不用改。

905ec8e559f480798e5086b41885b16b.png初始化完成了!点击“开始使用Jenkins”按钮进入Jenkins里面~

a005120680f8a560b0ff30562795d7c1.png

创建SSH密钥

切入tfjenkins容器里面,创建一个SSH密钥,用来给Jenkins访问GitLab服务器使用。

ssh-keygen -o -t ed25519 -b 4096

9b94668d6a0d1c6bc385d006bf7d63cc.png

查看刚刚创建的SSH密钥的公钥。

cat /var/jenkins_home/.ssh/id_ed25519.pub

将SSH公钥添加到GitLab里面。

c11cbb2ac5c93bca47641fb38fdb158e.png

克隆一下tfphp项目测试一下~

cd /tmp
git clone git@tfgitlab:root/tfphp.git

538ba8350c5d17ffc01e1c166bb37acd.png

配置Jenkins凭据

将SSH私钥添加到Jenkins的凭据里面,这样Jenkins就可以访问GitLab服务器了。

鼠标放到Dashboard上面会在右侧出现一个向下的箭头,展开菜单选择“Manage Jenkins”>“Credentials”。

e845ed81b9bffd366ad459bcd9b2e1db.png在“Stores scoped to Jenkins”里的“System”那一行的“(global)”里面点击“Add credentials”按钮添加凭据。

05588a2cfe44f36717aac7606584ec96.png

Kind“SSH Username with private key”,Scope“Global...”,ID、Description、Username都填写“jenkins”。

d8a58f33b3769035ea3f6d6b48530673.png查看tfjenkins容器里的SSH密钥的私钥。

cat /var/jenkins_home/.ssh/id_ed25519

点击“Private Key”里的“Enter directly”单选框,然后点击“Add”按钮,把tfjenkins容器里的SSH密钥的私钥内容复制进来。

2b30e32258e1a26712a13fc55131364e.png点击最下面的“Create”按钮完成凭据的添加!

d36b24ff58c3f809cdd3784c2313c4a1.png

可以看到刚刚添加的System下的Global凭据出来了!

添加自由任务tftest

添加一个任务,测试一下!

9b6511d18cd57300eb12d88da0fa3832.png

任务名称“tftest”,类型“Freestyle project”。

21716c5113646ad9be0c54acec390a3f.png

点击“OK”完成任务的创建,进入任务配置界面。

配置自由任务tftest

这里只配置一下“Source Code Management”里的“Git”即可。

Repository URL“git@tfgitlab:root/tfphp.git”,Credentials“jenkins...”。

a0cd1c9ef158d47238138cf099def6ef.png点击“Save”按钮完成任务的配置。

执行自由任务tftest

点击任务tftest左侧的“Build Now”按钮,立即执行任务tftest。

43587bd6a39a336577987f8a2473529e.png等一下,系统就开始执行任务tftest了。

42f7133a112f15e210d477c11959d3ee.png

执行完成了,点进去看看执行情况!

12ddefc188227c21e807dd871f0b9e44.png这里是比较具体的执行情况信息。

2672a9e9dadba04b83fb0a50dcefdd48.png点击左侧的“Console Output”按钮,可以查看任务tftest的具体执行过程信息,包括执行了哪些命令,执行命令的情况等等。

3a444909e8552c3e038f20d708878d5d.png

设置时区

刚刚发现这个时间又是UTC时间,现在我们改一下时区!

Jenkins的时区是可以给每个用户单独设置的,我们现在把admin的时区设置成Asia/Shanghai。

点击右上角的“admin”右侧的向下的箭头,选择“Configure”。

7d604189d0e4d44b49a3fc3c7e28c2bc.png

在“User Defined Time Zone”里设置时区为Asia/Shanghai。

a1c46f0e9eb0558b602a6912b4cd281f.png点击“Save”按钮保存一下。

点击“Dashboard”回到首页!

138f43cd037aa08b62383d9470842511.png

点击“tftest”进入任务tftest页面,可以看到刚刚执行的构建的时间正常了!

ac2de528b77e9e9fa55c87ab1f71565e.png

总结

今天福哥带着大家学习了Jenkins软件的安装使用,大家可以使用Jenkins管理自己的项目的构建和部署了。

但是,虽然我们学会了使用Jenkins直接拉取GitLab上面的项目文件,却不知道如何把拉取到的项目文件复制到docker-compose或者k8s搭建的运行环境里的容器里面。如果没法把项目文件复制到运行环境里的容器里面的话,那这个Jenkins就完全成了摆设了。

所以,Jenkins当然不是用来当摆设的,Jenkins是专门用来实现项目文件拉取、项目构建、服务部署的工具,把项目文件复制到运行环境里的容器里面肯定是可以的。

下一课,福哥会教给大家如何使用Jenkins动态构建部署docker-compose运行环境里的服务!敬请期待~