Apress/DevSecOps-for-Linux
GitHub: Apress/DevSecOps-for-Linux
Apress 图书《面向 Linux 的 DevSecOps 和 DevOps:基础》的配套代码仓库,以渐进式 Python 实践项目演示从开发、安全审计到 CI/CD 流水线的完整 DevOps 生命周期。
Stars: 0 | Forks: 0
# 配套资源:面向 Linux 的 DevSecOps 和 DevOps
*基础*
欢迎来到由 *Marco Antonio Carcano* 撰写(Apress 出版)的**《面向 Linux 的 DevSecOps 和 DevOps:基础》**("DevSecOps and DevOps for Linux: The Foundations")官方代码库。
本书弥合了 DevOps 理论文化与生产级 Linux 实现之间的差距:除了必不可少的理论概念之外,本书不仅限于提供孤立的示例和代码片段,还提供了一个独立的 Git 仓库,让您能够与一个**生动的、不断演进的代码库**进行交互,该代码库分布在多个 Git 分支中。
## 🚀 如何开始
1. **下载实验文件:** 下载 [devsecops-pillars.tar.gz](https://github.com/Apress/DevSecOps-for-Linux/releases/tag/v1.0.0)。
2. **跟随本书的学习旅程:** 按照书中的说明解压 tarball,以获取逐步的章节脚本和实验环境。
## 📦 内容介绍:`fancymonitor` 项目
*fancymonitor* 项目是本书中隐藏的瑰宝:它是一个随章节讲解的主题不断演进的实践实验,不断增加功能,直到成为功能齐全的独立 Python 项目,旨在模拟真实世界的企业开发生命周期,包括 Gitea Action Workflows。
为了让您大致了解培训结束时的成果,*fancymonitor* 项目的 *main* 分支已被提取到这个 GitHub 仓库的 [fancymonitor](fancymonitor) 目录中。
### 🛡️ 持续集成与左移安全
* **[.pre-commit-config.yaml](fancymonitor/.pre-commit-config.yaml)**:预配置的 pre-commit 框架,执行静态代码分析(**Flake8**、**Pylint**)和自动化安全漏洞扫描(**Bandit**)。
* **[setup.cfg](fancymonitor/setup.cfg)**:针对 Flake8、Pylint 和 Bandit 的集中式、微调配置。
* **[.safety-project.ini](fancymonitor/.safety-project.ini)**:通过 **Safety** 进行依赖漏洞扫描的专用策略配置。
### 🛠️ 自动化与现代打包(RPM 和 Wheels)
* **[src/pyproject.toml](fancymonitor/src/pyproject.toml)**:现代 Python 打包定义和元数据规范。
* **[src/Makefile](fancymonitor/src/Makefile)**:强大的自动化套件,提供以下具体目标:
* 将项目安装到独立的目录树中。
* 将项目构建为 Python Wheel。
* 执行 **PyTest** 单元测试,并将 Wheel 安全地打包为原生 **RPM 包**。
* 对生成的 RPM 包进行**数字签名**,以实现可信分发。
* **[RPM/SPECS/carcano_fancymonitor.spec](fancymonitor/RPM/SPECS/carcano_fancymonitor.spec)**:高级 RPM spec 文件,演示了如何将项目清晰地拆分为*可重用的库包*和*可执行应用程序包*。
### 🔄 CI/CD 流水线(通过 Gitea 进行 GitOps)
* **[.gitea/workflows/unit-tests.yml](fancymonitor/.gitea/workflows/unit-tests.yml)**:在 `push` 事件时触发的 Gitea Actions 工作流,用于强制执行自动化单元测试。
* **[.gitea/workflows/package-and-push.yml](fancymonitor/.gitea/workflows/package-and-push.yml)**:用于构建 RPM 包并将其安全发布到 **Pulp 3** 仓库的 CI/CD 自动化(*完整设置蓝图请参见第 34 章*)。
## 🌿 特性分支方法论(无返工架构)
本书的一个核心教学理念是如何管理架构演进而不产生技术债务。
fancymonitor 的 git 仓库预填充了**多个特性分支**。通过在这些分支之间切换,您将清晰地看到一个整洁、解耦的代码库如何以**零(或最少)的代码返工**来扩展新功能。即使您不熟悉 git,书中也提供了相应的运行命令,方便您轻松对比,直观地查看新增的代码部分。
## 📖 获取本书
准备好掌握自动化、CI/CD 和 Linux 安全加固了吗?
👉 **[https://link.springer.com/book/9798868820762]**
## 🗂️ 目录
以下是本书涵盖的主题,按章节分组。
## 🤝 支与勘误
- **发现拼写错误或失效命令?** 请先查看 [📝 勘误](./ERRATA.md) 文件,看看是否已被报告。
- **想要报告新问题?** 如果您的问题未在勘误列表中,请阅读我们的 [👋 贡献指南](./CONTRIBUTING.md),然后直接在 [🐛 GitHub Issues](./issues) 部分提交新工单。
| 部分 | 章节 | 标题 | 代码与资源位置 |
|---|---|---|---|
| 全局技能集 | 第 1 章 | 团队协作 | 仅理论 |
| 第 2 章 | 解决方案的生命周期 | ||
| 第 3 章 | Agile 与 Lean 概述 | ||
| 第 4 章 | Scrum 与 Kanban 概述 | ||
| 系统操作 | 第 5 章 | BASH shell 与命令行工具 | 内置于书中 |
| 基础数据格式 | 第 6 章 | Key-values、INI 和 CSV | 内置于书中 |
| 数据处理 | 第 7 章 | 正则表达式 (RegEx) | 内置于书中 |
| 第 8 章 | 使用 Grep | ||
| 第 9 章 | 使用 Sed | ||
| 第 10 章 | 使用 AWK | ||
| 结构化数据处理 | 第 11 章 | 使用 XPath、XMLStarlet 和 Python 处理 XML | 📂 loaders/xml.py |
| 第 12 章 | 使用 Jq 和 Python 处理 JSON | 📂 ch12/ & loaders/json.py |
|
| 第 13 章 | 使用 Yq 和 Python 处理 YAML | 📂 ch13/ & loaders/yaml.py |
|
| 开发 Python 项目 | 第 14 章 | 单元测试 | 📂 fancymonitor/src/test/ |
| 第 15 章 | 打包为 Wheel | 内置于书中 | |
| 第 16 章 | 使用 GNU Make 管理构建 | 📄 fancymonitor/src/Makefile |
|
| 第 17 章 | 打包为 RPM | 📄 carcano_fancymonitor.spec |
|
| 第 18 章 | 配置 Git 和 pre-commit 框架 | 📄 .pre-commit-config.yaml |
|
| 第 19 章 | 审计源代码合规性 | 📄 setup.cfg📄 .safety-project.ini | |
| 第 20 章 | 扫描漏洞 | ||
| 安全 | 第 21 章 | 系统安全 | 内置于书中 |
| 第 22 章 | 保护数据安全和验证身份 (GPG) | ||
| 第 23 章 | X.509 证书与 PKI | 📂 ch23/ |
|
| 常见协议 | 第 24 章 | HTTP | 内置于书中 |
| 第 25 章 | TLS | ||
| 第 26 章 | LDAP | ||
| 使用容器 | 第 27 章 | 容器生态系统 | 内置于书中 |
| 第 28 章 | Docker 和 Podman | 📂 ch28/ |
|
| 第 29 章 | 使用 Docker Compose 部署 Pulp3 | 内置于书中 | |
| 服务协议 | 第 30 章 | SOAP 和 REST | 📂 ch30/ |
| 编排容器 | 第 31 章 | Kubernetes、Helm 和 Rancher | 📂 ch31/ |
| 第 32 章 | 使用 Helm Chart 部署 Gitea | 📂 ch32/ |
|
| 第 33 章 | CI/CD 与持续交付 | 内置于书中 | |
| 第 34 章 | 使用 Gitea Actions Workflows | 📂 Gitea Actions 模板 | |
| 版本控制 | 第 35 章 | 使用 Git 进行版本管理 | 内置于书中 |
| 远程配置管理 | 第 36 章 | SSH 概述 | 内置于书中 |
| 第 37 章 | Ansible playbooks、roles 和 collections | 📂 ch37/ |
标签:DevSecOps, Python, 上游代理, 子域名突变, 安全专业人员, 开源框架, 持续集成, 教学示例, 无后门, 系统提示词, 网络安全研究, 请求拦截, 逆向工具, 错误基检测, 静态代码分析