1 rpm
下载地址
https://mirrors.jenkins-ci.org/redhat/
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.346-1.1.noarch.rpm
rpm -ivh jenkins-2.346-1.1.noarch.rpm
2 war
https://mirrors.tuna.tsinghua.edu.cn/jenkins
nohup java -jar /data/software/jenkins.war --httpPort=8777 --httpsPort=8778 > /data/software/jenkins.log 2>&1 &
3 YUM
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins
vi /etc/sysconfig/jenkins
service jenkins start
yum install jenkins --nogpgcheck
安装完以后重要的目录说明:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
vim /etc/sysconfig/jenkins
可选 修改工作目录
JENKINS_HOME=“/var/lib/jenkins”
可选 修改端口号
vim /etc/sysconfig/jenkins
JENKINS_PORT = “8888”(默认8080)
修改权限
JENKINS_USER = “root”
添加文件权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
修改jdk
vim /etc/rc.d/init.d/jenkins
在candidates=里加jdk
/usr/local/java/jdk1.8.0_171/bin/java
#修改以后必须使用此命令才能生效
systemctl daemon-reload
chkconfig jenkins on
// 浏览器访问jenkins
ip:端口(127.0.0.1:8888)
查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
4 Docker
docker pull jenkins/jenkins:alpine-jdk8
docker run -d --name jenkins jenkins/jenkins:alpine-jdk8
docker cp jenkins:/var/jenkins_home /data/
docker stop jenkins && docker rm jenkins
docker run -d --restart=unless-stopped --name jenkins -u root \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/esp/:/data/esp/ \
-v /data/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-p 9095:8080 -p 50000:50000 jenkins/jenkins:alpine-jdk8
docker logs -f jenkins
5 配置jenkins
5.1 安装Maven
Manage Jenkins -> Global Tool Configuration -> Maven
配置Maven插件
Manage Jenkins -> Manage Plugins -> filter搜索:Maven Integration
#!/bin/bash
project_name="manage"
dir_name="manage"
ps -ef | grep ${project_name}.jar | grep -v grep | awk '{print $2}' | xargs kill -9
cd /home/espuser/.jenkins/workspace/package_script
mv ${project_name}.jar /data/esp/${dir_name}/
echo "start project"
cd /data/esp/${dir_name}/
BUILD_ID=dontKillMe nohup java -jar ${project_name}.jar --spring.profiles.active=prod \
| cronolog ./logs/${project_name}/catalina-%Y-%m-%d.out >> /dev/null 2>&1 &
echo "start success"
6 Nginx
docker pull nginx:1.22-alpine && docker run -d --name nginx nginx:1.22-alpine
cd /data && docker cp nginx:/etc/nginx ./
cd nginx && docker cp nginx:/usr/share/nginx/html ./ && docker cp nginx:/var/log/nginx/ ./logs
docker stop nginx && docker rm nginx
docker run -d --name nginx --restart=on-failure -p 8000-9000:8000-9000 -p 80:80 -p 443:443 \
-v /data/nginx:/etc/nginx -v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/logs:/var/log/nginx nginx:1.22-alpine
--restart=on-failure:异常状态退出时自动重启 -p 8000-9000:8000-9000:映射整个8000~9000端口段到容器中,为将来业务拓展预留
7 Redis
docker pull redis:6.2.7-alpine
cd /data && mkdir redis && cd redis && wget https://raw.githubusercontent.com/redis/redis/6.2/redis.conf
vim redis.conf
#bind 127.0.0.1 #注释此配置;作用:限制redis只能本机访问
protected-mode no #改为:no;作用:redis保护模式,禁止外网访问
requirepass xxx #作用:redis连接密码,默认是注释的无需密码。建议手动打开设置
appendonly yes #改为yes;ADF持久化,单机建议开启;重启redis时可恢复数据(非必须);正常退出下:修改appendonly.aof文件删除末尾flushall后重启即可;异常奔溃下:修复aof文件:redis-check-aof --fix appendonly.aof后重启即可
appendfsync everysec # 保持默认everysec即可,每1秒持久化一次AOF,单机建议开启(非必须)
docker run -d --name redis --restart=on-failure -p 16379:6379 \
-v /data/redis/redis.conf:/etc/redis/redis.conf redis:6.2.7-alpine /etc/redis/redis.conf
8 MySQL
docker pull mysql:8.0.30 && docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.30
docker logs -f mysql
cd /data && mkdir mysql && cd mysql && docker stop mysql && \
docker cp mysql:/etc/my.cnf ./ && docker cp mysql:/var/lib/mysql ./data
docker rm mysql
docker run -d --name mysql --restart=on-failure -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql/my.cnf:/etc/my.cnf -v /data/mysql/data:/var/lib/mysql mysql:8.0.30
docker exec -it mysql bash
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
在[mysqld]下追加以下内容
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION