Ansible with_subelements(列表)

丹尼尔

我正在尝试使用Ansible与数据库一起设置Apache虚拟主机,但并非所有的Vhost都具有数据库(1个或更多)。

我已经尝试了很多,也尝试从这里进行适应,但是没有任何效果。我花了好几个小时反复尝试并得出以下结论:

我的host_vars(节选):

web_vhosts:
  - vhost:
      name: domain1.tld
      enabled: true
      serveradmin_email: [email protected]
      https: true
      redirect_to_https: true
      dns_a_record: 1.2.3.4
      update_dns: false
  - vhost:
      name: domain2.tld
      enabled: true
      serveradmin_email: [email protected]
      https: true
      redirect_to_https: true
      dns_a_record: 1.2.3.4
      update_dns: false
      mysql:
        - name: wordpress1
          user: myuser
          password: secret

这是我有多远:

- name: Ensure databases
  mysql_db:
    name: "{{ item.1.name }}"
    state: present
    login_unix_socket: /var/run/mysqld/mysqld.sock
  when: item.0.mysql is defined
  with_subelements:
    - "{{ web_vhosts }}"
    - "mysql"

哪些错误:

fatal: [examplehost]: FAILED! => {"msg": "could not find 'mysql' key in iterated item '{'vhost': {'name': 'domain1.tld', 'enabled': True, 'serveradmin_email': '[email protected]', 'https': True, 'redirect_to_https': True, 'dns_a_record': '1.2.3.4', 'update_dns': False}}'"}

谁能帮助我了解问题所在?

阿拉萨内·恩迪亚耶(Alassane Ndiaye)

您的变量web_vhosts是一个由字典组成的列表,其中第一个元素是vhost您需要找到vhost.mysql而不是的子元素mysql这应该可以解决您的问题:

- name: Ensure databases
  mysql_db:
    name: "{{ item.1.name }}"
    state: present
    login_unix_socket: /var/run/mysqld/mysqld.sock
  loop: "{{ web_vhosts | subelements('vhost.mysql', skip_missing=True) }}"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ansible with_subelements

来自分类Dev

Ansible with_subelements的默认值

来自分类Dev

当原始的Ansible任务使用with_subelements时,如何访问“结果”

来自分类Dev

Ansible列表未订购

来自分类Dev

Ansible 列表变量引用

来自分类Dev

Ansible 获取索引列表

来自分类常见问题

Ansible:按属性过滤列表

来自分类Dev

当语句遍历列表时是ansible

来自分类Dev

json文件中的Ansible列表

来自分类Dev

Ansible:如何修改字典列表

来自分类Dev

Ansible中的JSON文件列表

来自分类Dev

目录中的ansible列表文件

来自分类Dev

字典中的Ansible解析列表

来自分类Dev

Ansible循环遍历列表var

来自分类Dev

Ansible 列表默认值

来自分类Dev

在 Ansible 中过滤 unicode 列表

来自分类Dev

Ansible 从列表中删除项目

来自分类Dev

ansible with_items列表列表变平

来自分类Dev

Ansible:从单个列表构建字典(值是列表)

来自分类Dev

在Ansible中循环遍历列表中的列表

来自分类Dev

ansible模板为列表增加价值-

来自分类Dev

Ansible:维护sudoers列表的最佳实践

来自分类Dev

在Ansible中创建动态列表的正确方法

来自分类Dev

Ansible嵌套循环交叉列表参考?

来自分类Dev

Ansible:循环遍历文件群列表

来自分类Dev

从ansible列表中获取最新字典

来自分类Dev

Ansible:检查变量是否包含列表或字典

来自分类Dev

Ansible:如何从列表中获取重复项?

来自分类Dev

Ansible如何创建字典键列表