文科生 / 网管 / 看书写字 / 动漫 / 不爱国

Yaml 文件示例

2017.12.22

gitlab CI,Ansible Playbook,docker-compose,都需要用到 yaml 文件。

在此简单记录一下——

  • yaml文件的语法检查很严格,缩进的空格少一个多一个都会出问题,建议使用IDE。
  • emacs和vim,使用相应的插件开启缩进的垂直标线。
  • 强烈推荐 yamllint 工具,yamllint xxx.yaml 即可获取报告。错误必须修改,警告视情况修复。
  • 以下示例中 # 后为注释,实际编写不可用这种风格。

gitlab CI 示例:

---
stages:                      #  定义 ci 流程的各个 "阶段"
  - build
cache:                       #  使用缓存,避免依赖包重复下载
  paths:
    - vendor/
build:
  stage: build
  only:                      #  only 定义在哪些分支才执行ci
    - master
    - stage
    - develop
  script:                    
    - pwd                    #  可以使用ci内部定义的变量
    - echo $CI_COMMIT_REF_SLUG

Ansible Playbook 示例:

---
- hosts: master                               #  预备执行任务的主机组
  gather_facts: "no"                          #  不获取主机信息
  remote_user: root                           #  远程执行用户,此处为root
  tasks:                                      #  具体要执行的任务
    - name: "Install applications"            #  任务命令,执行过程中会回显
      apt: name={{ item }} state=present      #  使用 apt 这个模块
      with_items:                             #  使用 列表
        - aria2
        - htop
        - curl

docker-compose 示例:

---
registry:
  restart: always                        #  容器停止后自动重启
  image: registry:2.5.1                  #  使用的镜像
  ports:                                 #  在宿主机上映射的端口
    - 5000:5000
  environment:                           #  定义变量,会初始化到容器内部
    - REGISTRY_HTTP_ADDR=0.0.0.0:5000
    - REGISTRY_STORAGE_DELETE_ENABLED=True

更多帮助请参考各部分官方文档。