JenKins和GitLab
# 安装vim和ifconig
# ifconfig
yum search ifconig
1
# vim
1、先执行: rpm -qa | grep vim 查看是否有显示下列三行代码(版本号等可能不同,不用在意)
vim-enhanced-7.4.~~~
vim-minimal-7.4.~~~
vim-common-7.4.~~~
2、如果全都没有,则执行: yum -y install vim*
3、如果只是缺了其中的某条,就下载哪条: yum -y install vim-xxxx
1
2
3
4
5
6
7
2
3
4
5
6
7
# gitlab
- 安装相关依赖
yum install -y curl policycoreutils-python openssh-server openssh-clients postfix
1
- 启动ssh服务&设置为开机自启
systemctl enable sshd && sudo systemctl start sshd
- 设置postfix开机自启,并且postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
- 开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
1
2
3
2
3
- 安装gitlab
1、下载 10.8.2版本安装包
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
2、cd /opt/
3、mkdir gitlab
4、cd gitlab/
5、将安装包上传
6、执行命令
rpm -ivh gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 修改gitlab配置
1、输入
vim /etc/gitlab/gitlab.rb
2、修改gitlab 访问地址和端口
1. 找到 external_url ,将引号里的地址改成 'http://本机IP地址:82'
2. 找到 nginx['listen_port'],将值改为82(让gitlab默认监听82端口)
1
2
3
4
5
2
3
4
5
- 重载配置及启动gitlab
1、 执行命令
gitlab-ctl reconfigure
gitlab-ctl restart
1
2
3
2
3
遇到报错:
Running handlers:
There was an error running gitlab-ctl reconfigure:
execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] (postgresql::enable line 80) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
STDOUT: The files belonging to this database system will be owned by user "gitlab-psql".
This user must also own the server process.
STDERR: initdb: invalid locale settings; check LANG and LC_* environment variables
---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
解决:
这是由于系统编码问题造成的,解决方法如下:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
执行完上面三个命令之后,最后还需要执行下面这个命令
source ~/.bashrc
最后再执行 gitlab-ctl reconfigure ,过程可能会需要几分钟,耐心等待出现
gitlab Reconfigured! #即代表执行成功!
#紧接着再执行
gitlab-ctl restart
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 把端口添加到防火墙
1、输入命令
firewall-cmd --zone=public --add-port=82/tcp --permanent
2、重启防火墙
firewall-cmd --reload
1
2
3
4
2
3
4
- 如果Gitlab的IP地址已经更换,那么同时也需要更换项目中的IP地址
1、执行指令 cd /var/opt/gitlab/gitlab-rails/etc
2、执行指令 vim gitlab.yml
3、将里面原来的IP地址改成现在的IP地址即可(SSH连接的地址也要记得同时更改)
4、重启服务 gitlab-ctl restart
1
2
3
4
2
3
4
# 更改网络配置
- 先备份原来设置
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
PERSISTENT_DHCLIENT="yes"
1
2
3
4
5
2
3
4
5
# jenkins
# 1、安装 JDK 环境
# 2、获取 jenkins 安装包
1、 mkdir /opt/jenkins
2、 上传安装包
3、 执行命令安装 rpm -ivh jenkins-xxxx(安装包全名)
1
2
3
2
3
# 3、修改配置
1、 vim /etc/sysconfig/jenkins
2、 修改内容:
JENKINS_USER="root"
JENKINS_PORT="8888"
1
2
3
4
5
2
3
4
5
# 4、启动jenkins
systemctl start jenkins
1
报错
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
1
处理方式:
执行指令 systemctl status jenkins.service
显示:
jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2021-06-16 11:24:07 UTC; 6min ago
Docs: man:systemd-sysv-generator(8)
Jun 16 11:24:07 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
Jun 16 11:24:07 localhost.localdomain runuser[581]: pam_unix(runuser:session): session opened for user root by (uid=0)
Jun 16 11:24:07 localhost.localdomain jenkins[571]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Jun 16 11:24:07 localhost.localdomain runuser[581]: pam_unix(runuser:session): session closed for user root
Jun 16 11:24:07 localhost.localdomain systemd[1]: jenkins.service: control process exited, code=exited status=1
Jun 16 11:24:07 localhost.localdomain jenkins[571]: [FAILED]
Jun 16 11:24:07 localhost.localdomain systemd[1]: Failed to start LSB: Jenkins Automation Server.
Jun 16 11:24:07 localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
Jun 16 11:24:07 localhost.localdomain systemd[1]: jenkins.service failed.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
原因:jenkins 找不到 java 的路径
解决:
1、 vim /etc/init.d/jenkins
2、 找到 candidates="
3、 在引号中填入自己的java路径,如:/usr/local/java/自己的jdk包名/bin/java
4、 执行 systemctl daemon-reload
1
2
3
4
2
3
4
# 安装jenkins插件
# 1、更改插件下载地址
jenkins->Manage jenkins->Manage Plugins,点击Advanced
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
sumbit后,直接在浏览器输入:jenkins地址/restart,重启 jenkins
然后进入linux里,cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins-
ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i
's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
1
2
3
4
5
2
3
4
5
# 2、下载插件
Jenkins->Manage Jenkins->Manage Plugins,点击Available
# 用户权限管理
# 1、安装Role-based Authorization Strategy 插件
# 2、更改授权策略
jenkins->Manage jenkins->Conigure Global Security
授权策略选择 Role-Based Strategy
点击保存
# 3、创建角色及分配权限
- jenkins->Manage jenkins->Manage and Assign Roles
- 点击 Manage Roles
# 凭证管理
# 1、安装Credentials Binding插件
# 2、
# 安装Git插件和工具
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及CenOS7上安装Git工具
# jenkins插件直接搜索 Git既是
# CentOS7上安装Git工具:
yum -y install git #安装之前最好搜索一下都有哪些版本的Git
git --version #查看是否安装成功
1
2
2
# 宝塔
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://218.20.7.51:8888/d3837c4f
内网面板地址: http://192.168.3.12:8888/d3837c4f
username: g3myapx3
password: 86628f7c
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
Time consumed: 2 Minute!
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# Linux防火墙限制IP
# iptables防火墙
# 先查看iptables防火墙是否有限制
执行指令 :firewall-cmd --get-active-zones 查看有哪些域是使用的
假设是public域生效,则执行指令 firewall-cmd --zone=public --list-all
如果多个域生效,则执行指令 firewall-cmd --list-all
PS:可以留意一下 ssh服务有没有开放,如果没有得话就需要开放ssh
firewall-cmd --permanent --add-service=ssh
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# rich rules配置IP白名单
# 基本选项
accpet允许,reject禁止
--add-rich-rule:新增
--remove-rich-rule:删除
--query-rich-rule:查询
1
2
3
4
2
3
4
# 设置IP和端口:
1.新增
永久允许某个ip访问某个端口:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.111" port protocol="tcp" port="3306" accept"
永久允许某个网段访问某些端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306-9999" accept"
2.删除
永久删除某个ip访问某个端口:
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.111" port protocol="tcp" port="3306" accept"
3.查询
查询某个ip访问某个端口: 如果加 --permanent 只显示是否永久有效,返回 yes|no
firewall-cmd --query-rich-rule="rule family="ipv4" source address="192.168.1.111" port protocol="tcp" port="3306" accept"
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 设置IP和服务:
1.新增
永久允许某个ip段访问某个服务:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept"
2.删除
永久删除某个ip段访问某个服务:
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept"
3.查询
查询某个ip段对某个服务的访问状态: 如果加 --permanent 只显示是否永久有效,返回 yes|no
firewall-cmd --query-rich-rule="rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept"
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# tcpd服务器防火墙配置
# hosts.allow文件,负责控制可以访问本机的IP地址
进入 etc目录先查看是否存在 hosts.allow 文件,有再进行vim操作
cd /etc/
ls
vim hosts.allow
然后添加需要的设置
sshd:192.168.1.0:allow #新增一个IP白名单,可以通过ssh方式连接
sshd:192.168.1.*:allow #新增一个IP段白名单,可以通过ssh方式连接
然后ESC,输入 :wq 保存退出,即可生效
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# hosts.deny文件,负责控制禁止访问本机的IP
帮我改善此页面 (opens new window)
上次更新: 2021/07/06, 08:13:25