温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

运维 YAML 文件怎么写

发布时间:2026-09-11 11:48:20 来源:亿速云 阅读:86 作者:小樊 栏目:系统运维

写运维相关的 YAML 文件,核心是先搞清楚用在什么场景,因为不同场景(Docker Compose、Kubernetes、Ansible、CI/CD 等)写法差别很大。

下面我按常见运维场景,给你一套能直接抄的结构 + 说明


一、Docker Compose(最常用,适合单机运维)

示例:一个 Web + MySQL 服务

version: "3.8"

services:
  web:
    image: nginx:1.25
    container_name: nginx-web
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    restart: always
    depends_on:
      - db

  db:
    image: mysql:8.0
    container_name: mysql-db
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_DATABASE: appdb
    volumes:
      - db_data:/var/lib/mysql
    restart: always

volumes:
  db_data:

✅ 关键点:

  • services 定义服务
  • volumes 做数据持久化
  • restart: always 保证宕机自启

二、Kubernetes(生产级运维)

示例:Deployment + Service

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.25
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30080

✅ 关键点:

  • --- 分隔多个资源
  • Deployment 管副本
  • Service 管访问

三、Ansible(自动化运维)

示例:安装并启动 Nginx

- name: 安装 Nginx
  hosts: web
  become: yes
  tasks:
    - name: 安装 nginx
      apt:
        name: nginx
        state: present

    - name: 启动 nginx
      service:
        name: nginx
        state: started
        enabled: yes

✅ 关键点:

  • 列表结构
  • hosts 指定目标
  • become: yes 提权

四、CI/CD(GitLab / GitHub Actions)

GitHub Actions 示例

name: deploy

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: docker build -t myapp .
      - run: docker push myapp

五、YAML 运维通用规范(很重要)

  1. 缩进只能用空格,不能用 Tab
  2. 冒号后面必须加空格
    key: value 
    key:value 
    
  3. 列表用 -
  4. 敏感信息不要明文写(用 Secret / Vault)

六、如果你愿意,我可以帮你:

  • ✅ 按你的具体场景写一份 YAML
  • ✅ 检查你现有的 YAML 是否有问题
  • ✅ 教你用 kubectl / docker compose / ansible 跑起来

你可以直接说:

「我是做 (Docker / K8s / Ansible / CI) 的,想写一个 (服务名) 的 YAML」

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI