Jenkins+ansible前后端构建项目

Jenkins服务器准备

## Jenkins服务器安装git,ansible工具
[root@jenkins ~]# yum -y install epel-release git ansible
##本地域名解析
[root@jenkins ~]# vim /etc/hosts
image-20240921144503604
##ansible配置主机清单
[root@jenkins ~]# vim /etc/ansible/hosts
image-20240921144748839
##准备ssh密钥对
[root@jenkins ~]# ssh-keygen 一路回车
##将产生的公钥发送给主机清单中的服务器
[root@jenkins ~]# ssh-copy-id tomcat
[root@jenkins ~]# ssh-copy-id nginx
##修改ansible配置文件 
[root@jenkins ~]# vim /etc/ansible/ansible.cfg
image-20240921151108692

配置maven,jdk,ansible,nodejs工具

image-20240921141945542 image-20240921142054158 image-20240921142127186 image-20240921142218320

Jenkins+gitlab配置

gitlab+Jenkins的配置略

Jenkins自动化构建+gitlab+项目

image-20240921143826690 image-20240921143235321

gitlab仓库配置Jenkins公钥

[root@jenkins ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK/eI5/n5tlhURj7Zhy/7NayeSzBiD4Ew+HRMIxZBBYP3XIS5ZjplJhhCqC8NFHy8DQWrskakB1t/A7CGj9QB27obe/joGRM5Hr0Dx01YNMqA3h0JOMFUqe/1ekbTyARs4x5Z8FTL22OFDLyIRc7y0oluUajz+EJp6btWYgIckhuQzSYEB7T/AncfkNmgd5XBcu7LCkVpEhatj6DqirNjvHg1K6fJH5lIkkiQ7lh2O2bkctliIRZYdmvrYef6BUXrCFialJU/xihS1/mAOqqMDAJIUqvD1Xq5x4mWjb3Nw4PI8xJgGaTBlPsHc6+MLn5kc4Bw+NRbQYlD5jA0ZogLD root@client
image-20240921143623135

ansible前端项目打包

ansible ad-hoc执行打包

注意

采用ansible进行打包并发送到客户端的时候 不需要构建后的操作 ansible本身相当于在远程主机上执行操作

所以 在ansible命令执行之前,先要将Jenkins拉下的项目代码进行打包,然后使用ansible命令将打包后的项目代码发送到远程主机

image-20240921155449271 image-20240921155609069 image-20240921160055089 image-20240921162001157 image-20240921161036952 image-20240921161128819 image-20240921161344298 image-20240921162131613

ansible playbook打包

编写一个剧本
[root@jenkins playbook]# pwd
/etc/ansible/playbook
[root@jenkins playbook]# vim ruoyiweb.yml
---
 - hosts: web
   user: root
   tasks:

     - name: 复制打包的项目代码
       unarchive:
         src: /root/.jenkins/workspace/ruoyiweb/ruoyi-ui/dist.tar.gz
         dest: /ruoyi/ruoyi-ui/
     - name: 赋予项目代码权限
       shell: chmod 755 /ruoyi/ruoyi-ui/ -R

image-20240921164212988 image-20240921162853419 image-20240921163206696 image-20240921164049202

ansible 后端项目打包

anansible ad-hoc模式执行打包

image-20240921170340797 image-20240921173416892 image-20240921170823719 image-20240921171035149 image-20240921171201565 image-20240921174255424 image-20240921174435557

anansible playbook模式执行打包

编写一个playbook
[root@jenkins playbook]# pwd
/etc/ansible/playbook
[root@jenkins playbook]# vim ruoyijava.yml
---
 - hosts: java
   user: root
   tasks:
     - name: 将打包的后端代码发送的远程主机
       copy:
         src: /root/.jenkins/workspace/ruoyijava/ruoyi-admin/target/ruoyi-admin.jar
         dest: /opt/java
     - name: 执行脚本启动后端代码
       shell: nohup /opt/java/java1.sh &
image-20240921175304298
Jenkins配置ansible playbook
image-20240921175419767 image-20240921175828901 image-20240921180228753 image-20240921180204813

Ansible远程执行脚本启动Tomcat,剧本执行没有错误,tomcat却未启动