一、gitlab部署
安装gitlab
[root@node4 ~]# yum install -y vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion curl policycoreutils openssh-server openssh-clients postfix
[root@node4 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.11.1-ce.0.el7.x86_64.rpm
[root@node4 ~]# yum install -y gitlab-ce-13.11.1-ce.0.el7.x86_64.rpm
#修改配置文件
[root@node4 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://172.20.21.175' #修改此行
#修改配置文件要执行此操作,执行配置文件并启动服务
[root@node4 ~]# gitlab-ctl reconfigure
#验证gitlab启动完成
[root@node4 ~]# gitlab-ctl status
run: alertmanager: (pid 8477) 53347s; run: log: (pid 7584) 53455s
run: gitaly: (pid 8360) 53350s; run: log: (pid 6650) 53615s
run: gitlab-exporter: (pid 8369) 53349s; run: log: (pid 7418) 53473s
run: gitlab-workhorse: (pid 8326) 53351s; run: log: (pid 7261) 53493s
run: grafana: (pid 8499) 53346s; run: log: (pid 8107) 53394s
run: logrotate: (pid 39065) 3235s; run: log: (pid 6430) 53632s
run: nginx: (pid 7278) 53488s; run: log: (pid 7316) 53485s
run: node-exporter: (pid 8341) 53350s; run: log: (pid 7366) 53480s
run: postgres-exporter: (pid 8490) 53346s; run: log: (pid 7732) 53448s
run: postgresql: (pid 6741) 53608s; run: log: (pid 6766) 53605s
run: prometheus: (pid 8378) 53348s; run: log: (pid 7508) 53461s
run: puma: (pid 7141) 53506s; run: log: (pid 7148) 53505s
run: redis: (pid 6479) 53625s; run: log: (pid 6487) 53624s
run: redis-exporter: (pid 8371) 53349s; run: log: (pid 7467) 53467s
run: sidekiq: (pid 7169) 53500s; run: log: (pid 7180) 53499s
gitlab相关的目录:
/etc/gitlab #配置文件目录
/run/gitlab #运行pid文件目录
/opt/gitlab #安装目录
/var/opt/gitlab #数据目录
/var/log/gitlab #日志目录
常用命令:
gitlab-rails #用于启动控制台进行特殊操作,如修改管理员密码、打开数据库控制台(gitlab-rails dbconsole)等
gitlab-psql #数据库命令行
gitlab-rake #数据备份恢复等数据操作
gitlab-ctl #客户端命令行操作行
gitlab-ctl stop #停止gitlab
gitlab-ctl start #启动gitlab
gitlab-ctl restart #重启gitlab
gitlab-ctl status #查看组件运行状态
gitlab-ctl tail nginx #查看某个组件的日志
[root@node4 ~]# gitlab-psql
psql (12.6)
Type "help" for help.
gitlabhq_production=# help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
gitlabhq_production=# \db
List of tablespaces
Name | Owner | Location
------------+-------------+----------
pg_default | gitlab-psql |
pg_global | gitlab-psql |
(2 rows)
gitlabhq_production=# \q
登录web管理界面
首次登入gitlab web界面,浏览器访问:http://172.20.21.175;首次登录web页面,必须先设置密码密码要求最少8位;使用用户root和设置的密码登录;
关闭账号注册
创建组和项目
git常用命令
使用 git 命令下载代码与提交等操作
git config --global user.name "name" #设置全局用户名
git config --global user.email xxx@yyy.com #设置全局邮箱
git config --global --list #列出用户全局设置,默认保存在~/.gitconfig文件中
git clone http://10.0.0.100/testgroup/testproject.git#git客户端测试clone项目
git add index.html / . #添加指定文件、目录或当前目录下所有数据到暂存区
git commit -m "comment" #提交文件到工作区
git status #查看工作区的状态
git push #将本地仓库提交代码到远程服务器
git pull #从服务器获取代码到本地仓库
git log #查看操作日志
vim .gitignore #定义忽略文件,即不放在仓库的文件
git reset --hard HEAD^^ #git版本回滚, HEAD为当前版本,加一个^为上一个,^^为上上一个版本
git reflog # #获取每次提交的ID,可以使用--hard根据提交的ID进行版本回退
git reset --hard 5ae4b06 #回退到指定id的版本
git branch #查看当前所处的分支
git checkout -b develop #创建并切换到一个新分支
git checkout develop #切换分支
# git clone http://172.20.22.14/root/testprojet.git
# git config --global user.email "git@example.com"
# git config --global user.name "git"
# git add .
# git commit -m "v1"
# git push
# git pull
# git log
二、部署Jenkins
安装Jenkins
环境配置:Jenkins基于JAVA实现,安装前需要安装JDK
[root@node2 ~]# yum install -y java-1.8.0-openjdk
[root@node2 ~]# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
[root@node2 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.280-1.1.noarch.rpm
[root@node2 ~]# yum install jenkins-2.280-1.1.noarch.rpm
[root@node2 ~]# rpm -qa | grep jenkins
jenkins-2.280-1.1.noarch
[root@node2 ~]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
[root@node2 ~]# grep -v "#" /etc/sysconfig/jenkins | grep -v "^$"
JENKINS_HOME="/var/lib/jenkins"
JENKINS_JAVA_CMD=""
JENKINS_USER="root"
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
JENKINS_PORT="8080"
JENKINS_LISTEN_ADDRESS=""
JENKINS_HTTPS_PORT=""
JENKINS_HTTPS_KEYSTORE=""
JENKINS_HTTPS_KEYSTORE_PASSWORD=""
JENKINS_HTTPS_LISTEN_ADDRESS=""
JENKINS_HTTP2_PORT=""
JENKINS_HTTP2_LISTEN_ADDRESS=""
JENKINS_DEBUG_LEVEL="5"
JENKINS_ENABLE_ACCESS_LOG="no"
JENKINS_HANDLER_MAX="100"
JENKINS_HANDLER_IDLE="20"
JENKINS_EXTRA_LIB_FOLDER=""
JENKINS_ARGS=""
[root@node2 ~]# systemctl start jenkins
登录Jenkins web管理界面
浏览器访问:
http://172.20.21.172:8080
[root@node2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
5f752eed3086455bb6440fbd4322bca9
选择安装jenkins插件
插件安装目录
插件目录/var/lib/jenkins/plugins/
安装和gitlab(和gitlab相连)和Blue Ocean(显示信息)的相关插件并安装
三、配置jenkins到gitlab非交互式拉取代码
jenkins服务器添加凭据:jenkins-凭据-jenkins-全局凭据-添加凭据
添加Jenkins服务器root用户的私钥
配置gitlib项目地址和用户,添加完成的证书没有报错表示认证通过
测试构建项目,点击立即构建
验证构建结果
四、创建pipeline项目实现自动构建并部署
master节点:172.20.21.172,agent节点:172.20.21.129,gitlab节点:172.20.22.14,后端web节点:172.20.22.170
添加Jenkins agent节点
添加agent节点:172.20.21.129,agent节点要与后端web服务器做免密钥认证
[root@agent ~]# yum install -y java-1.8.0-openjdk
[root@agent ~]# mkdir /var/lib/jenkins/
[root@agent ~]# yum install -y git
[root@agent ~]# ssh-keygen -t rsa -P ''
[root@agent ~]# ssh-copy-id root@172.20.21.170
系统管理-节点管理-新建节点
输入节点相关信息
输入节点的用户密码
确认节点状态
git节点添加对应的项目
添加用户 --> 添加组 --> 将添加的用户加到新添加的组 --> 创建项目
创建pipline
流水线定义pipline script
生成git流水线语法
点击构建,查看输出结果
版权声明:本文为u010864567原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。