zoukankan      html  css  js  c++  java
  • python jinjia2模板使用

    https://gist.github.com/wrunk/1317933

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from jinja2 import Environment, FileSystemLoader
    import os
    
    if __name__ == '__main__':
        j2_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'jinja2')
        kickstart_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'kickstart')
        pxe_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'pxe')
    
        j2_env = Environment(loader=FileSystemLoader(j2_path))
    
        host = {
            'root_password': '123456',
            'os': 'centos-6',
            'install_host': 'install.localhost',
            'name': 'bjtn-g18-10-11',
            'interface': [
                {'dev': 'em1', 'mac': 'aa:aa:aa:aa:aa:01', 'ip': '10.0.10.11', 'mask': '255.255.255.0'},
                {'dev': 'em2', 'mac': 'aa:aa:aa:aa:aa:02', 'ip': '200.0.10.11', 'mask': '255.255.255.192'}
            ],
           'gateway': '10.0.10.1'
        }
        
        with open(os.path.join(kickstart_path, host['interface'][0]['mac']), 'w') as f:
            f.write(j2_env.get_template('ks-centos-6').render(host=host))
    
        with open(os.path.join(pxe_path, host['interface'][0]['mac']), 'w') as f:
            f.write(j2_env.get_template('pxe-centos-6').render(host=host))
    

    pxe-centos-6

    LABEL {{ os }}
        MENU DEFAULT
        MENU LABEL {{ mac }}
        KERNEL {{ os }}/vmlinuz
        APPEND initrd={{ os }}/initrd.img ks=http://{{ install_host }}/kickstart/{{ mac }} ksdevice=link ramdisk_size=102400 console=tty0 console=ttyS1,115200
    

    ks-centos-6

    # kickstart
    lang en_US.UTF-8
    keyboard us
    timezone Asia/Shanghai
    
    auth --enableshadow --passalgo=sha512
    #python -c 'import crypt; print(crypt.crypt("MyPassword", "$6$MySalt"))'
    rootpw --iscrypted {{ host.root_password }}
    text
    install
    skipx
    url --url http://{{ host.install_host }}/{{ host.os }}
    
    bootloader --location=mbr 
    zerombr
    clearpart --drives=sda --all #--initlabel 
    
    part swap --fstype='swap' --ondisk=sda --size=8000
    part / --fstype='ext4' --ondisk=sda --size=50000
    part /opt --fstype='ext4' --ondisk=sda --grow --size=1
    
    network --device={{ host.interface[0].mac }} --bootproto=dhcp --activate
    
    firewall --disabled
    selinux --disabled
    services --disabled=NetworkManager,ip6tables,iptables,postfix,cpuspeed
    services --enabled=network
    firstboot --disabled
    reboot
    
    %packages
    @Base
    wget
    %end
    
    %pre
    clearpart --drives=sda --all
    /usr/sbin/parted -s /dev/sda mklabel gpt
    %end
    
    %post
    cat > /etc/sysconfig/network << _EOF_
    NETWORKING=yes
    HOSTNAME={{ host.name }}
    GATEWAY={{ host.gateway }}
    _EOF_
    
    {% for nic in host.interface %}
    cat > /etc/sysconfig/network-scripts/ifcfg-{{ nic.dev }} << _EOF_
    BOOTPROTO=static
    DEVICE={{ nic.dev }}
    IPADDR={{ nic.ip }}
    NETMASK={{ nic.mask }}
    ONBOOT=yes
    _EOF_
    {% endfor %}
    %end
    
  • 相关阅读:
    [kafka] 005_kafka_Java_API
    [kafka] 004_kafka_安装运行
    [kafka] 003_kafka_主要配置
    [kafka] 002_kafka_相关术语详细解析
    [kafka] 001_kafka起步
    [随想感悟] 《归去来兮辞·并序》 赏析
    [hadoop] 一些基础概念
    [kylin] 部署kylin服务
    CSAPP 读书笔记
    ubuntu下安装vmTools, 和共享文件
  • 原文地址:https://www.cnblogs.com/liujitao79/p/5363378.html
Copyright © 2011-2022 走看看