小编ate*_*feh的帖子

如果列表为空,Ansible 如何跳过循环

我正在运行 Ansible 并尝试完成此任务。我已经将变量“docker_registries”的默认值定义为一个空列表:docker_registries: []我注意到如果列表为空,我在运行 ansible playbook 时会出错。这是我得到的错误:

致命:[***.cloudapp.azure.com]:失败!=> {"msg": "传递给 'loop' 的无效数据,它需要一个列表,取而代之的是:无。提示:如果您只传递了一个元素的列表/字典,请尝试将 wantlist=True 添加到您的查找调用中或使用 q/query 而不是查找。"}

我正在尝试添加一个条件,如果“docker_registries”为空,则任务将继续而不会引发错误。这是此任务的代码:

- name: Log into additional docker registries, when required
  command: docker login -u {{item.username}} -p {{item.password}} {{item.server}}
  become: true
  loop: "{{docker_registries}}"
Run Code Online (Sandbox Code Playgroud)

我试图将循环更改为, loop: "{{ lookup(docker_registries, {'skip_missing': True})}}" 但出现错误

任务执行过程中发生异常。要查看完整的回溯,请使用 -vvv。错误是:AttributeError:'NoneType' 对象没有属性 'lower' 致命:[***.cloudapp.azure.com]:失败!=> {"msg": "模块执行期间意外失败。", "stdout": ""}

我对此很陌生。任何人都可以帮忙吗?

variables yaml loops jinja2 ansible

4
推荐指数
1
解决办法
9170
查看次数

使用 IAM 用户从 Azure Data Studio 连接到 Cloud SQL

按照此处的说明,我在使用我生成的令牌从 Azure Data Studio 连接到 DB 时遇到问题。它成功连接到数据库,但是一旦我想运行一个简单的查询(我已经在那里给了我的用户读取访问权限),它就会给我这个连接错误,我需要再次使用令牌进行连接并且断开连接再次发生一段时间后随机:

FATAL:失败,用户Cloud SQL的IAM用户身份验证“user@company.com” FATAL:pg_hba.conf里拒绝为主机连接“ 。,用户”user@company.com“数据库”DB-名“,SSL关”

我进行了一些搜索,发现还有一种使用 Cloud SQL Auth 代理通过 IAM 数据库身份验证登录的方法,但文档仅限于 Postgress 命令行,而不是像 Azure Data Studio 这样的 GUI 数据库工具。如果您想在这种情况下连接 GUI 工具,任何人都可以对此有所了解吗?

关于更改pg_hba.conf文件,因为我使用的是云 SQL 实例,所以我不确定如何在云实例上关闭sslmode。我检查了我的实例的连接选项卡并SSL encryption没有在那里检查(不确定是否相同),并且我将 sslmode 更改为在我的 Azure Data Studio 上禁用连接,但在此更改后它不允许我进行连接:

FATAL: pg_hba.conf rejects connection for host "*.*.*.*", user "user@company.com", database "database", SSL off
Run Code Online (Sandbox Code Playgroud)

帮助,有人吗?

postgresql google-cloud-sql google-cloud-platform cloud-sql-proxy google-cloud-iam

1
推荐指数
1
解决办法
47
查看次数