ansible - Ansible 警告“字符串字段中的类型列表已转换为字符串类型”
问题描述
我有一项为每个用户添加 Gnome 收藏夹的任务:
users:
- name: username
email: email@server.com
favorites: "'pk1.desktop', 'pk2.desktop', 'pk3.desktop', pk4.desktop'"
- name: "[DCONF] Add favorites"
dconf:
key: /org/gnome/shell/favorite-apps
value: "[{{ item.favorites }}]"
state: present
become: yes
become_user: "{{ item.name }}"
with_items: "{{ users }}"
我收到此错误:
[WARNING]: The value ['pk1.desktop', 'pk2.desktop', 'pk3.desktop', pk4.desktop'] (type list) in a string field was converted to u"['pk1.desktop', 'pk2.desktop', 'pk3.desktop', pk4.desktop']" (type string). If this does
not look like what you expect, quote the entire value to ensure it does not change.
我怎么能解决这个问题?
另外,我怎么能把它转换成这样:
users:
- name: username
email: email@server.com
favorites:
- 'pk1.desktop'
- 'pk2.desktop'
- 'pk3.desktop'
- 'pk4.desktop'
原因是我有很多这些最爱,这样我会更容易处理,也因为我想学习如何做到这一点;)
解决方案
我无法重现您的警告消息(ansible 2.9.9)。请注意,最后一个值缺少单引号。
同时,由于为了简单起见,您希望过渡到在列表中声明您的值,因此以下内容应该允许您这样做并一起解决您的问题。
---
- name: Set favs
hosts: somehost
remote_user: someuser
vars:
users:
- name: username
email: email@server.com
favorites:
- pk1.desktop
- pk2.desktop
- pk3.desktop
- pk4.desktop
tasks:
- name: "[DCONF] Add favorites"
dconf:
key: /org/gnome/shell/favorite-apps
value: "{{ item.favorites | string }}"
state: present
become: yes
become_user: "{{ item.name }}"
with_items: "{{ users }}"
推荐阅读
- sql - 如何在 SQL 中使检查约束不区分大小写?
- mysql - 使用向导创建表后如何从 MySQL Workbench 导出 DDL?
- javascript - Discord.js - TypeError:无法读取未定义的属性(读取“设置”)
- flutter - labelText 对于 dropdownbuttonfield/textformfield 来说太大了。如何显示所有文本?
- r - 在 Rstudio 中添加两个不同表的两列
- regular-language - 构建正则表达式
- r - 有没有办法从向下滚动修复顶部标题、按钮和搜索框
- postgresql - 如何将 pgadmin 容器连接到主机系统 localhost postgres
- flutter - 轮播滑块导致 GestureDetector 延迟
- r - 尽管块已成功运行,但当我在 RMD 中按 knit 时出错