devops自动化容器化部署

devops

一、简单案例体验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.rb
 32 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、项目构建和发布




相关推荐
白云~️3 小时前
uniappx 打包配置32位64位x86安装包
运维·服务器·github
极小狐3 小时前
如何使用极狐GitLab 的外部状态检查功能?
数据库·ci/cd·gitlab·devops·mcp
梦想画家4 小时前
SQLMesh 测试自动化:提升数据工程效率
自动化·数据工程·sqlmesh
文牧之4 小时前
PostgreSQL的扩展 pgcrypto
运维·数据库·postgresql
白总Server4 小时前
多智能体系统的中间件架构
linux·运维·服务器·中间件·ribbon·架构·github
2401_867021906 小时前
文件缓冲区(IO与文件 ·III)(linux/C)
linux·运维·服务器·c语言
刘某的Cloud6 小时前
rabbitmq常用命令
linux·运维·分布式·rabbitmq·系统
悄悄敲敲敲7 小时前
Linux:进程间通信->命名管道
linux·运维·服务器
io无心7 小时前
Docker绑定端口报错
运维·docker·容器