python 自动生成k8s 集群yaml 文件

 yaml 模块用于处理 yaml 文件,yaml 是一种比xml和json更轻的文件格式,k8s 集群声明资源对象就是使用 yaml 文件,使用yaml 模块可以更方便的处理yaml 文件

 模块 常用方法

dump:  将一个python对象生成为yaml文档


load: 返回一个对象 


dump_all:


load_all:


 简单示例演示


load 

yaml_str1 = """
name: jack
age: 25
job: IT 
"""
print(yaml_str1, type(yaml_str1))
contnet = yaml.load(yaml_str1)
print(contnet, type(contnet))

输出

name: jack
age: 25
job: IT 
 <class 'str'>
{'name': 'jack', 'age': 25, 'job': 'IT'} <class 'dict'>


dump 

import yaml

yaml_str1 = """
name: jack
age: 25
job: IT 
"""
print(yaml_str1, type(yaml_str1))
contnet = yaml.load(yaml_str1)
print(contnet, type(contnet))

new_content = yaml.dump(contnet, open('t1.yaml', 'w', encoding='utf-8'))

查看生成的文件

image.png


# 生成nginx 的yaml 文件 

import yaml

with open('nginx.yaml', 'r', encoding='utf-8') as f1:
    content = yaml.load(f1)
    print(f1)
    with open('nginxv2.yaml', 'w', encoding='utf-8') as f2:
        yaml.dump(content, f2)  # contnet 对象  f2生成后存放的文件

查看生成后的文件


image.png


生成后的文件可运行


image.png


yaml 文件里面可以声明多个资源对象,可使用 load_all

import yaml

with open('nginx_busy.yaml', 'r', encoding='utf-8') as f1:
    content = yaml.load_all(f1)
    new_content = yaml.dump_all(content)
    print(new_content, type(new_content))
    with open('ng_busy.yaml', 'w', encoding='utf-8') as f2:
        f2.write(new_content)

查看生成后的文件

image.png

image.png

image.png




猜你喜欢

转载自blog.51cto.com/sdsca/2389809