Makefile如何将用户定义的变量写入yaml文件以支持vagrantfile提取参数

问题描述 投票:1回答:2

我有一个使用makefile来控制流浪汉的项目,我想将vagrant参数放入makefile中,例如cpumemoryiphostnameforwarded_port等。我发现vagrantfile读取了Yaml文件的way,以参数化vagrantfile。因此,makefile需要一个target来读取所有用户选项变量,并将它们作为key-value对写入到config.yaml。

示例如下

# === BEGIN USER OPTIONS ===
BOX_OS ?= fedora
# Box setup
#BOX_IMAGE
# Disk setup
DISK_COUNT ?= 1
DISK_SIZE_GB ?= 25
# VM Resources
MASTER_CPUS ?= 2
MASTER_MEMORY_SIZE_GB ?= 2
NODE_CPUS ?= 2
NODE_MEMORY_SIZE_GB ?= 2

NODE_COUNT ?= 2
# Network
MASTER_IP ?= 192.168.26.10
NODE_IP_NW ?= 192.168.26.
POD_NW_CIDR ?= 10.244.0.0/16

...
...
# === END USER OPTIONS ===

echo命令确实实现了

# Makefile
envInit:
    @echo "POD_NW_CIDR : \"$(POD_NW_CIDR)\"" > ${FILECWD}/configs.yaml

但是too many variables可能太复杂。

是否可以批量读取变量及其值并将其写入yml文件

如果你们能告诉我如何实现这一目的,那就是批量读取变量及其值并将它们写入yml文件,我将非常感激。

我有一个使用makefile来控制流浪汉的项目,我想将vagrant参数放入makefile中,例如cpu,内存,ip,主机名,forwarded_port等。我找到了一种方式...

shell makefile vagrant yaml vagrantfile
2个回答
1
投票

将所有用户选项(以及默认值)定义为列表,以便它们可迭代:


0
投票

@ flyx谢谢您的回答,您的代码确实很棒。但是我似乎找到了更多的convenient way,并且对其进行了部分修改。

© www.soinside.com 2019 - 2024. All rights reserved.