GitLab
GitLab安装
https://gitlab.cn/install/?version=ce
CentOS 下安装
1. 安装和配置必须的依赖项
在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
(可选)下一步,安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。
2. 下载/安装极狐GitLab
配置极狐GitLab 软件源镜像。
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
接下来,安装极狐GitLab。确保您已正确设置您的 DNS,并更改 https://gitlab.example.com 为您要访问极狐GitLab 实例的 URL。安装包将在该 URL 上自动配置和启动极狐GitLab。
对于 https 站点,极狐GitLab 将使用 Let’s Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://(不带s)。
如果您想为初始管理员用户(root)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。
执行如下命令开始安装:
# 配置自己的访问地址 http://192.168.153.105
# sudo EXTERNAL_URL="http://192.168.153.105" yum install -y gitlab-jh
sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-jh
安装完成:
3. 访问极狐GitLab 实例并登录
除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password
文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root
登录。
head /etc/gitlab/initial_root_password
3.1 修改密码
3.2 常用命令
有关安装和配置的详细说明,请参阅我们的文档。
4. 后续配置
完成安装后,请参考建议的后续配置,包括身份验证选项和注册限制的配置。
Docker 下安装
https://docs.gitlab.cn/jh/install/docker.html
1. 安装Docker
1.更新yum源
yum update
2.安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加镜像
//国外镜像
yum-config-manager --add-repo https://download.docker,com/1inux/centos/docker-ce.repo
//阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/1inux/centos/docker-ce.repo
4.查看源中可使用版本
Tist docker-ce --showdupTicates sort -r
5.安装指定版本
yum insta11 docker
6.配置开机启动项
systemct] start docker
systemctI enable docker
docker version
2. 设置卷位置
在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME
,指向配置、日志和数据文件所在的目录。 确保该目录存在并且已授予适当的权限。
对于 Linux 用户,将路径设置为 /srv/gitlab
:
export GITLAB_HOME=/srv/gitlab
对于 macOS 用户,使用用户的 $HOME/gitlab
目录:
export GITLAB_HOME=$HOME/gitlab
GITLAB_HOME
环境变量应该附加到您的 shell 的配置文件中,以便它应用于所有未来的终端会话:
Bash:~/.bash_profile
ZSH:~/.zshrc
极狐GitLab 容器使用主机装载的卷来存储持久数据:
本地位置 容器位置 使用
$GITLAB_HOME/data /var/opt/gitlab 用于存储应用程序数据。
$GITLAB_HOME/logs /var/log/gitlab 用于存储日志。
$GITLAB_HOME/config /etc/gitlab 用于存储极狐GitLab 配置文件。
3. 安装gitLab
hostname 可以配置域名或者ip
sudo docker run --detach \
--hostname 192.168.153.104 \
--publish 443:443 --publish 80:80\
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
3.1 查看启动日志
3.2 查看密码
docker exec -it gitlab /bin/bash
head /etc/gitlab/initial_root_password
新建项目,测试
jenkins (war包方式)
https://www.jenkins.io/zh/download/
系统要求
最低推荐配置:
- 256MB可用内存
- 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
为小团队推荐的硬件配置:
- 1GB+可用内存
- 50 GB+ 可用磁盘空间
软件配置:
- Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
安装JDK
jenkins.war 包可能运行不了,需要安装java11版本
## 查看jdk版本
yum search java|grep jdk
## 下载 jdk11
yum install -y java-8-openjdk
or
yum install -y java-11-openjdk
启动jenkins
初始化
http://192.168.153.103:8080/
- 输入密钥初始化
- 选择推荐插件安装
安装Maven
# 解压
[root@localhost ~]# tar zxvf apache-maven-3.9.5-bin.tar.gz
# 移动
[root@localhost ~]# mv apache-maven-3.9.5 /usr/local/maven
# 检查可运行
[root@localhost ~]# /usr/local/maven/bin/mvn -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /usr/local/maven
Java version: 11.0.20, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
安装Maven 插件
构建item
选择maven 构建项目
复制远程仓库地址,如果出现以下提示,则需要安装一下git
配置maven
自动构建配置
安装 Publish Over SSH 插件
配置 Publish over SSH
远程git信息
GitLab钩子
下载插件Build Authorization Token Root
构建请求配置如下:
构建触发器配置
测试
gitLab中配置 WebHooks
配置网络设置
允许访问请求,防止配置Hooks时出现以下异常
项目 Hooks配置
测试
gitlab 模拟测试
提交代码测试
几种构建方式
- 快照依赖构建/Build whenever a SNAPSHOT dependency is built
- 当依赖的快照被构建时执行本job
- 触发远程构建 (例如,使用脚本)
- 远程调用本job的restapi时执行本job
- job依赖构建/Build after other projects are built
- 当依赖的job被构建时执行本job
- 定时构建/Build periodically
- 使用cron表达式定时构建本job
- 向GitHub提交代码时触发Jenkins自动构建/GitHub hook trigger for GITScm polling
- Github-WebHook出发时构建本job
- 定期检查代码变更/Poll SCM
- 使用cron表达式定时检查代码变更,变更后构建本job
定时构建
表达式配置:https://crontab.guru/
配置邮箱
Jenkins 凭证配置
SMTP server 配置
检查选用邮箱的Smtp配置信息
邮件通知 配置
触发配置
项目构建后操作配置
测试
自动化部署到Docker容器中
手动打包测试
dockerfile
FROM openjdk:11
EXPOSE 8080
WORKDIR /root
ADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]
打包
docker build -t demo
.
自动构建
修改ssh 发送文件位置
Jenkins 集群
增加节点
添加
并发构建
项目并发构建配置
流水线 pipeline
流水线既能作为任务的本身,也能作为Jenkinsfile
使用流水线可以让我们的任务从ui手动操作,转换为代码化,像docker的dockerfile一样,从shell命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来,同时也可以编辑开发Jenkinswebui不能完成的更复杂的构建逻辑,作为开发者可读性也更好
创建流水线项目
配置流水线
完整语法
5个必备的组成部分
pipeline:整条流水线
agent:指定执行器
stages:所有阶段
stage:某一阶段,可有多个
steps:阶段内的每一步,可执行命令
问题
如果出现script not yet approved for use
提示,需要点击 Approve
(批准)即可