Package download
Configure environment
#decompression tar zxf apache-maven-xxxx.tar.gz -C /usr/local tar zxf gradle-xxxx.tar.gz -C /usr/local tar zxf node-xxxxx.tar.gz -C /usr/local tar zxf apache-ant-xxxx.tar.gz -C /usr/local #Add environment variable vim /etc/profile export MAVEN_HOME=/usr/local/apache-maven-3.6.0 export ANT_HOME=/usr/local/apache-ant-1.10.5 export GRADLE_HOME=/usr/local/gradle-5.3 export NODE_HOME=/usr/local/node-v10.15.3-linux-x64 export JAVA_HOME=/usr/local/jdk1.8.0_201 export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$GRADLE_HOME/bin:$NODE_HOME/bin export PATH=$PATH:$JAVA_HOME/bin # Effective global environment variable source /etc/profile
Build tool integration
It should be emphasized here that Jenkins calls these tools through environment variables. There are two ways: one is to add environment variables of building tools in Jenkins system configuration, and the other is to define them directly in Jenkins file. There is no difference in the implementation effect. The latter is more flexible, which is good for configuring Jenkins stateless.
Configuration through Jenkins
We open the system management - > global tool configuration page, which is where we configure the build tools we use in the process of running the pipeline. If you don't find maven, you need to install the plug-in Maven Integration.
Here we define the construction tool by the way of variable name and variable value. The variable name cannot conflict, but can be case. On the value conservative point of variable can be defined as make_ Home / usr / local / apache-maven-3.6.0 /, or absolute path / usr/local/apache-maven-3.6.0/bin/mvn. How can we use the tool in Jenkins file after defining the tool?
Use in Jenkinsfile: as shown in the above figure, the name of maven variable I defined is M3. Next, use tool in Jenkinsfile to get the variable value. As follows:
stage("mavenBuild"){ steps{ script{ def mvnHome = tool 'M3' sh "${mvnHome}/bin/mvn clean package " } } }
Configuration via Jenkinsfile
The definition in Jenkinsfile is the same as that in the above system. We only need to define the variable name and value directly in the file. It is then called directly.
stage("mavenBuild"){ steps{ script{ def mvnHome = '/usr/local/apache-maven-3.6.0' sh "${mvnHome}/bin/mvn clean package " } } }
Now are you clear about the integration of build tools? For example, the current construction tools you use are not in my scope of examples. I believe you know how to integrate through this article. Right: install the build tool in the system and define the environment variables in Jenkins file. Special tools special treatment!
Publishing tool installation
We often use the two tools of saltstack and ansible for publishing tools. Here is how to integrate them.
Install saltstck
saltstack is also a C/S architecture. It needs to install the salt minion client in the application server.
yum source: https://mirrors.tuna.tsinghua.edu.cn/saltstack/#rhel
#install yum –y install salt-master salt-minion #start service salt-master start service salt-minion start #enable chkconfig salt-master on chkconfig salt-minion on
Install ansible
Ansible does not need to install the client. It communicates through SSH protocol. Use the / etc/ansible/hosts file to control the host.
yum install epel-release ansbile service ansible start
Publishing tool integration
stage("SlatDeploy"){ steps{ script{ //saltstack sh " salt ${host} test.ping " //ansible sh " ansible -m ping ${host} " } } }
For the time being, you need to read the details of the release tool on your own. saltstack has API services that encapsulate HTTP API s in jenkinsfile.