在服务器运维和开发中,YAML(YAML Ain’t Markup Language) 常用于配置管理,因为它可读性强、结构清晰、易于版本控制。下面从常见使用场景、管理方式和最佳实践来系统说明。
server:
port: 8080
host: 0.0.0.0
database:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
✅ 常用于:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
template:
spec:
containers:
- name: nginx
image: nginx:1.25
✅ 用于:
- hosts: web
tasks:
- name: install nginx
apt:
name: nginx
state: present
✅ 用于:
/etc/app/config.yaml
将 YAML 放入 Git:
config/
├── dev/
│ └── app.yaml
├── prod/
│ └── app.yaml
✅ 好处:
server:
port: ${PORT:8080}
或:
spring:
profiles:
active: ${PROFILE:dev}
运行:
java -Dspring.profiles.active=prod -jar app.jar
使用专业配置管理工具:
| 工具 | 说明 |
|---|---|
| Nacos | 动态配置 + 服务发现 |
| Apollo | 企业级配置中心 |
| Consul | 配置 + 服务治理 |
| etcd | K8s 常用 |
✅ 优点:
image: nginx:{{ .Values.version }}
✅ 适用于:
# 不推荐
port: 8080
db: localhost
# 推荐
server:
port: 8080
database:
host: localhost
❌ 错误:
password: 123456
✅ 正确方式:
password: ${DB_PASSWORD}
# 最大连接数,生产环境建议 1000
max_connections: 500
yamllint config.yaml
或:
kubectl apply --dry-run=client -f deploy.yaml
config-prod.yaml
deployment.yaml
values.yaml
server:
port: 8080
host: 0.0.0.0 # ❌ 多了一个空格
✅ YAML 只能用空格,不能用 Tab
enabled: no
✅ 推荐:
enabled: false
服务器 YAML 配置管理 = 结构化配置 + 版本控制 + 环境隔离 + 安全处理
如果你有具体场景(如 K8s / Spring Boot / Ansible / Docker Compose),我可以给你一套完整配置模板和管理方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。