在服务器(或运维/开发)场景下,对 YAML 文件做校验,通常可以从 语法校验、结构校验、Schema 校验、以及运行时校验 几个层面来做。下面按实用程度给你一个清晰清单。
python3 -c "import yaml,sys; yaml.safe_load(open(sys.argv[1]))" config.yaml
没报错就说明语法 OK。
pip install yamllint
yamllint config.yaml
优点:
语法对了,但字段名写错、类型不对,服务器照样崩
jsonschema 校验 YAMLYAML → dict → JSON Schema 校验
pip install jsonschema pyyaml
示例:
import yaml
from jsonschema import validate
schema = {
"type": "object",
"properties": {
"port": {"type": "integer"},
"host": {"type": "string"}
},
"required": ["port", "host"]
}
with open("config.yaml") as f:
data = yaml.safe_load(f)
validate(instance=data, schema=schema)
✅ 适合:
kubectl apply --dry-run=client -f xxx.yaml
或
kubeconform -strict deploy.yaml
docker compose config
ansible-playbook playbook.yml --syntax-check
yamllint config.yaml || exit 1
python3 validate_config.py || exit 1
- name: Validate YAML
run: yamllint .
❌ Tab 缩进
❌ 数字写成字符串
❌ 多行文本没用 | 或 >
❌ 冒号后没空格
❌ 字段拼写错误(Schema 才能发现)
| 目的 | 工具 |
|---|---|
| 语法检查 | python yaml / yamllint |
| 结构检查 | jsonschema |
| K8s | kubectl --dry-run |
| Compose | docker compose config |
| 自动化 | CI + 启动脚本 |
如果你愿意,可以告诉我:
我可以直接给你一份可复制的校验脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。