赞
踩
如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整
1. jdk,分别为1.8和17,根据自身项目决定,如果项目已经使用17则可以只安装17
1.8是项目使用,17是Jenkins使用
2.git选择2.X
3.maven3.6
4.gitlab12.0.2
5.Jenkins选择2.389
6.服务器centos7
我直接电脑管家下载,也可以官网下载,懒的麻烦直接电脑管家下载,至于想永久免费使用,可以直接百度爸爸,这里不过多赘述,傻瓜式安装无限下一步即可
直接阿里云下载: https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
直接选择最小化镜像: CentOS-7-x86_64-Minimal-2009.iso
打开VM软件
安装三个软件
net-tools以及wget
yum install net-tools -y 方便使用ifconfig 查看服务器ip
yum install wget -y 方便后续直接wget下载软件
yum install vim -y 文本编辑器
Linux连接工具,可以使用 xShell,我使用的是electerm
electerm下载地址: https://github.com/electerm/electerm/releases/tag/v1.25.41
GitHub下载,对网络有一定要求
下载完成傻瓜式安装,无限下一步即可
至此服务器准备完毕
配置jdk环境变量时,选择项目版本的jdk配置环境变量,注意jdk解压位置,路径别写错,更别写我的路径你的路径可能和我的不一样
1.下载jdk wget下载或直接下载ftps上传到服务器,此处直接下载后上传到服务器 没有安装wget直接使用 yum install -y wget 安装确保服务器有网 wget 软件下载路径 2.解压jdk压缩包 创建一个目录存放jdk mkdir /usr/local/java 将jdk解压到该目录 tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java/ tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java/ 进入jdk解压目录 cd /usr/local/java/ ll 指令查看当前目录下文件 3.配置环境变量,此处配置jdk8 vim /etc/profile 进入文件按 i 进入编辑模式 #文件末尾添加以下内容 export JAVA_HOME=/usr/local/java/jdk1.8.0_202 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 编辑完按 esc 退出编辑模式 按 : 输入 wq 保存退出
4.从新读取profile文件
source /etc/profile
0. 如果已安装git,此步骤可以直接跳过,如果想更换git版本也可以跟着一起从新安装 1.卸载git yum remove git 2.安装依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y 3.下载git,wget默认将文件下载在当前所处目录,或者直接下载tar包sftp传入Linux cd ~ 进入当前用户家目录或者 cd /root ,即/root目录,因为当前登陆用户是root wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz --no-check-certificate 4.解压到当前目录 tar -zxvf git-2.9.3.tar.gz 5.配置安装路径 cd git-2.9.3 ./configure prefix=/usr/local/git/ 6.编译安装 make && make install 7.配置环境变量 echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile 刷新配置 source /etc/profile 或者 vi /etc/profile export PATH=$PATH:/usr/local/git/bin source /etc/profile 8.查看git版本 git --version 9.初始化git信息,此处配置的邮箱都是后续gitlab用户的邮箱 git config --global user.name "xkcyyds" git config --global user.email "2057353320@qq.com" 生成秘钥,直接一路回车即可 ssh-keygen -t rsa -C "2057353320@qq.com" 查看公钥 cat ~/.ssh/id_rsa.pub
1.下载maven
wget https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz --no-check-certificate
该路径无效情况下可以直接去官网下载,或者拿到下载地址在服务器使用wget下载,目前我这个是有效的地址
--no-check-certificate用于去掉证书验证 因为https所以需要去掉
2.解压
创建目录
mkdir /usr/local/maven 存放maven
mkdir /usr/local/maven/repo 用于存放maven下载的依赖包
解压指定文件夹
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven/
3.修改配置文件 设置本地仓库以及阿里云仓库以及指定jdk版本
vim /usr/local/maven/apache-maven-3.6.3/conf/settings.xml
<localRepository>/usr/local/maven/repo</localRepository> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
4.配置maven环境变量
vim /etc/profile
文件最后添加如下内容
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
5.刷新配置文件
source /etc/profile
查看maven版本,成功输出信息则maven环境变量配置成功
mvn --version
1. 安装gitlab需要的组件 yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python 2. postfix启动邮件服务以及设置自启 根据需要选择是否开启 我没有开启 不开启可以跳到第三步 systemctl start postfix systemctl enable postfix 当启动时报: Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details. 2.1 先修改postfix中/etc/postfix/main.cf配置文件 inet_protocols = ipv4 inet_interfaces = all postfix check 检测文件,检测报错则安装下面依赖 2.2 修改完毕后依然报错,此时需要安装依赖,MySQL5.5使用该方式,5.7使用下面的方式 wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm 从新启动依然报错则是因为数据库版本问题,5.7MySQL自带libmysqlclient.so.20,而我们需要的是libmysqlclient.so.18 2.3 下载安装mysql依赖 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm rpm -ivh mysql-community 2.4再次启动可以成功 3. 下载gitlab 回到用户家目录 cd ~ 下载软件 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm --no-check-certificate 不加--no-check-certificate 可能会导致下载失败 4. 本地yum安装 yum -y localinstall gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm 5. 配置gitlab访问地址 http://192.168.56.137为你自身服务器ip, 查看ip指令 ifconfig sed -i "/^external_url/cexternal_url 'http://192.168.56.137'" /etc/gitlab/gitlab.rb 6. 修改gitlab访问端口,默认端口可能其他服务占用,可以自己指定访问端口 vim /etc/gitlab/gitlab.rb 修改 nginx['listen_port'] = 6868 (指定端口) 重置:gitlab-ctl reconfigure 重置会有点慢,耐心等一下 重置以后该文件监听端口也会改变,未改变需要手动改变一下 vim /var/opt/gitlab/nginx/conf/gitlab-http.conf listen *: 6868 (指定端口是上面的端口) gitlab-ctl restart 重启 gitlab-ctl tail 指令可以查看gitlab启动信息 7.访问 关闭防火墙或者放行端口6868,为了方便此处直接关闭防火墙 阿里云服务器需要登陆管理界面添加规则放行6868端口,此处不做演示 systemctl stop firewalld 查看防火墙状态 systemctl status firewalld ip:port http://192.168.56.137:6868/ 访问成功以后需要先设置密码 设置完密码后使用root账号加刚刚设置的密码登陆
进入目录后直接右键打开git bash界面
拉取仓库,注意地址后一定跟上端口否则拉取不了
git clone http://192.168.56.137:6868/root/demo.git
8. 配置邮件报警 可以不配置 根据情况自己选择 我没有配置,需要配置的需要进行步骤2操作 vim /etc/gitlab/gitlab.rb 57行以后 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' # SMTP 服务器 gitlab_rails['smtp_port'] = 465 # SMTP 服务器端口号 gitlab_rails['smtp_user_name'] = '123456@qq.com' # 邮件账号 gitlab_rails['smtp_password'] = '' # 邮件授权码 gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '123456@qq.com' 阿里云服务器访问gitlab的502问题,阿里云服务器默认开启交换分区 开启交换分区即可 dd if=/dev/zero of=/mnt/swap bs=512 count=8388616 mkswap /mnt/swap vim /etc/sysctl.conf 修改vm.swappiness = 60 默认数值是0 swapon /mnt/swap echo "/data/swap swap swap defaults 0 0" >> /etc/fstab cat /proc/swaps 查看是否成功挂载 free 再次查看交换分区是否开启成功
0.rpm包下载位置,请注意版本,版本太低会导致后续安装不了插件 此处选择的版本没有问题,但是需要jdk11及以上,所以上述安装了两个jdk版本 https://mirrors.jenkins-ci.org/redhat/ 1.下载Jenkins的RPM包,速度根据自身有快慢 wget https://mirrors.jenkins-ci.org/redhat/jenkins-2.389-1.1.noarch.rpm --no-check-certificate 2.安装 rpm -ivh jenkins-2.389-1.1.noarch.rpm 3.修改配置 vim /etc/sysconfig/jenkins JENKINS_USER="root" #这里改为root JENKINS_PORT="9898" #配置访问端口 4.关闭防火墙或者开启8088端口 5.配置jdk vim /etc/init.d/jenkins 在 candidates 内容最后添加本地安装jdk,必须11版本以上,该处选择17版本 该路径是你自己安装jdk的路径,如果路径和我一样可以直接复制 /usr/local/java/jdk-17.0.7
6.从新读取配置文件 systemctl daemon-reload 7.启动Jenkins systemctl start jenkins 从新启动Jenkins指令: systemctl restart jenkins 配置完启动不起来,报如下错误: Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details. 可以不使用systemctl的方式去启动暂停Jenkins,直接用Jenkins自带的服务启动 其实systemctl最终也是执行的这个命令 cd /etc/init.d # 从新启动 ./jenkins restart # 停止 ./jenkins stop # 状态 ./jenkins status 9.访问 ip:port 192.168.56.137:9898 访问报如下错误: AWT is not properly configured on this server. Perhaps you need to run your container with “-Djava.awt.headless=true”? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless
解决方案:
yum install -y dejavu-sans-fonts
yum install -y fontconfig
yum install -y xorg-x11-server-Xvfb
从新读取配置文件
systemctl daemon-reload
从新启动,确保在 /etc/init.d 执行该指令 从新启动后再次刷新访问
./jenkins restart
10.查看Jenkins密码
cat /var/lib/jenkins/secrets/initialAdminPassword
11.修改插件下载地址
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json
12.进入 Manage Jenkins -> Manage Plugin -> Advanced 最下面有 Update Site 设置为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
13.重启Jenkins
ip:8088/restart
14.汉化Jenkins
Manage Jenkins -> Manage Plugin -> available
输入 Localization: Chinese (Simplified)
点击:install without restart
15.安装自动化部署所需插件
// git插件
Git client
// gitlab插件
GitLab
// ssh插件
SSH Credentials
// maven插件
Maven Integration
直接点击 安装完成后… 几个字即可
http的git地址一定加上端口
注意修改jar包的名称,可以直接将该脚本放在服务器,使用 bash /root/脚本名称 该处直接运行脚本
jarPath=/var/lib/jenkins/workspace/demo/target/ 是Jenkins构建后jar生成的位置
脚本这里自己注意修改一下
#!/bin/bash workPath=/usr/local/project/test/ jarPath=/var/lib/jenkins/workspace/test/target/ jarName=test-0.0.1-SNAPSHOT.jar mkdir -vp $workPath echo "==========创建工作空间==========" chmod 755 $workPath pid=`ps -ef | grep test-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid echo "==========杀死存在进程==========" fi echo $workPath$jarName echo $jarPath$jarName if [ -e $workPath$jarName ]; then echo "==========启动文件存在, 执行删除启动文件==========" rm -rf $workPath$jarName else echo "==========启动文件不存在==========" fi if [ -e $jarPath$jarName ]; then cp $jarPath$jarName $workPath echo "==========目标文件存在, 执行拷贝启动文件==========" else echo "==========目标文件不存在==========" fi cd $workPath export BUILD_ID=dontKillMe echo "==========执行启动demo服务==========" nohup java -jar test-0.0.1-SNAPSHOT.jar > test-logs.log 2>&1 & echo "==========启动成功demo服务=========="
16.如何卸载Jenkins rpm -e jenkins rpm -ql jenkins find / -iname jenkins | xargs -n 1000 rm -rf 17.升级Jenkins 17.0关闭Jenkins服务 systemctl stop jenkins systemctl status jenkins 17.1下载war包 https://mirrors.tuna.tsinghua.edu.cn/jenkins/war 17.2查找服务器Jenkinswar位置 find / -name jenkins.war 17.3进入war所在位置 cd /usr/lib/jenkins/ 17.4将war移动到其他目录 mkdir /root/jenkins 17.5将下载的war包放入该文件 mv /root/jenkins.war ./ 17.6启动服务 systemctl start jenkins 17.7注意Jenkins版本与jdk对应版本,否则启动失败
我码的累你看的也累,一键三连支持一下,谢谢大家了,不好的地方也欢迎大家指出,码字不易转载请注明出处
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。