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

moluzhui

我有使用生成文件来控制流浪的一个项目,我想把流浪汉参数到生成文件,如cpumemoryiphostnameforwarded_port等。我找到了一种让 vagrantfile 读取 yaml 文件来参数化 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 文件,我将不胜感激。

飞翔

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

# list of user options with default values
userOptions = \
  BOX_OS=2 \
  DISK_COUNT=1 \
  MASTER_IP=192.168.26.10

# replace each default value with the env value, if any
userOptionValues = $(foreach i, $(userOptions), \
  $(word 1, $(subst =, ,$i))=$(or \
      $($(word 1, $(subst =, ,$i))), $($(word 1, $(subst =, ,$i))), $(word 2, $(subst =, ,$i))))

# write the yaml file
envInit:
# empty the file
    @printf "" > configs.yaml
# write a line for each option
    @for i in $(userOptionValues); do \
        printf "%s : %s\n" "$$(printf $$i | cut -d= -f1)" "$$(printf $$i | cut -d= -f2)" >> configs.yaml; \
    done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将用户定义的参数传递给rpmbuild来填充变量

来自分类Dev

如何将参数传递给nuxt $ fetch?

来自分类Dev

如何使用get / fetch语句传递参数(表达)

来自分类Dev

从脚本运行时,如何将用户定义的参数传递给scrapy Spider

来自分类Dev

如何将用户定义的对象参数传递给flask post方法?

来自分类Dev

Peta Poco:如何将多个参数传递给Fetch <T>

来自分类Dev

C++:如何将用户输入作为函数参数?

来自分类Dev

RobotFramework:如何将用户关键字的参数定义跨越多行以提高可读性

来自分类Dev

如何使用 bs-fetch 传递查询字符串参数?

来自分类Dev

Python如何将用户提供的IP地址写入文件?

来自分类Dev

Python-如何将用户输入写入Excel文件?

来自分类Dev

如何将用户定义的表类型输入参数传递给 wso2 数据服务服务器(dss)中的存储过程?

来自分类Dev

如何将用户输入作为参数传递给函数原型?

来自分类Dev

如何将用户创建的内容另存为URL(哈希)参数?

来自分类Dev

如何将用户输入作为参数传递给Haskell中的SQLite LIKE子句

来自分类Dev

如何将参数从yaml文件传递给构造函数,而无需明确提及每个参数?

来自分类Dev

如何将文件/目录参数预定义为xcopy

来自分类Dev

如何将参数传递给Makefile配方,或在解析时解析变量

来自分类Dev

mysql_fetch_assoc()需要参数1

来自分类Dev

PDOStatement fetch / fetchAll参数数组

来自分类Dev

mysql_fetch_assoc提供的参数

来自分类Dev

使用 Javascript fetch 发送的 GraphQL 引用参数

来自分类Dev

如何使用熊猫将用户定义的列名称写入CSV文件?

来自分类Dev

如何使用熊猫将用户定义的列名称写入CSV文件?

来自分类Dev

如何在 Google Cloud ML Engine 上的 config.yaml 文件中添加用户特定的参数

来自分类Dev

Shell脚本将用户定义的字符串写入文件

来自分类Dev

如何将用户变量从TFS 2015构建定义传递给Power Shell脚本?

来自分类Dev

id 更改时如何将用户定义的变量值设置为零?

来自分类Dev

如何将用户数据写入根分区?

Related 相关文章

  1. 1

    如何将用户定义的参数传递给rpmbuild来填充变量

  2. 2

    如何将参数传递给nuxt $ fetch?

  3. 3

    如何使用get / fetch语句传递参数(表达)

  4. 4

    从脚本运行时,如何将用户定义的参数传递给scrapy Spider

  5. 5

    如何将用户定义的对象参数传递给flask post方法?

  6. 6

    Peta Poco:如何将多个参数传递给Fetch <T>

  7. 7

    C++:如何将用户输入作为函数参数?

  8. 8

    RobotFramework:如何将用户关键字的参数定义跨越多行以提高可读性

  9. 9

    如何使用 bs-fetch 传递查询字符串参数?

  10. 10

    Python如何将用户提供的IP地址写入文件?

  11. 11

    Python-如何将用户输入写入Excel文件?

  12. 12

    如何将用户定义的表类型输入参数传递给 wso2 数据服务服务器(dss)中的存储过程?

  13. 13

    如何将用户输入作为参数传递给函数原型?

  14. 14

    如何将用户创建的内容另存为URL(哈希)参数?

  15. 15

    如何将用户输入作为参数传递给Haskell中的SQLite LIKE子句

  16. 16

    如何将参数从yaml文件传递给构造函数,而无需明确提及每个参数?

  17. 17

    如何将文件/目录参数预定义为xcopy

  18. 18

    如何将参数传递给Makefile配方,或在解析时解析变量

  19. 19

    mysql_fetch_assoc()需要参数1

  20. 20

    PDOStatement fetch / fetchAll参数数组

  21. 21

    mysql_fetch_assoc提供的参数

  22. 22

    使用 Javascript fetch 发送的 GraphQL 引用参数

  23. 23

    如何使用熊猫将用户定义的列名称写入CSV文件?

  24. 24

    如何使用熊猫将用户定义的列名称写入CSV文件?

  25. 25

    如何在 Google Cloud ML Engine 上的 config.yaml 文件中添加用户特定的参数

  26. 26

    Shell脚本将用户定义的字符串写入文件

  27. 27

    如何将用户变量从TFS 2015构建定义传递给Power Shell脚本?

  28. 28

    id 更改时如何将用户定义的变量值设置为零?

  29. 29

    如何将用户数据写入根分区?

热门标签

归档