Jenkins简介
Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。我们可以用Jenkins来构建和部署我们的项目,比如说从我们的代码仓库获取代码,然后将我们的代码打包成可执行的文件,之后通过远程的ssh工具执行脚本来运行我们的项目。
一:Jenkins的安装
1.下载Jenkins的Docker镜像
docker pull jenkins/jenkins:lts
2.在Docker容器中运行Jenkins
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
3.Jenkins的配置
①、运行成功后访问该地址登录Jenkins,第一次登录需要输入管理员密码:http://IP地址:8080/,通过docker logs jenkins 查看启动日志获取initialAdminPassword密码
docker logs jenkins
确保以下插件被正确安装
1.根据角色管理权限的插件:Role-based Authorization Strategy
2.远程使用ssh的插件:SSH
②、通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置
新增maven的安装配置:
③、在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了:
④、角色权限管理
我们可以使用Jenkins的角色管理插件来管理Jenkins的用户,比如我们可以给管理员赋予所有权限,运维人员赋予执行任务的相关权限,其他人员只赋予查看权限。
在系统管理->全局安全配置中启用基于角色的权限管理:
⑤、进入系统管理->Manage and Assign Roles界面:
⑥、添加角色与权限的关系:
二、Docker安装Gitlab (https://www.cnblogs.com/diaomina/p/12830449.html)
# 1、查找GitLab镜像
docker search gitlab
# 2、拉取gitlab docker镜像
docker pull gitlab/gitlab-ce:latest
# 3、运行GitLab并运行容器
docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /usr/local/gitlab/etc:/etc/gitlab \
-v /usr/local/gitlab/log:/var/log/gitlab \
-v /usr/local/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
# 4进入容器内
docker exec -it gitlab /bin/bash
# 5、修改gitlab.rb (先查看下一个步骤再决定是否进行本步骤,本步骤是可以跳过的)
# 打开文件
vi /etc/gitlab/gitlab.rb
# 这个文件是全注释掉了的,所以直接在首行添加如下配置
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 (图片上拼写错误,正确的是external_url)
external_url 'http://172.16.107.194:9980'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '172.16.107.194'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 6、修改gitlab.yml (这一步原本不是必须的,因为gitlab.rb内配置会覆盖这个,为了防止没有成功覆盖所以我在这里进行配置,当然你也可以选择不修改gitlab.rb直接修改这里)
# 打开文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 配置一:找到gitlab标签,将其子标签如下修改
hotst:172.16.107.194
port: 9980
https: false
ssh_host:172.16.107.194
# 配置二:找到gitlab_shell标签下的ssh_port,将其修改为9922
# 7、让修改后的配置生效
gitlab-ctl reconfigure
# 8、重启gitlab
gitlab-ctl restart
命令解释:
-i 以交互模式运行容器,通常与 -t 同时使用命令解释:-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 后台运行容器,并返回容器ID
-p 9980:80 将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口
-p 9922:22 将容器内22端口映射至宿主机9922端口,这是访问ssh的端口
-v /usr/local/gitlab-test/etc:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-test/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab-test 设置容器名称为gitlab-test
gitlab/gitlab-ce 镜像的名称,这里也可以写镜像ID
将代码上传到Git仓库
执行脚本准备
评论