mirror of
https://github.com/kubesphere/kubekey.git
synced 2025-12-26 01:22:51 +00:00
74 lines
2.1 KiB
Markdown
74 lines
2.1 KiB
Markdown
# 变量
|
|
变量分为静态变量(运行前定义的变量)和动态变量(运行时生成的变量)
|
|
参数优先级为: 动态变量 > 静态变量
|
|
## 静态变量
|
|
静态变量包含节点清单, 全局配置, 模板中定义的参数.
|
|
参数优先级为: 全局配置 > 节点清单 > 模版中定义的参数.
|
|
### 节点清单
|
|
yaml格式文件, 不包含模板语法, 通过`-i`参数传入(`kk -i inventory.yaml ...`), 在每个host上生效
|
|
**定义规范**:
|
|
```yaml
|
|
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上生效
|
|
```yaml
|
|
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`定义的参数
|
|
优先级为参数定义的顺序, 后定义参数高于先定义的参数.
|