

| 系统要求/软件要求 | ||
|---|---|---|
| 系统 | 2c4g | 10.0.0.72/172.16.1.72 |
| 软件 | jdk 11版 |
1.rpm包/yum yum安装jenkins
2.war包 tomcat --> war
3.jar包 java -jat xx.jar -参数
1.安装jdk
yum install -y java-11
2.安装jenkins
rpm -ivh jenkins-2.387.1-1.1.noarch.rpm

1.设置下次开机自启动
systemctl enable jenkins
2.启动jenkins
systemctl start jenkins

1.将插件压缩包解压到/var/lib/jenkins/plugins/
tar xf jenkens-2.387.1-lts-plugins.tar.gz -C /var/lib/jenkins/plugins/
2.修改插件目录拥有者
chown -R jenkins.jenkins /var/lib/jenkins/plugins/
3.重启jenkins服务
systemctl restart jenkins

到服务器上查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword










| jenkins项目类别 | 说明与应用场景 |
|---|---|
| freestyle | 绝大部分代码都可以使用这个类型的任务 |
| maven项目 | java代码(maven编译) |
| pipeline(流水线) |







jenkins服务运行一些命令的时候,会有权限问题,所以这里我们修改为root用户
1.修改服务配置文件
sed -r -i '/^User|Group/s#jenkins#root#g' /usr/lib/systemd/system/jenkins.service
2.检查
egrep '^User|^Group' /usr/lib/systemd/system/jenkins.service
User=root
Group=root
3.重新加载服务配置文件
systemctl daemon-reload
4.重启服务
systemctl restart jenkins





ssh-keygen


1.创建存放代码的目录
mkdir -p /code/bird/
2.rz上传bird.tar.gz到/code/bird/
3.解压代码
tar xf bird.tar.gz
4.删除压缩包
rm -f bird.tar.gz
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
git init
git remote add origin git@gitlab.zhubl.xyz:gitlab-instance-27370d95/bird.git
git remote -v
git add .
git commit -m 'v1.0'
git tag -a v1.0 -m v1.0
git push -u origin master
git push -u origin --tags



ssh-keygen







#0.vars
CODE_NAME=bird.tar.gz
CODE_TMP_DIR=/opt/
CODE_DIR=/app/code/bird/
IP_ADDRS="10.160.11.234"
#1.打包
tar zcf ${CODE_TMP_DIR}${CODE_NAME} .
#2.分发-后期交给ansible copy模块/unarchive 模块
for ip in ${IP_ADDRS}
do
scp ${CODE_TMP_DIR}${CODE_NAME} $ip:${CODE_TMP_DIR}
done
#3.部署-后期交给ansible
#(未涉及到) tag标签
#代码直接解压到/app/code/bird/目录下即可.
for ip in ${IP_ADDRS}
do
ssh $ip <<-EOF
[ -d ${CODE_DIR} ] || mkdir -p ${CODE_DIR}
tar xf ${CODE_TMP_DIR}${CODE_NAME} -C ${CODE_DIR}
EOF
done
#4.日志记录
#5.通知


vim index.html

git add .
git commit -m 'v3.1'
git tag -a "v3.1" -m "v3.1"
git push -u origin master
git push -u origin --tags




This project is parameterized参数化构建
参数化构建:
执行项目的时候增加一些交互(传参). 类似于shell的read.
参数本质是变量(jenkins页面,shell).
eg:
1. 执行的时候选择指定的tag标签
2. 部署到指定的服务器
3. 选择部署到测试环境,生产环境.
常用的参数:
1. choice param选项参数:列好并进行选择.下拉菜单. 测试环境/生产环境,部署/回滚
2. git参数: 比如获取git仓库里面的tag标签.
4. 文本参数: 用于做一些记录.






#0.vars
CODE_NAME=bird_${TAG_NAME}.tar.gz
CODE_VERSION=bird_${TAG_NAME}
CODE_TMP_DIR=/opt/
CODE_DIR=/app/code/bird
IP_ADDRS="10.160.11.234"
# =============== 1.打包 ===============
function package() {
tar zcf ${CODE_TMP_DIR}${CODE_NAME} .
}
# =============== 2.分发 ===============
function fenfa() {
for ip in ${IP_ADDRS}
do
scp ${CODE_TMP_DIR}${CODE_NAME} $ip:${CODE_TMP_DIR}
done
}
# =============== 3.部署 ======================
function deploy() {
for ip in ${IP_ADDRS}
do
ssh $ip <<EOF
rm -rf ${CODE_DIR}
mkdir -p ${CODE_TMP_DIR}${CODE_VERSION}
ln -s ${CODE_TMP_DIR}${CODE_VERSION} ${CODE_DIR}
tar xf ${CODE_TMP_DIR}${CODE_NAME} -C ${CODE_TMP_DIR}${CODE_VERSION}
EOF
done
}
# =============== 4.清理临时文件 ===============
function clean_temp() {
rm -rf ${CODE_TMP_DIR}${CODE_NAME}
}
function main() {
package
fenfa
deploy
clean_temp
}
main
#5.日志记录
#6.通知






