跳转到主要内容

针对发行版的模板系统/生成器

项目描述

面向发行版的模板系统

Copr package Fedora package Coverage Status Documentation Status

本项目试图缓解的问题是在多种操作系统(目前仅限于Linux发行版)中“便携”脚本的问题。在编写一个“通用”脚本时,需要考虑操作系统之间的小或大的差异(如包安装工具、实用程序版本、二进制、库等预期的目录)。

因此,distgen 项目就像是一个操作系统差异的数据库,同时提供了一套便利的工具集,允许您为特定发行版实例化有效的脚本。该概念是拥有一个模板文件(主要是原始jinja2模板)以及满足特定模板需求的“声明性”规范文件(YAML文件)。

您可以在http://distgen.readthedocs.io找到distgen文档。

下载/安装

distgen的稳定版本作为RPM在Fedora和EPEL仓库以及pypi中可用。

$ sudo dnf install distgen

$ pip install distgen

开发(git快照)RPM在Fedora Copr中自动构建。

您也可以直接从git运行开发版本,只需使用此git根目录中可用的dg shell包装器即可。

Dockerfile示例

典型的例子是需要为所有支持的Fedora/RHEL版本实例化面向FOO包的Dockerfile

要使用distgen实现这一目标,您需要编写类似docker.tpl的模板和FOO.yaml规范文件。如果系统默认的docker.tpl模板足够好,则只需编写正确的规范文件即可。

  1. 创建FOO.yaml规范

    $ cat FOO.yaml
    maintainer: John Doe <jdoe@example.com>
    parts:
      pkginstall:
        data:
          - type: pkg
            action: install
            packages:
              - vim
      footer:
        cmd: ["vim"]
    
  2. 运行dg工具生成Fedora 22 Dockerfile

    $ dg --template docker.tpl \
         --spec FOO.yaml \
         --distro fedora-22-x86_64.yaml \
    > Dockerfile
    $ cat Dockerfile
    FROM index.docker.io/fedora:22
    MAINTAINER John Doe <jdoe@example.com>
    
    ENV container="docker"
    
    RUN dnf -y --setopt=tsflags=nodocs install vim \
        && dnf -y --setopt=tsflags=nodocs clean all --enablerepo='*'
    
    CMD ["vim"]
    
  3. 再次运行dg工具生成RHEL 7 dockerfile

    $ dg --template docker.tpl \
         --spec FOO.yaml \
         --distro rhel-7-x86_64.yaml \
    > Dockerfile
    $ cat Dockerfile
    FROM registry.access.redhat.com/rhel7
    MAINTAINER John Doe <jdoe@example.com>
    
    ENV container="docker"
    
    RUN yum -y --setopt=tsflags=nodocs install vim \
        && yum -y --setopt=tsflags=nodocs clean all --enablerepo='*'
    
    CMD ["vim"]
    

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

distgen-2.0.tar.gz (85.3 kB 查看哈希值)

上传时间

构建分发

distgen-2.0-py3-none-any.whl (51.6 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面