Jenkins 一连集成部署——Jenkins实战与运维(1)

打印 上一主题 下一主题

主题 966|帖子 966|积分 2898

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、Jenkins 相干配置及代码发布

1. Jenkins 发布 php 代码

1.1 安装插件
        先进入“系统管理”,再进入“管理插件”,在“已安装”中查抄是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有则需要安装,到“可选插件”中搜刮并安装。

        插件完成后,点击 “返回首页”回到服务器中重启 jenkins后,登录。
  1. [root@jenkins ~]# systemctl restart jenkins
复制代码
2. 配置  publish Over SSH

        起首需要在服务器上/.ssh目录下生成一对密钥,下令如下:
  1. [root@jenkins ~]# mkdir /root/.ssh
  2. [root@jenkins ~]# cd ~/.ssh
复制代码
        查抄是否生成成功,下令如下:
  1. [root@jenkins .ssh]# ls -al
  2. 总用量 8
  3. drwx------. 2 root root   38 12月 17 15:20 .
  4. dr-xr-x---. 7 root root  256 12月 17 15:19 ..
  5. -rw-------. 1 root root 1679 12月 17 15:20 id_rsa
  6. -rw-r--r--. 1 root root  408 12月 17 15:20 id_rsa.pub
复制代码
        密钥生成成功后,登录Jenkins,点击“系统管理”然后点击“系统设置”,下拉找到“Publish Over SSH”将刚才生成的服务器的私钥填入 “Publish over SSH” 中的“key”,如下图:
  1. [root@jenkins ~]# cat /root/.ssh/id_rsa
复制代码

3. 添加 SSH Server

        “Publish over SSH”配置完成后,为了实今世码的成功发布,我们需要先查看并复制服务器的公钥,下令如下:
  1. [root@jenkins ~]# cat /root/.ssh/id_rsa.pub
复制代码
        然后将复制的服务器公钥,添加到需要添加“SSH Servers”的长途机器的.ssh/authorized_keys目录下,若要增加服务器的“SSH Servers”,则需要将服务器的公钥添加到服务器的.ssh/authorized_keys目录下。下令如下:

        然后将复制的服务器公钥,添加到需要添加“SSH Servers”的长途机器的.ssh/authorized_keys目录下,若要增加服务器的“SSH Servers”,则需要将服务器的公钥添加到服务器的.ssh/authorized_keys目录下。下令如下:

  1. [root@test .ssh]# vi authorized_keys
复制代码

        在服务器尝试登录长途机器,如下图所示:
  1. [root@jenkins ~]# ssh 192.168.200.71
复制代码

        尝试登陆成功后,登录jenkins,进入“Manage Jenkins”,点击“Configure System”,下滑找到“SSH Servers”,填写所需要毗连机器的各项设置,然后点击“Test Configuration”,显示“success”,即成功。如下图所示:


