一、什么是 DevOps
DevOps 是一种重视软件开发人员(Developer)和运维人员(Operations)之间沟通与协作的文化、运动或实践,目标在于快速交付高质量的软件产品和服务。DevOps 强调自动化流程、持续集成与交付(CI/CD)、以及通过工具链、敏捷方法论和跨职能团队协作来增强软件的可靠性和安全性。在 DevOps 中,开发、测试、部署和监控等多个环节紧密连接,形成一个高效的工作流。以下是一些在DevOps实践中常用的工具列表:
1、版本控制系统:
Git: 用于源代码管理和版本控制,支持分布式工作流,被广泛应用于软件开发中。
2、持续集成与持续部署工具:
Jenkins: 是一款流行的开源持续集成服务器,可用于自动化各种任务,包括构建、测试和部署软件。
Travis CI: 提供云端的持续集成服务,尤其适合开源项目。
GitHub Actions: GitHub 自带的持续集成/持续部署服务,可以在GitHub仓库内定义工作流程。
GitLab CI/CD: GitLab 内置的持续集成和持续部署工具,为用户提供一站式解决方案。
CircleCI: 提供高性能的持续集成和部署平台。
3、容器化与虚拟化工具:
Docker: 用于打包应用及其依赖项到可移植容器中,简化应用部署和管理。
Kubernetes (k8s): Google主导的容器编排系统,用于自动化部署、扩展和管理容器化应用。
4、配置管理与基础设施即代码工具:
Terraform: 用于管理和部署云基础架构的开源工具,支持多种云服务商。
Ansible: 通过YAML剧本实现IT自动化运维,支持配置管理、应用部署等功能。
Chef 和 Puppet: 也是知名的配置管理工具,帮助实现基础设施的自动化配置和管理。
5、监控与日志管理工具:
Prometheus: 一个开源的系统监控和警报工具,支持动态抓取指标数据。
Grafana: 数据可视化平台,常与Prometheus配合展示监控数据。
Nagios: 传统且强大的网络监控系统,用于检查系统状态和网络问题。
ELK Stack (Elasticsearch, Logstash, Kibana): 日志收集、分析和可视化平台。
Splunk: 企业级的日志管理和分析工具。
6、测试工具:
Selenium: 用于Web应用的自动化测试工具,支持多种浏览器和编程语言。
Postman: API测试工具,支持API开发全流程,包括设计、调试、文档和测试。
7、项目管理与协同工具:
Trello: 用于项目管理和团队协作看板工具。
Azure Boards: 微软提供的敏捷项目管理工具,适用于Azure DevOps环境。
Jira: Atlassian公司出品的项目与问题追踪工具,广泛应用于软件开发团队。
8、代码质量管理工具:
SonarQube: 用于静态代码分析,检测代码质量问题和安全漏洞。
二、Jenkins 持续集成工具安装
官方下载地址:Jenkins download and deployment
笔者这里为mac m1系统,这里使用 brew 安装 Jenkins:
#安装
brew install jenkins-lts
#启动
brew services start jenkins-lts
#重启
brew services restart jenkins-lts
#更新
brew upgrade jenkins-lts
#注意使用brew安装 需要修改 vim /opt/homebrew/Cellar/jenkins-lts/2.440.2/homebrew.mxcl.jenkins-lts.plist 文件中的127.0.0.1 为 0.0.0.0
其他系统也可以直接用docker进行安装(命令未经测试):
docker run \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:latest-jdk8
启动后访问 http://localhost:8080,界面如下,根据提示地址,找到秘钥填写解锁:
安装推荐的插件(需要联网),慢慢等待,失败的话就再次重试:
创建管理员账号,拥有操作Jenkins的最高权限(后面也可以添加同等权限的账号):
配置Jenkins Url地址:
在 系统管理 > 全局工具配置 中分别配置 maven、jdk、git 的安装路径,或者选择Jenkins自动安装:
在系统管理 > 插件管理 中搜索并安装一些插件:
Role-based Authorization Strategy:根据角色管理权限
SSH plugin:用于访问远程主机并执行命令
三、Harbor 私有镜像仓库搭建
Harbor 是一个开源的企业级容器镜像仓库项目,它提供了一个安全的存储和分发 Docker 镜像的平台,用来搭建Docker私服。
#解压github上下载的安装包
tar -zxf harbor-offline-installer-v2.10.1.tgz
#移动到目录
cd harbor
#重命名(或者复制一份)配置文件
mv harbor.yml.tmpl harbor.yml
#修改配置文件,修改内容如下图
vi harbor.yml.tmpl
#准备
./prepare
#安装
./install.sh
#启动harbor
docker-compose up -d
启动成功如下(如果有失败的 依次排查后重启):
访问 http://127.0.0.1:8090/ 如下,输入默认用户名 admin,密码 Harbor12345,进行登录:
在用户管理中创建一个新用户,并设置为管理员:
在 Docker Engine 中添加配置,然后重启docker(可用 docker system info 命令查看配置是否生效):
"insecure-registries": [
"192.168.31.143:8090"
],
下面做一些Harbor使用测试:
#登录Harbor
docker login -u lws -p Harbor12345 http://192.168.31.143:8090
#mac系统说明:这里报了类似“Error saving credentials: error storing credentials”的错误,原因是mac系统需要先执行安全解锁命令 security unlock-keychain
#从远端拉取一个镜像
docker pull rabbitmq:latest
#设置新tag 指向Harbor默认的library项目中
docker tag rabbitmq:latest 192.168.31.143:8090/library/rabbitmq:3
#推送到Harbor
docker push 192.168.31.143:8090/library/rabbitmq:3
#之后需要镜像时拉取
#docker pull 192.168.31.143:8090/library/rabbitmq:3
此时我们看Harbor中已经有了镜像:
四、Gogs 私有代码托管平台搭建
Gogs 是一款轻量级、跨平台、易安装的私有 Git 代码托管平台,这里选择它来托管代码,其它类似平台也可以自行选择,例如:GitHub、GitLab、Gitee、Coding等等。
Docker运行启动Gogs:
docker run -d --name gogs -e -p 10022:22 -p 10880:3000 -v /Users/lws/gogs:/data gogs/gogs:latest
启动成功 访问 http://127.0.0.1:10880 ,做一些基础配置,主要是数据库连接和管理员账号添加:(踩个坑:我的mysql部署在宿主机,需要开远程访问权限,这里填写宿主机ip,不能用127.0.0.1)
安装成功再次访问 http://127.0.0.1:10880 如下: