一、安装jenkins
docker search jenkins可以搜索docker官方仓库的镜像
然后从docker仓库中下载镜像
docker pull jenkinsci/blueocean
创建jenkins工作挂载目录
mkdir /var/jenkins_home -p
chown -R 1000:1000 /var/jenkins_home
执行如下命令创建启动jenkins容器
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker -v /var/jenkins_home:/var/jenkins_home jenkinsci/blueocean:latest
启动成功后输入ip:8080进入web界面
服务器上查看/var/jenkins_home/secrets/initialAdminPassword密码进入
然后选择推荐的插件安装,然后创建普通用户重启进入。然后你的jenkins已经部署好了
系统管理--进行插件安装,凭证管理、安全配置,节点配置
新建任务,创建流水线任务、自由风格任务等
二、安装gitlab
1、安装启动gitlab
docker search gitlab
docker pull gitlab/gitlab-ce
启动gitlab容器
cat <<EOF > start.sh
#!/bin/bash
HOST_NAME=gitlab.localhost.com
GITLAB_DIR=/gitlab-ce
docker run -d \
--hostname ${HOST_NAME} \
-p 7443:443 -p 7070:7070 -p 2222:22 \
--name gitlab \
--restart always\
-v ${GITLAB_DIR}/config:/etc/gitlab \
-v ${GITLAB_DIR}/logs:/var/log/gitlab \
-v ${GITLAB_DIR}/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
EOF
chmod + x start.sh && ./start.sh
# 给 start.sh 执行权限并启动
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
# --restart: always设置当宿主机重启后,容器也会重启
2、配置gitlab
按上面的方式,gitlab
容器运行
没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb
(宿主机路径:/gitlab-ce/config/gitlab.rb), 配置http协议所使用的访问地址(external_url配置的端口对应的是项目访问的地址同时也是对应的容器内部访问的端口,这里改成7070,容器里面nginx就会提供7070,不修改默认就是提供的80)
# 通过vim 来编辑相应的配置
vim /gitlab-ce/config/gitlab.rb
# # 修改http clone时显示的端口
external_url 'http://192.168.44.157:7070'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://192.168.44.157'
gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 此端口是run时22端口映射的2222端口
修改完之后重启gitlab
# 每次修改gitlab 配置都需要重启
docker restart gitlab
3、访问我们安装好GitLab
我们在之前运行的容器时,对外暴露了web 服务的端口是9090, 我们通过这个端口访问我们的安装好GitLab web客户端
http://192.168.44.157:7070/
如果打开出现502,不需惊慌,等几分钟初始化即可(每次重启都要等待几分钟即可!)
第一次进入要输入新的root
用户密码,设置好之后就可以进去gitlab
的登录页面
输入密码用户名root
和自己设置的密码, 进入gitlab
的主界面
用户偏好设置里可以把语言设置成中文
4、管理员设置
管理员主要日常对gitlab
的维护, 需要给团队对应的成员分配权限,Gitlab有管理员角色,拥有很多权限,包括用户的管理,项目的管理,权限的管理
等, 点击导航上的“扳手”(admin Area)图标, 进入管理台控制台:
4.1注册限制
本来一开始是打算让大家自己按照我写好的格式规范注册GitLab
账号,但是老是有人不遵守规范最后还得我来一个一个的提醒,大大的影响工作效率。因此我决定将GitLab
的注册功能屏蔽掉,如果有新人进公司需要GitLab账号统一由管理员分配账户给他们。
关于账号出现了以下几个问题:
- 莫名其妙出现很多陌生人的账号
- 团队成员的很多账户注册填写的
Email
和UserName
都不符合规范 - 不方便管理、
不安全
(离职人员难以控制)
点击工作台,左侧菜单栏“Setting” ---> "General" ---> "Sign-up restrictions"
去掉“Sign-up enabled” & “Require admin approval for new sign-ups” 之后下滑“Save changes”保存即可
4.2用户管理
点击工作台,左侧菜单栏“Users” -- New user添加新用户
主要的说一下权限(Access):
- Can create group: 是否创建群组
- Access level:
- Regular: 普通用户, 普通用户可以访问已给权限或者自己的组和项目
- Admin: 管理员, 管理员可以访问所有组、项目和用户、进行
gitlab
的维护
- External: 外部人员(一般很少用上)
如果用户离职, gitlab
用户账号处理有四种:
Deactivate this user: 停用此用户, 用户将被注销(只有注册用户才会有)
Block this user: 保留账号, 将会无法登录、用户将无法访问git存储库、 所有信息都会保留(建议使用此方式)
Delete user: 删除用户、部分信息会迁移到“Ghost User”
Delete user and contributions: 删除用户以及相关贡献
给普通用户修改密码(密码要求8位以上)
5、项目创建
下面我们就可以新建一个项目了,点击Create blank project
在宿主机测试clone
git add test.txt 添加文件到仓库
git commit -m "a new file" -m后面输入的是本次提交的说明,为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件
git push origin master 将本地的 master 分支推送到 origin 主机的 master 分支。