mirror of
https://github.com/kubesphere/kubekey.git
synced 2025-12-25 17:12:50 +00:00
2.1 KiB
2.1 KiB
变量
变量分为静态变量(运行前定义的变量)和动态变量(运行时生成的变量)
参数优先级为: 动态变量 > 静态变量
静态变量
静态变量包含节点清单, 全局配置, 模板中定义的参数. 参数优先级为: 全局配置 > 节点清单 > 模版中定义的参数.
节点清单
yaml格式文件, 不包含模板语法, 通过-i参数传入(kk -i inventory.yaml ...), 在每个host上生效
定义规范:
apiVersion: kubekey.kubesphere.io/v1
kind: Inventory
metadata:
name: default
spec:
hosts:
hostname1:
k1: v1
#...
hostname2:
k2: v2
#...
hostname3:
#...
groups:
groupname1:
groups:
- groupname2
# ...
hosts:
- hostname1
#...
vars:
k1: v1
#...
groupname2:
#...
vars:
k1: v1
#...
hosts: key为host名称, value为给该host设置的变量.
groups: 给host进行分组. key为组名称, value有groups, hosts和vars
- groups: 该组包含哪些其他组.
- hosts: 该组包含哪些hosts.
- vars: 组级别的变量, 针对组中所有host生效.
groups包含的总hosts为groups包含的host +hosts中包含的host.
vars: 全局变量, 针对所有host生效.
变量优先级为:(host_variable) >(group_variable) > $(global_variable)
全局配置
yaml格式文件, 不包含模板语法, 通过-c参数传入(kk -c config.yaml ...), 在每个host上生效
apiVersion: kubekey.kubesphere.io/v1
kind: Config
metadata:
name: default
spec:
k: v
#...
任意类型的参数
模板中定义的参数
模板中定义的var参数包含:
- playbook中
vars字段和vars_files字段定义的参数 - role中的defaults/main.yaml定义的参数
- role中
vars字段定义的参数 - task中
vars字段定义的参数
动态变量
动态变量是节点执行是生成的变量数据, 包含:
gather_facts定义的参数register定义的参数set_fact定义的参数
优先级为参数定义的顺序, 后定义参数高于先定义的参数.