小编wit*_*hes的帖子

访问ansible中的嵌套变量变量

这是我的group_vars/all文件:

app_env: staging

staging:
  app_a:
    db_host: localhost
  app_b:
    db_host: localhost
production:
  app_a:
    db_host: app_a-db.example.net
  app_b:
    db_host: app_b-db.example.com
Run Code Online (Sandbox Code Playgroud)

如果必须生成app_env环境,我会通过库存变量覆盖它.这样,除非您明确地进行生产,否则所有部署都将暂存.

所以,当我想在剧本中打印变量时,我能做到

---
  - debug: var={{app_env}}.app_a.db_host
Run Code Online (Sandbox Code Playgroud)

这有效!

但是如何在另一个模块中访问变量,即lineinfile?

一些没有成功的例子:

- lineinfile: dest=/etc/profile line='export APP_A_DB_HOST="{{ app_env.app_a.db_host }}"'
- lineinfile: dest=/etc/profile line='export APP_A_DB_HOST="{{ app_env[app_a][db_host] }}"'
- lineinfile: dest=/etc/profile line='export APP_A_DB_HOST="{{ {{app_env}}.app_a.db_host }}"'
Run Code Online (Sandbox Code Playgroud)

工作解决方案将使用set_fact模块(双行代码,不是非常智能)或包含不同的变量文件,具体取决于app_env.

但我真的想知道是否有一个符号来访问嵌套变量变量;)

ansible

11
推荐指数
1
解决办法
2万
查看次数

关于nginx上游模块中的ip_hash

我想用nginx替换pound作为loadbalancer,到目前为止所有测试看起来都很好.我将做一个典型的上游配置,如下所示:

upstream backend {
  ip_hash;
  server   backend1.example.com;
  server   backend2.example.com;
  server   backend3.example.com;
}
Run Code Online (Sandbox Code Playgroud)

现在还有两个问题:

  1. 这种粘性持续多久了?是否有某个ttl被定义?
  2. 粘性是否能够重新启动和/或重新加载nginx?

我在nginx维基中找不到答案.欢迎链接到官方文档.

load-balancing nginx

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

标签 统计

ansible ×1

load-balancing ×1

nginx ×1