4.构建新的任务

        点击新建ltem。输入任务名称,并选择构建软件项目的风格,应实验要求这里选择自由风格,如下图:

        填写“描述”,如下图:


        配置“源码管理”,选择管理源码的方式(这里选择git),将代码仓库的地址填入“Repositories URL”中,若代码仓库是私有仓库,还需要点击“添加”来添加根据,其他保持默认即可,如下图:


        配置“构建触发器”“构建环境”,应实验要求此处保持默认即可,如下图:

        配置“构建”,此处用到了我们之前安装的 “publish over ssh” 插件,起首增加名为“Send files or exeute commands over SSH”的构建步骤,如下图:


        然后在“Name”下选择机器名称(此处SSH Server个数由第3步中添加的数量决定);“Source files”表示要发布那些代码,在其下填写“**/**”(表示全部);

        “Remote directory”表示把代码发送到长途机器的位置,填写“/tmp/Jenkins_test”(此处可自定义);“Exec command”下填写想要实验的下令,此处自定义可以为空,如下图:

        点击“高级”,出现如下页面,其中“Pattern separator” 设置模式分隔符,“Exec timeout(ms)” 设置超时时间,此处保持默认即可,如下图:

        通常环境下我们需要添加多个机器来进行任务,点击左下角“Add Server”来添加多个机器,如下图:

完成以上设置后,应用保存即可。
5. 将代码发布到对方机器

        起首进入任务,然后点击“立刻构建”,查看“控制台输出”,末了登录各机器查看代码发布是否成功,如下图:



二、Jenkins 邮件配置

        配置“邮件通知”,对邮件进行配置,这样当项目构建失败时,我们能第一时间收到通知。
        起首进入“Manage Jenkins”,然后进入“Configure System”,填写“Jenkins location”, 设置系统管理员邮件地址,这里的邮件地址需要和后续要设置的发邮件地址同等,如下图:

        找到“邮件通知”,“SMTP服务器”中填写“smtp.163.com”,接着勾选“使用SMTP认证”,填写所使用邮箱的用户名及暗码,“SMTP端口”使用25端口,接着勾选“通过发送测试邮件测试配置”,向其中填写用于发送测试邮件的邮箱地址后,点击“Test configuration”进行测试,发送成功后,保存。如下图:


        注意

        1.“使用SMTP认证”下的暗码需要我们去相应的邮箱获取。

        获取步骤如下(以163邮箱为例):

        登录163邮箱,点击上方“设置”,点击“POP3/SMTP/IMAP”,开启“IMAP/SMTP服务”和“POP3/SMTP服务”,找到“授权暗码管理”,点击“新增授权暗码”;接着按照提示步骤操纵就可以了。

        2.“使用SMTP认证”下的用户名中所填邮箱地址,要与“系统管理员邮箱地址”相同,否则会发送错误。


        完成以上邮件配置后,我们还需要进入已经构建过的job里去配置接收邮件的地址。在已经构建过的项目ipromise中,点击“配置”,如下图:

        然后在“增加构建后操纵步骤”中,选择“E-mail Notification”,末了在“Recipients”中填写邮箱地址并勾选“每次不稳固的构建都发送邮件通知”,保存,如下图:

        末了在“Recipients”中填写邮箱地址并勾选“每次不稳固的构建都发送邮件通知”,应用保存,如下图:

三、插件 email-ext

1.配置 Extended E-mail Notification

        我们要使用 Extended E-mail Notification(email-ext) 去取代 “邮件通知”,以是我们需要先把“邮件通知”里设置的内容删掉,如下图:

        删除邮件通知的配置后,配置Extended E-mail Notification,“SMTP server”中填入“smtp.163.com”;“SMTP Port”中填入端口号为“25”;添加Credentials,分别填入邮箱用户名和暗码。如下图:

        然后下滑找到”Default Tiggers”,勾选”Always”,其他保持默认,保存。如下图:

2. 配置对应任务

        进入任务2.1所创建的项目ipromise,下拉找到“构建后操纵”,然后点击“增加构建后操纵步骤”,选择“Editable  Email Notification”,其中Project Recipient List为接收邮件的收件人,可以在默认内容反面增加额外的收件人邮箱,用英文逗号分隔。如下图:


        如下图,点击右下角的“Advanced settings”,找到“Triggers”(触发器,设置在什么环境下发送邮件),然后点击下方的“Add Trigger”,增加发邮件的条件,保存。如下图:

3. 发送邮件测试

        起首点击“立刻构建”,然后查看“控制器输出”,如下图所示,可以看到发邮件的动作,末了收到邮件即为成功。



四、Jenkins 破解管理员暗码

1. 破解管理员暗码

  1. [root@jenkins ~]# cd /var/lib/jenkins/users
  2. [root@jenkins users]# ls -la
  3. 总用量 12
  4. drwxr-xr-x.  3 root    root      57 12月 17 14:58 .
  5. drwxr-xr-x. 11 jenkins jenkins 4096 12月 18 08:16 ..
  6. drwx------.  2 root    root      24 12月 17 20:36 admin_13975910729098858436
  7. -rw-r--r--.  1 root    root     301 12月 17 14:58 users.xml
  8. [root@jenkins users]# cd admin_13975910729098858436
  9. [root@jenkins admin_13975910729098858436]# vi config.xml
  10. 搜索定位到 <passwordHash>那一行,修改为
  11. <passwordHash>#jbcrypt:$2a$10$usctvlMlqJ8XswbJ0QCcRuZ6ItKL30r0mEXXi5cXCrnWITuyP2E5W</passwordHash>
  12. [root@jenkins admin_13975910729098858436]# systemctl restart jenkins
  13. 新密码为 000000
复制代码
2. 手动设置随机字符串

        若不想使用上述的暗码,我们也可以本身定义一个随机字符串,进入jenkins界面,点击右上角admin,点击设置,下拉找到“暗码”,本身定义一个随机字符串,将本身定义的随机字符串保存下来,位置自由,若以后忘记了暗码,可在 /var/lib/jenkins/users/admin 文件中,将字符串修改成本身定义的字符串,这样暗码就修改成功了。

五、Jenkins 部署 java项目

1. 准备工作

        本身申请一个私有git仓库,生成密钥对,将公钥添加到git服务端

  1. [root@jenkins ~]# ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
  2. [root@jenkins ~]# cat ~/.ssh/id_ed25519.pub
  3. ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJvm5NIavNB9Xpv3pdcSStS/hf47D2VK+SGKAGl4dnsZ 3193752631@qq.com
复制代码
        复制生成后的 ssh key,返回gitee个人主页,通过主页 「个人设置」->「安全设置」->「SSH 公钥」 ,将生成的“SSH密钥”添加到仓库中。如下图。

2. 毗连代码仓库

  1. [root@jenkins ~]# cd /home/
  2. [root@jenkins home]# git config --global user.name "gitee-ipromise"
  3. [root@jenkins home]# git config --global user.email "3193752631@qq.com"
  4. [root@jenkins home]# mkdir perfect
  5. [root@jenkins home]# cd perfect/
  6. [root@jenkins perfect]# git init  
  7. 初始化空的 Git 版本库于 /home/perfect/.git/
  8. [root@jenkins perfect]#  touch README.md
  9. [root@jenkins perfect]# git add README.md
  10. [root@jenkins perfect]# git commit -m "first commit"
  11. [master(根提交) b7f5d97] first commit
  12. 1 file changed, 0 insertions(+), 0 deletions(-)
  13. create mode 100644 README.md
  14. [root@jenkins perfect]# git remote add origin https://gitee.com/gitee-ipromise/perfect.git
  15. [root@jenkins perfect]# git push -u origin master   
  16. Username for 'https://gitee.com': gitee-ipromise
  17. Password for 'https://gitee-ipromise@gitee.com':
  18. Counting objects: 3, done.
  19. Writing objects: 100% (3/3), 211 bytes | 0 bytes/s, done.
  20. Total 3 (delta 0), reused 0 (delta 0)
  21. remote: Powered by GITEE.COM [1.1.5]
  22. remote: Set trace flag 084c23a7
  23. To https://gitee.com/gitee-ipromise/perfect.git
  24. * [new branch]      master -> master
  25. 分支 master 设置为跟踪来自 origin 的远程分支 master。
复制代码
        完成以上操纵后,访问代码仓库,就可以看到刚刚推送成功的README.md文件,在服务器上修改README.md文件里的内容,再次推送到代码仓库,测试是否可以或许推送更改的内容,操纵如下:

  1. [root@jenkins perfect]# vi README.md
  2. dshihihohsdoodou
  3. [root@jenkins perfect]# git add README.md
  4. [root@jenkins perfect]# git commit -m "first commit1"
  5. [master 5742dd6] first commit1
  6. 1 file changed, 1 insertion(+)
  7. [root@jenkins perfect]# git push -u origin master
  8. Username for 'https://gitee.com': gitee-ipromise
  9. Password for 'https://gitee-ipromise@gitee.com':
  10. Counting objects: 5, done.
  11. Writing objects: 100% (3/3), 258 bytes | 0 bytes/s, done.
  12. Total 3 (delta 0), reused 0 (delta 0)
  13. remote: Powered by GITEE.COM [1.1.5]
  14. remote: Set trace flag 8e4a2b83
  15. To https://gitee.com/gitee-ipromise/perfect.git
  16.    b7f5d97..5742dd6  master -> master
  17. 分支 master 设置为跟踪来自 origin 的远程分支 master。
复制代码
        以上操纵实验完成后,再次访问代码仓库,就可以看到README.md文件的内容发生更改,推送成功,如下图所示:


3. 下载 zrlog

        为了让我们的实验更加接近生产环境,我们需要一段Java的源代码,以是此处我们下载由Java编写的博客—— zrlog。
  1. [root@jenkins home]#  wget https://codeload.github.com/94fzb/zrlog/zip/master
  2. --2024-12-18 16:26:40--  https://codeload.github.com/94fzb/zrlog/zip/master
  3. 正在解析主机 codeload.github.com (codeload.github.com)... 20.205.243.165
  4. 正在连接 codeload.github.com (codeload.github.com)|20.205.243.165|:443... 已连接。
  5. 已发出 HTTP 请求,正在等待回应... 200 OK
  6. 长度:未指定 [application/zip]
  7. 正在保存至: “master.1”
  8.     [                                                                                         <=>                        ] 3,351,642    106KB/s 用时 32s   
  9. 2024-12-18 16:27:12 (103 KB/s) - “master.1” 已保存 [3351642]
  10. [root@jenkins home]# du -sh master  
  11. 3.2M        master
  12. [root@jenkins home]# unzip master
  13. [root@jenkins home]# mv zrlog-master/* perfect/
复制代码
4. 提交接码

  1. [root@jenkins home]# cd perfect/
  2. [root@jenkins perfect]# git add .
  3. [root@jenkins perfect]# git commit -m "add zrlog"
  4. [root@jenkins perfect]#  git push
  5. warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
  6. 修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
  7. 进行如下设置:
  8.   git config --global push.default matching
  9. 若要不再显示本信息并从现在开始采用新的使用习惯,设置:
  10.   git config --global push.default simple
  11. 参见 'git help config' 并查找 'push.default' 以获取更多信息。
  12. ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
  13. 为保持兼容,请用 'current' 代替 'simple' 模式)
  14. Username for 'https://gitee.com': gitee-ipromise
  15. Password for 'https://gitee-ipromise@gitee.com':
  16. Counting objects: 802, done.
  17. Compressing objects: 100% (714/714), done.
  18. Writing objects: 100% (800/800), 2.37 MiB | 1.57 MiB/s, done.
  19. Total 800 (delta 111), reused 0 (delta 0)
  20. remote: Resolving deltas: 100% (111/111), done.
  21. remote: Powered by GITEE.COM [1.1.5]
  22. remote: Set trace flag 26402e87
  23. To https://gitee.com/gitee-ipromise/perfect.git
  24.    5742dd6..f00fa55  master -> master
复制代码
        若我们可以在代码仓库中看到我们刚才提交的文件,阐明提交成功。如下图:

5. 安装 jdk (在长途机器上) 

(1)解压 jdk 包

        将jdk-17.0.10_linux-x64_bin.tar.gz 上传到长途机器/usr/local下

  1. [root@test ~]# cd /usr/local/
  2. [root@test local]# mkdir java
  3. [root@test local]# mv jdk-17.0.10_linux-x64_bin.tar.gz /usr/local/java/jdk-17.0.10_linux-x64_bin.tar.gz
  4. [root@test local]# cd java/
  5. [root@test java]# tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz
复制代码
(2)配置 java 的环境变量

  1. [root@test java]# vi /etc/profile
  2. 添加如下内容:
  3. export JAVA_HOME=/usr/local/java/jdk-17.0.10
  4. export PATH=$JAVA_HOME/bin:$PATH
  5. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  6. [root@test java]# source /etc/profile
复制代码
(3)验证

  1. [root@test java]# java -version
  2. java version "17.0.10" 2024-01-16 LTS
  3. Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
  4. Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表