devops自动化容器化部署
devops
- 一、简单案例体验gitlab+runner部署静态文件
- 二、devops企业级部署方案
- 1、流程图
- 2、依赖工具
- 3、流程图
- 4、主机规划
- 5、安装工具软件
- 1、安装git
- 2、安装gitlab
- 3、安装jenkins-server
- 4、安装harbor
- 5、安装web-server,也就是部署服务的机子,需要安装docker
- 6、工具配置
- 1、配置docker主机使用harbor
- 2、配置jenkins使用harbor
- 3、密钥配置
- 4、jenkins插件安装
- 5、jenkins全局工具配置
- 6、jenkins系统配置
- 7、企业业务代码项目发布
- 8、项目构建和发布
一、简单案例体验gitlab+runner部署静态文件
gitlab-ce安装:
参考文章:https://blog.csdn.net/qq_30374237/article/details/118189824
yum -y install policycoreutils openssh-server openssh-clients postfix
yum install policycoreutils-python systemctl enable sshd && sudo
systemctl start sshd systemctl enable postfix && systemctl start
postfix systemctl stop firewalld.service
安装gitlab-ce,这个安装包有问题:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-13.6.7-ce.0.el6.x86_64.rpm
安装gitlab-ce,我用了这个安装地址,可以
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm
将这个rpm包下载到本地,直接安装即可
yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
查看gitlab的配置文件
cd /etc/gitlab
vi gitlab.rb
三种模式
1.命令模式(默认)
可以搜索 /external_url
2.插入模式:按i键,可以修改内容(-- INSERT --提示)
按左上角esc按钮,可以切换模式
输入退出并保存的指令:wq
不需要修改,直接退出:q
gitlab-ctl reconfigure
gitlab-ctl restart
查看初始密码:/etc/gitlab/initial_root_password文件
gitlab初始设置
本地装好git软件,自己去百度一下。
编辑器vs code
3.安装gitlab-runner
参考文章:https://juejin.cn/post/6844903798796730375
我们服务器是CentOS
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
安装:
sudo yum install gitlab-ci-multi-runner
gitlab-runner 注册
获取gitlab-ci的Token: 项目主页 -> Sttings -> CI/CD -> Runners Expand
指令:
gitlab-runner register
验证runner是否能正常运行
参考文章:https://blog.csdn.net/sinat_17775997/article/details/115700703
如果运行不正常,就要检查Run untagged jobs是否开启
安装一个静态服务器,用来展示web页面的
https://blog.csdn.net/sinat_17775997/article/details/115700703
指令:
https://jingyan.baidu.com/article/1709ad80c38e240634c4f098.html
yum install httpd
httpd -v
因为gitlab已经占用了80端口
修改httpd配置文件的路径是/etc/httpd/conf/httpd.conf
所以这个httpd要改他的默认端口80为8000
启动http服务
service httpd start
装其他软件
yum install sshpass
先将这个提问关闭,等第一次生产密钥之后,再打开就好。
Are you sure you want to continue connecting (yes/no/[fingerprint])?
参考:https://blog.csdn.net/zhengzaifeidelushang/article/details/109348222
vim /etc/ssh/ssh_config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
esc键
二、devops企业级部署方案
1、流程图
2、依赖工具
3、流程图
4、主机规划
1、按照主机规划给分配的每台主机起名 hostnamectl set-hostname xxx
2、IP地址配置,修改/etc/sysconfig/network-scripts/ifcfg-ens33 来配置IP
补充说明:可以使用win命令ipconfg
或者linux命令ip a
查看dns和网关
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c527:5c19:2da6:f642%17
IPv4 地址 . . . . . . . . . . . . : 172.16.4.208
子网掩码 . . . . . . . . . . . . : 255.255.252.0
默认网关. . . . . . . . . . . . . : 172.16.4.1
(1)配置静态IP时,网关和DNS地址不能随便配置。网关和DNS地址需要根据网络环境进行正确配置,以确保设备能够正常连接到互联网和进行域名解析。
(2)网关和DNS的作用及配置方法
(2-1)网关(Gateway):
- 作用:网关是设备访问外部网络的出口,通常是路由器的IP地址。它允许设备通过这个地址与外部网络通信。
- 配置方法:网关地址应设置为路由器的IP地址。例如,如果路由器的IP地址是192.168.1.1,那么网关地址也应设置为192.168.1.1
(2-2)DNS(Domain Name System)服务器:
- 作用:DNS服务器负责将域名解析为IP地址,帮助设备找到其他网站的IP地址。
- 配置方法:DNS服务器可以选择公共DNS,如Google的8.8.8.8和8.8.4.4,或者使用网络服务提供商(ISP)提供的DNS服务器地址。例如,中国电信的DNS服务器地址为114.114.114.114
3、主机名与ip地址解析的配置,修改 /etc/hosts 文件
4、防火墙配置
补充说明:sestatus也需要设置为disabled。可使用命令
sudo vi /etc/selinux/config
SELINUX=disabled # 原值可能是enforcing或permissive
sudo reboot
sestatus命令用于查看SELinux(Security-Enhanced Linux)的当前状态。包括是否启用、模式(如Enforcing、Permissive或Disabled)、配置文件的位置以及其他相关信息。设置完结果如下图:
5、各个主机的时间同步。前提是保证有ntpdate
命令
5、安装工具软件
1、安装git
yum -y install git
2、安装gitlab
(1)配置yum源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/你的版本号
vim /etc/yum.repos.d/gitlab-ce.repo
(2)安装gitlab-ce
yum -y install gitlab-ce
(3)gitlab-ce配置
vim /etc/gitlab/gitlab.rb32 external_url 'http://192.168.10.21'
(4)启动gitlab-ce
gitlab-ctl reconfigure
gitlab-ctl status
(5)访问验证
3、安装jenkins-server
(1)安装jdk
(2)安装jenkins。在官网jenkins.io下载安装
根据官网命令执行下图的命令即可。第四条命令安装jdk在上一步已经安装了,无需执行,第五条命令可以执行yum -y install jenkins
。
第三步安装epel-release很慢的话可以使用阿里云的镜像:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe1-7.repo
(3)jenkins配置
配置文件如下
(4)jenkins自启动配置
启动后查看密码并访问
注意:部署jenkins的机子也需要安装git,因为要拉取代码;需要安装maven,需要编译代码;需要安装docker,打包docker镜像
4、安装harbor
5、安装web-server,也就是部署服务的机子,需要安装docker
6、工具配置
1、配置docker主机使用harbor
(1)jenkins服务器添加从harbor拉取镜像
(2)harbor服务器配置私有仓库
(3)web-server配置harbor
2、配置jenkins使用harbor
3、密钥配置
(1)dev主机到gitlab-ce
(2)jenkins服务器到gitlab-ce
配置完成后gitlab可以看到俩公钥
配置jenkins私钥的具体步骤
4、jenkins插件安装
(1)maven integration:用于编译JAVA项目
(2)git parameter:用于基于git版本提交进行参数构建项目
(3)gitlab:用于jenkins-server拉取项目
(4)Generic Webhook Trigger:用于项目自动化构建
(5)ssh:用于jenkins-server对web-server实施项目部署
全部安装后重启jenkins
5、jenkins全局工具配置
(1)jdk配置
(2)git配置
(3)maven配置
6、jenkins系统配置
(1)添加jenkins-server访问web-server凭据
(2)配置ssh协议连接主机
7、企业业务代码项目发布
(1)数据库创建
(2)代码获取
(3)代码修改
(4)构建项目,运行容器镜像
(5)推送镜像到harbor
(6)验证
8、项目构建和发布