这是我正在制作的模板:
users:
{% for usr in users -%}
{# user {{ usr }} -#}
- name: {{ users[usr].username }}
passwd: {{ users[usr].hash }}
ssh_authorized_keys: {{ users[usr].key }}
{% endfor %}
我一直在使用 jinja2 解析器来测试语法/逻辑:https://j2live.ttl255.com/
我的问题是,如何格式化字典/数据结构(我认为我需要使用的)来保存数据?
数据结构示例:
users:
user1:
username: queef
hash: $6$eMRWO7k8SM
key: 'sha-rsa $6$3EddsggdvX'
user2:
username: keagle
hash: $6$eYYhaSqGDf45sEE
key: '- sha-rsa $6$3AxxxX10HdvX'
我在网上找到的大多数示例都显示为平面列表,即:
{% set my_dict = {
"name": "John",
"age": 30,
"city": "New York"
} %}
有人看过多键/值字典示例吗? 我只是假设这是我需要保存值的数组类型。由于我无法将它们存储在单独的 json/yaml 文件中,所以我需要以某种方式将数据保存在 jinja2 模板文件中。
{% set users = ({"user1"
"Username" : "queef",
"Hash" : "$6$eMRWO7k8SM",
"Key" : " - sha-rsa $6$3EddsggdvX",
"user2"
"Username" : "keagle",
"Hash" : "$6$eYYhaSqGDf45sEE",
"Key" : " - sha-rsa $6$3AxxxX10HdvX" }) -%}
让 jinja2 渲染键值并在 for 循环中输出它们。
给出错误: 渲染错误:
预期的令牌“,”,得到“:”
我期望它输出什么:
users:
- name: queef
passwd: $6$eMRWO7k8SM
ssh_authorized_keys: - sha-rsa $6$3EddsggdvX
- name: keagle
passwd: $6$eYYhaSqGDf45sEE
ssh_authorized_keys: - sha-rsa $6$3AxxxX10HdvX
对于其他可能在 jinja2 模板中使用字典的人:
每个人工智能生成器:
{% set users = [
{
'username': 'user1',
'password': 'password1',
'group': 'admin',
'ssh_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArX...'
},
{
'username': 'user2',
'password': 'password2',
'group': 'developer',
'ssh_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArY...'
},
{
'username': 'user3',
'password': 'password3',
'group': 'user',
'ssh_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArZ...'
}
] %}
{% for user in users %}
User: {{ user.username }}
Password: {{ user.password }}
Group: {{ user.group }}
SSH Key: {{ user.ssh_key }}
---
{% endfor %}